i2p.jar should not export the org.apache.http.* Packages
In i2p-1.7.0.jar the class orgs.apache.http.util.Args exists. See http://i2pgit.org/i2p-hackers/i2p.i2p/-/blob/master/core/java/src/org/apache/http/util/Args.java.
This same class exists in httpcore-4.4.15.jar. See https://github.com/apache/httpcomponents-core/blob/4.4.x/httpcore/src/main/java/org/apache/http/util/Args.java.
Applications that include both httpcore-4.4.15 and i2p-1.7.0.jar in the module path will fail to start because the same package, org.apache.http.util, is exported by both jars. There is no way to easily work around this split package. What we have to do for now is:
- Keep i2p.jar on the module path.
- Move httpcore-4.4.15.jar and its dependencies like mesh-http-server-feature to the classpath.
- Create a new non-modular Launcher class and associated scripts that specify the correct module path and classpath.
The right way to fix this is to rename the 'org.apache.http' packages inside i2p.jar. If i2p is going to shade packages from other projects it should rename these shaded packages. org.apache.http
should probably be renamed to something like i2pshaded.org.apache.http
.