Hi Alan Maybe it is necessary to add possibility to have equal control for boot layer and other layers. Because layers are graph but at this moment we can do for boot layer more then for others -> if we work with non boot layers we must use another solutions -> different solutions within one technology is not good.
For example we could pass something like String[] args when we create custom layer. Alex >Четверг, 11 октября 2018, 14:27 +03:00 от Alan Bateman ><alan.bate...@oracle.com>: > >On 11/10/2018 10:57, Alex Sviridov wrote: >> Hi all, >> >> I create ModuleLayer this way >> >> ModuleFinder finder = ModuleFinder.of(dir1, dir2, dir3); >> ModuleLayer parent = ModuleLayer.boot(); >> Configuration cf = parent.configuration().resolve(finder, ModuleFinder.of(), >> Set.of("myapp")); >> ClassLoader scl = ClassLoader.getSystemClassLoader(); >> ModuleLayer layer = parent.defineModulesWithOneLoader(cf, scl); >> Class<?> c = layer.findLoader("myapp").loadClass("app.Main"); >> >> And I need for newly created layer make the following: >> -patch-module java.xml.ws.annotation=jsr305-3.0.2.jar >> >> Could anyone say, how I can do it, taking into consideration that when I >> start JVM I don't >> know what layers I will create and what patch module I will need to use, so >> I can not use for it JVM parameters. >> >The --patch-module option is for patching modules in the boot layer, >there is no API support for patching modules when creating module layers >with the API. If you want to patch modules in custom module layers then >you need a create a ModuleFinder that will find the patched module - >it's not too hard to do, it's essentially scanning the patch locations >to find additional packages and then pre-pending the patch so that >resources are found in the patch before looking in the unpatched module. > >-Alan -- Alex Sviridov