On 16/05/2016 15:28, Uwe Schindler wrote:
:
This is not the only class that’s missing at runtime, there are more: I do not have the
complete list, but our checks using the forbiddenapis Ant/Maven/Gradle plugin fails to
load classes around JAXB/XML (javax.xml.bind.*, javax.jws.*) and CORBA (org.omg.CORBA.*),
but also "javax.activation.ActivationDataFlavor". But there may be more
packages missing.
jdk-9+118 is the first JDK 9 build to have the policy for root modules
that is described in JEP 261. This has been changed in the Jigsaw EA
builds some time and only merged into the main line for build 118. I
hope to send mail to jdk9-dev shortly about this - we know it will be a
surprise to some.
As to what is going on? The java.corba and the EE modules are no longer
resolved by default when compiling code in the unnamed module or where
the main class is loaded from class path. This means the types in these
modules are not visible. Nothing has been removed and if you run with
`-addmods java.se.ee` then each of the Java EE modules will be resolved
as they were previously. We have updated text for JEP 261 that describes
this in more detail, along with the rational. We will likely assess the
impact of this change later in JDK 9 but for now, there is easy
workaround for those that depend on these components being in the JDK.
-Alan