Just an FYI that the "Root modules" section of JEP 261 has been updated with a revised policy on the modules to resolve when compiling code in the unnamed module, or at runtime when the main class is loaded from the class path.

The key point is that "java.se" will be the only java.* root and means that the modules shared with Java EE won't be resolved by default. As a remainder, the modules that are in the transitive closure of java.se.ee that are not in the transitive closure of java.se are:

  java.activation
  java.annotations.common
  java.corba
  java.transaction
  java.xml.bind
  java.xml.ws

This should be a boon to Java EE servers and applications that have historically being built or deployed with the EE versions of these modules. It will be "as if" these modules don't exist in the JDK.

On the other hand, applications that use types in any of these 6 modules, and don't deploy with the EE versions of these components, will need to use `-addmods` at compile-time or runtime to ensure that the modules are resolved.

This policy is not in place yet. We'll probably need to have it bake in jake for a time before we bring it into JDK 9.

-Alan

[1] http://openjdk.java.net/jeps/261

Reply via email to