Skip to content

Commit 04990c7

Browse files
committed
Ensure modules from module path can resolve their system module dependencies
1 parent 6773ebc commit 04990c7

File tree

2 files changed

+5
-27
lines changed

2 files changed

+5
-27
lines changed

substratevm/src/com.oracle.svm.hosted.jdk11/src/com/oracle/svm/hosted/ModuleLayerFeature.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,8 @@ private static List<Module> findApplicationModules(ModuleLayer runtimeBootLayer,
308308
}
309309

310310
private static Configuration synthesizeRuntimeBootLayerConfiguration(List<Path> mp, Set<String> reachableModules) {
311-
ModuleFinder beforeFinder = new BootModuleLayerModuleFinder();
312-
ModuleFinder afterFinder = ModuleFinder.of(mp.toArray(Path[]::new));
311+
ModuleFinder beforeFinder = ModuleFinder.of(mp.toArray(Path[]::new));
312+
ModuleFinder afterFinder = ModuleFinder.ofSystem();
313313

314314
try {
315315
ModuleFinder composed = ModuleFinder.compose(beforeFinder, afterFinder);
@@ -346,27 +346,6 @@ private void patchRuntimeBootLayer(ModuleLayer runtimeBootLayer, Map<String, Mod
346346
runtimeBootLayer.modules();
347347
}
348348

349-
static class BootModuleLayerModuleFinder implements ModuleFinder {
350-
351-
@Override
352-
public Optional<ModuleReference> find(String name) {
353-
return ModuleLayer.boot()
354-
.configuration()
355-
.findModule(name)
356-
.map(ResolvedModule::reference);
357-
}
358-
359-
@Override
360-
public Set<ModuleReference> findAll() {
361-
return ModuleLayer.boot()
362-
.configuration()
363-
.modules()
364-
.stream()
365-
.map(ResolvedModule::reference)
366-
.collect(Collectors.toSet());
367-
}
368-
}
369-
370349
private static final class HostedRuntimeModulePair {
371350
static HostedRuntimeModulePair withReplicatedHostedModule(Module module) {
372351
return new HostedRuntimeModulePair(module, module);

substratevm/src/com.oracle.svm.hosted.jdk11/src/com/oracle/svm/hosted/jdk/NativeImageClassLoaderSupportJDK11OrLater.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,9 @@ public NativeImageClassLoaderSupportJDK11OrLater(ClassLoader defaultSystemClassL
8686
}
8787

8888
private static ModuleLayer createModuleLayer(Path[] modulePaths, ClassLoader parent) {
89-
ModuleFinder finder = ModuleFinder.of(modulePaths);
90-
List<Configuration> parents = List.of(ModuleLayer.boot().configuration());
91-
Set<String> moduleNames = finder.findAll().stream().map(moduleReference -> moduleReference.descriptor().name()).collect(Collectors.toSet());
92-
Configuration configuration = Configuration.resolve(finder, parents, finder, moduleNames);
89+
ModuleFinder modulePathsFinder = ModuleFinder.of(modulePaths);
90+
Set<String> moduleNames = modulePathsFinder.findAll().stream().map(moduleReference -> moduleReference.descriptor().name()).collect(Collectors.toSet());
91+
Configuration configuration = ModuleLayer.boot().configuration().resolve(modulePathsFinder, ModuleFinder.ofSystem(), moduleNames);
9392
/**
9493
* For the modules we want to build an image for, a ModuleLayer is needed that can be
9594
* accessed with a single classloader so we can use it for {@link ImageClassLoader}.

0 commit comments

Comments
 (0)