< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ModuleSorter.java
Print this page
*** 28,37 ****
--- 28,39 ----
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,81 ****
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"));
addNode(dep);
edges.get(module.name()).add(dep);
});
return this;
}
private void addNode(ResourcePoolModule module) {
--- 67,84 ----
return ModuleDescriptor.read(bb);
}
private ModuleSorter addModule(ResourcePoolModule module) {
addNode(module);
! 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 >