< 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 >