8197532: Re-examine policy for the default set of modules when compiling or running code on the class path

David Lloyd david.lloyd at redhat.com
Thu Jul 26 12:21:10 UTC 2018


On Thu, Jul 19, 2018 at 1:12 PM Alan Bateman <Alan.Bateman at oracle.com> wrote:
>
> On 19/07/2018 16:27, David Lloyd wrote:
> > :
> > When running on Java 9 or later, this code relies on being able to
> > reference java.se, and more importantly, all of the modules that it
> > includes, which worked OK on 9 and 10 but fails on 11.  When running
> > on Java 8, it uses the default parent class loader to load the
> > relevant classes and resources.
> >
> I think this needs a bit more context. The first part seems to be about
> enumerating the modules in java.se which doesn't need java.se in the
> boot layer. I can't quite connect that to the second part which seems to
> be about the default class loader for delegation (which didn't change in
> JDK 9 so I can't see the 8 vs. 9 issue). Is this something with the
> JBoss module system where it wants to do direct delegation to the
> modules in the boot layer?

Right JBoss Modules loads and depends on JPMS modules by name.  So
without the ability to load java.se by default from a classpath JAR, I
can't boot the same way on Java 8 as I do on Java 9 anymore.

I'm thinking about a workaround where we no longer use java.se as a
default dependency, but that's a compatibility breaker so it needs a
"clever" solution.  It would be nicer if I could just select modules
to add from my boot JAR manifest (or some other similar solution that
is implicitly ignored on Java 8).

-- 
- DML


More information about the jigsaw-dev mailing list