Root modules (was Re: JMH and JDK9)

Alan Bateman Alan.Bateman at oracle.com
Wed Apr 20 12:57:12 UTC 2016


(dropping hotspot-dev and change the subject line as this discussion 
thread has moved on)

On 20/04/2016 13:28, Sanne Grinovero wrote:
> :
> Agreed: excellent idea!
>
> I'm eager to try it out so that we can resume testing of everything
> else too; I just tried my luck with build 9-ea+114 but it didn't seem
> to work: I'm going to assume this wasn't implemented yet, or should I
> double check how I'm building?
> Did I understand correctly that I won't need to pass any switch to
> neither java nor javac, as long as I have the JavaEE jar as external
> dependencies on my classpath? (i.e. if this build is "proven" on Java8
> it should work on Java9 ?)
>
> Is there an issue tracker which I could follow to watch updates on this?
>
> Slightly unrelated, but is it expected that compilation is successful,
> even though (in my specific case) javax.transaction.Synchronization
> causes a java.lang.NoClassDefFoundError at runtime?
>
It's in Jigsaw EA builds [1], it hasn't been brought into the JDK 9 main 
line yet.

I'm not well aquatinted with of contents of the "Java EE jar" but I 
believe it has the API classes for the Java Transaction API, Common 
Annotations, JAXB, and JAX-WS. So if you are compiling or running with 
the Jigsaw EA builds then you should see that it won't locate these 
classes in the runtime image, instead they will be located on the class 
path in this JAR file.

One thing to mention is that the JavaBeans Activiation Framework 
(package javax.activation). That was in EE 5 but doesn't appear in the 
javadoc for EE 6 or 7. I don't know the full story there but it remains 
a standalone technology and upgradable. If it's not in the Java EE JAR 
then and you don't have it on your class path then you will need 
`-addmods java.activation` to ensure that this module is resolved.

On javax.transaction.Synchronization then I would not expect this to 
compile with jdk-9+114 because this type is not in the java.transaction. 
I would expect it will compile (and run) with the Jigsaw EA builds.

-Alan

[1] https://jdk9.java.net/jigsaw/


More information about the jigsaw-dev mailing list