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