Excellent, thanks for the reply! Paul
> On 08 Apr 2016, at 14:15, Alan Bateman <[email protected]> wrote: > > On 08/04/2016 13:01, Paul Bakker wrote: >> Hi, >> >> I found an interesting issue with automatic modules that contain services. I >> have a small application that depends on jackson-core, jackson-databind and >> jackson-annotations. >> As an experiment I started the app with only the jackson-databind jar file >> on the modulepath, which turns it into an automatic module. The application >> code, and the other two Jackson libs are still on the classpath. >> >> java -cp >> out:lib/jackson-annotations-2.7.3.jar:lib/jackson-core-2.7.3.jar -mp mods >> -addmods jackson.databind com.javamodularity.demonstrator.Demo >> This gives the following exception: >> java.lang.module.ResolutionException: Module jackson.databind does not >> read a module that exports com.fasterxml.jackson.core >> >> This is surprising, because jackson-databind is an automatic module, which >> should read the unnamed module. The unnamed module should contain >> jackson-core because it's on the classpath. >> The real surprise is that this seems to be caused by jackson-databind having >> a service declaration in it's META-INF of type >> "com.fasterxml.jackson.core.ObjectCodec". It looks like an automatic module >> can't declare a service of a type declared in the unnamed module. >> When I remove the service declaration from the jackson-databind JAR, it runs >> without exceptions. >> >> Is this a bug or desired behaviour? When placing jackson-core on the >> modulepath as well everything works as expected, but that's besides the >> point I think. >> > Thanks for the mail. This is (or rather was) a bug. It's fixed in the jake > forest but hasn't been brought to JDK 9 yet. We hope to have the EA builds > [1] publishing again soon, in which case there will be daily builds for those > that don't build from sources. > > -Alan > > [1] https://jdk9.java.net/jigsaw/
