< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ModuleSorter.java
Print this page
@@ -28,10 +28,12 @@
import jdk.tools.jlink.plugin.ResourcePoolEntry;
import jdk.tools.jlink.plugin.ResourcePoolModule;
import jdk.tools.jlink.plugin.ResourcePoolModuleView;
import java.lang.module.ModuleDescriptor;
+import java.lang.module.ModuleDescriptor.Requires.Modifier;
+
import java.nio.ByteBuffer;
import java.util.Deque;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
@@ -65,17 +67,18 @@
return ModuleDescriptor.read(bb);
}
private ModuleSorter addModule(ResourcePoolModule module) {
addNode(module);
- readModuleDescriptor(module).requires().stream()
- .forEach(req -> {
- String dm = req.name();
- ResourcePoolModule dep = moduleView.findModule(dm)
- .orElseThrow(() -> new PluginException(dm + " not found"));
+ readModuleDescriptor(module).requires().stream().forEach(req -> {
+ ResourcePoolModule dep = moduleView.findModule(req.name()).orElse(null);
+ if (dep != null) {
addNode(dep);
edges.get(module.name()).add(dep);
+ } else if (!req.modifiers().contains(Modifier.STATIC)) {
+ throw new PluginException(req.name() + " not found");
+ }
});
return this;
}
private void addNode(ResourcePoolModule module) {
< prev index next >