< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ResourcePoolManager.java

Print this page

        

*** 48,61 **** --- 48,73 ---- /** * A manager for pool of resources. */ public class ResourcePoolManager { + // utility to read ModuleDescriptor of the given ResourcePoolModule + static ModuleDescriptor readModuleDescriptor(ResourcePoolModule mod) { + String p = "/" + mod.name() + "/module-info.class"; + Optional<ResourcePoolEntry> content = mod.findEntry(p); + if (!content.isPresent()) { + throw new PluginException("No module-info for " + mod.name() + + " module"); + } + ByteBuffer bb = ByteBuffer.wrap(content.get().contentBytes()); + return ModuleDescriptor.read(bb); + } class ResourcePoolModuleImpl implements ResourcePoolModule { final Map<String, ResourcePoolEntry> moduleContent = new LinkedHashMap<>(); + // lazily initialized private ModuleDescriptor descriptor; final String name; private ResourcePoolModuleImpl(String name) { this.name = name;
*** 78,95 **** } @Override public ModuleDescriptor descriptor() { if (descriptor == null) { ! String p = "/" + name + "/module-info.class"; ! Optional<ResourcePoolEntry> content = findEntry(p); ! if (!content.isPresent()) { ! throw new PluginException("No module-info for " + name ! + " module"); ! } ! ByteBuffer bb = ByteBuffer.wrap(content.get().contentBytes()); ! descriptor = ModuleDescriptor.read(bb); } return descriptor; } @Override --- 90,100 ---- } @Override public ModuleDescriptor descriptor() { if (descriptor == null) { ! descriptor = readModuleDescriptor(this); } return descriptor; } @Override
*** 164,178 **** @Override public ByteOrder byteOrder() { return ResourcePoolManager.this.byteOrder(); } - @Override - public Map<String, String> releaseProperties() { - return ResourcePoolManager.this.releaseProperties(); - } - public StringTable getStringTable() { return ResourcePoolManager.this.getStringTable(); } } --- 169,178 ----
*** 212,222 **** } private final Map<String, ResourcePoolEntry> resources = new LinkedHashMap<>(); private final Map<String, ResourcePoolModule> modules = new LinkedHashMap<>(); private final ResourcePoolModuleImpl fileCopierModule = new ResourcePoolModuleImpl(FileCopierPlugin.FAKE_MODULE); - private Map<String, String> releaseProps = new HashMap<>(); private final ByteOrder order; private final StringTable table; private final ResourcePool poolImpl; private final ResourcePoolBuilder poolBuilderImpl; private final ResourcePoolModuleView moduleViewImpl; --- 212,221 ----
*** 389,402 **** */ public ByteOrder byteOrder() { return order; } - public Map<String, String> releaseProperties() { - return releaseProps; - } - public StringTable getStringTable() { return table; } /** --- 388,397 ----
< prev index next >