On 19/05/2020 09:00, Alex Orlov wrote:
Hi all,
I want to understand all details of module-path and layers in java9+ and I have two questions:
* As I understand modules on module-path are added automatically only to boot
layer and not added automatically to any other layers. I mean, if any child
layers are created module-path will be ignored for them. Is this correct?
* Not all modules from module-path are added to boot layer, but only main
module and dependent modules. For example, if we have A , B , C , D modules
on module-path and A is main module and uses B , B uses C , then D module
won't be added to boot layer. Is this correct?
Could anyone help me with these questions?
Have you been through the java.lang.module package description and the
APIs for Configuration.resolve? I think the main thing to understand is
that A, B, C, and D are observable when doing the module resolution and
creating the readability graph for the boot layer. D is not in the
readability graph because it's not required by any of the other modules
in the graph. Later you will use Configuration.resolve to do module
resolution for what will become the child layer. The module finders that
you specify to the resolve method will determine if D is observable or
not. Depending on the root modules that you specify to resolve, then it
might be that D is the readability graph for the child layer.
-Alan