Huge implications of multiple class loaders for application modules
David M. Lloyd
david.lloyd at redhat.com
Tue Apr 25 13:44:48 UTC 2017
On 04/25/2017 08:31 AM, Alan Bateman wrote:
> On 25/04/2017 14:16, Michael Nascimento wrote:
>
>> :
>> and also the fact
>> packages must be defined by a single module even if they are not
>> exported,
>> because it was considered nearly impossible to track in real world
>> scenarios.
>>
> Keep in mind that this is not a module system limitation, instead it is
> just a consequence of defining all modules on the application module
> path to the application class loader. Containers or applications using
> the API doing dynamic configurations and creating module layers can put
> modules in their own namespace to avoid conflicts between concealed
> packages.
>
> Someday then we might get to the point where modules on the application
> module path could be assigned to different class loaders but it has huge
> implications and would take an entire release to shake out issues.
I tend to disagree with the assertion that there would be huge
implications. Libraries and applications have been coping with multiple
class loaders for many, many years, so this nothing new for them. There
are no real compatibility implications, as the JPMS ecosystem does not
yet exist. There are certainly no detrimental security implications (on
the contrary, security should be marginally improved in the security
manager situation as getting class loaders for other classes requires
special permissions).
What exactly *are* the huge implications of this approach? My attempts
to get to the bottom of this on the spec experts list have gotten
nowhere, so hopefully I'll have better luck here.
> BTW: The reasons why there are conflicts between concealed packages is a
> good discussion point for another thread.
>
> -Alan
--
- DML
More information about the jigsaw-dev
mailing list