The easy solution for #AvoidConcealedPackageConflicts, #MultipleModuleVersions

David M. Lloyd david.lloyd at
Fri Mar 3 16:43:09 UTC 2017

I want to propose (again) that the only practical answer for these two 
issues is to divide application modules (not platform modules) into 
separated class loaders, always.  Any other solution requires packages 
to be split among modules in one class loader, and requires users to 
know more about the content of their modules than they should need to 
care about.

Any previous compatibility argument regarding class loader arrangement 
is already moot, since class loading behavior is different enough now 
that user code already does not work as it did.  There is no longer any 
reasonable expectation that user code which uses its own class loader to 
locate resources and classes will find classes that that code cannot 
find via class resolution, which indeed is the entire point of modularity.

Making this optional would only increase confusion and is unlikely to 
solve any actual problem.

Is there any technical reason why we should not just do this?


More information about the jpms-spec-experts mailing list