Re: Problem with Java-9+

Uri Blumenthal <[email protected]> Fri, 13 Sep 2019 21:20:07 +0000
Newsgroups gmane.comp.encryption.bouncy-castle.devel
Message-ID <[email protected]>
Of course, I meant module name "bcprov.ext.jdk15on" - dots in the automatic module name and dashes in it's file name translate into each other.

Sent from my test iPhone

> On Sep 13, 2019, at 16:37, Uri the Great <[email protected]> wrote:
> 
> As I resurrected one of my Maven-based projects that retrieve BouncyCastle jars from the Maven Central, I discovered that bcprov-ext jars for 1.61+ are incompatible with the previous releases, in a way that's both bad and unnecessary.
> 
> Before 1.61, module-info.class was not added, so for Java-1.8 (and before) it worked as expected - and for Java-9+ it took the name of the jar file as the module name. So far so good -       it worked with all the JDK around.
> 
> Now comes 1.61. Somebody decided that it's a good thing to give a special name to the bcprov module - org.bouncycastle.provider. So, the projects are no longer portable across different JDK and BC releases - because now they have to list dependency for org.bouncycastle.provider if they use BC 1.61+, or for bcprov-ext-jdk15on if they use BC 1.60 or earlier.
> 
> I think the correct solution would be to set module name to bcprov-ext-jdk15on (or bcprov-jdk15on correspondingly), if you want to be backward-compatible.
> 
> A nit: there's no JDK-1.9, so it might be better to rename your ...jdk1.9... to ...jdk-9... or ...jdk9...
> 
> P.S. Thanks for including add_module.sh. It's helpful. May I suggest changing export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 to something more dynamic, like export JAVA_HOME=`/usr/libexec/java_home -v 11`
smime.p7s (application/pkcs7-signature, 2.8 KB) - not displayed