[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cross-project-issues-dev] httpclient5/jna5 vs. httpclient45/jna45 in Eclipse and Simrel
|
Howdy,
Some time ago, ECF was requested to update to use
httpclient/httpcomponents 5 rather than 4.5 [1], so that JNA 5 could be
used rather than JNA 4.5.
For context, ECF filetransfer depends on 3 apache bundles from Orbit:
org.apache.httpcomponents.httpclient 4.5.10,
org.apache.httpcomponents.httpcore 4.4.12 and
org.apache.httpcomponents.httpclient.win 4.5.10. The
o.a.httpcomponents.httpclient.win jar is the one that has the dependency
on JNA 4.5. The others do not. I am not the author of the ECF code
that uses httpcomponents4.5.win...rather Carsten Reckord and company
contributed this. It requires a specific proxy environment with win32
just to test.
[1] led to [2]. [2] requests that ECF move to httpclient5, so that the
httpcomponents4.5 dependency on JNA 4.5 could be eliminated (as
httpclient5.win depends upon JNA 5). I've done the work to move the
bulk of the ECF source code over to httpclient5 as reported on [2].
However, as described in comment [3], there remain two things to be done
that I cannot do:
1) Get the httpcomponents5.win jar into Orbit as a properly formed
bundle so we can consume it for step 2. Currently at maven central [4]
5.0.2 version is currently just a jar (no bundle meta-data).
2) Write/contribute a httpclient5.win32 version of ECF provider code
that uses this apache client5.win jar. Since the package naming of
httpclient5.win has changed, this can be used with the existing
httpclient45.win32 provider. Although I expect this to be
straightforward for Carsten or others given the existing
httpclient45.win32 source [5] and his familiarity with that code, it has
to actually be tested in the appropriate proxy environment.
I don't have the Orbit rights, or resources to do 1, nor the resources
or environment (testing) to do 2.
My question to all: Is there enough desire and resources for the above
two things to happen in time for 2021-06? If so, how and who?
If these cannot be made to happen then ECF will contribute an updated
httpclient45 version, but it will *still* depend upon/require JNA 4.5 be
present for the 4.5.10 version of
org.apache.httpcomponents.httpclient.win. I don't know if this is a
problem or not (multiple versions of JNA in platform?).
Two additional things:
a) I see that at maven central httpclient 5 is up to 5.1.0. The only
version of httpclient 5 in Orbit currently is 5.0.2 (excepting
client5.win...which isn't there at all as described above).
b) Up to now we've had a convention that all simrel projects use the
same version of httpclient...as the simrel had some unexplained problems
with dependency confusion with multiple versions of httpclient in the
simrel repo. If the we are going to continue to have this restriction,
and ECF moves to httpclient5 for 2021-06 (1 and 2 get done, etc), then
this would imply that *all* simrel consumers of httpclient would have to
move to httpclient5. This is a much bigger deal since httpclient5
broke backward compatibility by renaming packages so all the sources
that use httpclient apis would have to be recompiled (at least).
If the answer to the 2021-06 question is 'yes' then all this has to
happen pretty fast...as the platform API freeze is end of May, we should
almost certainly do some testing before the freeze, and I'm resource
limited.
For specific contributions and discussion please go to [2].
Scott
[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=565796
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=566100
[3] https://bugs.eclipse.org/bugs/show_bug.cgi?id=566100#c22
[4]
https://search.maven.org/artifact/org.apache.httpcomponents.client5/httpclient5-win/5.0.2/jar
[5]
https://git.eclipse.org/c/ecf/org.eclipse.ecf.git/tree/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45.win32