< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImagePluginStack.java
Print this page
@@ -277,10 +277,12 @@
*/
private class LastPoolManager extends ResourcePoolManager {
private class LastModule implements ResourcePoolModule {
final ResourcePoolModule module;
+ // lazily initialized
+ ModuleDescriptor descriptor;
LastModule(ResourcePoolModule module) {
this.module = module;
}
@@ -295,11 +297,14 @@
return d.isPresent()? Optional.of(getUncompressed(d.get())) : Optional.empty();
}
@Override
public ModuleDescriptor descriptor() {
- return module.descriptor();
+ if (descriptor == null) {
+ descriptor = ResourcePoolManager.readModuleDescriptor(this);
+ }
+ return descriptor;
}
@Override
public Set<String> packages() {
return module.packages();
@@ -418,15 +423,10 @@
@Override
public ByteOrder byteOrder() {
return pool.byteOrder();
}
- @Override
- public Map<String, String> releaseProperties() {
- return pool.releaseProperties();
- }
-
private ResourcePoolEntry getUncompressed(ResourcePoolEntry res) {
if (res != null) {
if (res instanceof ResourcePoolManager.CompressedModuleData) {
try {
byte[] bytes = decompressor.decompressResource(byteOrder(),
@@ -456,22 +456,10 @@
public void storeFiles(ResourcePool original, ResourcePool transformed,
BasicImageWriter writer)
throws Exception {
Objects.requireNonNull(original);
Objects.requireNonNull(transformed);
- Optional<ResourcePoolModule> javaBase = transformed.moduleView().findModule("java.base");
- javaBase.ifPresent(mod -> {
- try {
- Map<String, String> release = transformed.releaseProperties();
- // fill release information available from transformed "java.base" module!
- ModuleDescriptor desc = mod.descriptor();
- desc.osName().ifPresent(s -> release.put("OS_NAME", s));
- desc.osVersion().ifPresent(s -> release.put("OS_VERSION", s));
- desc.osArch().ifPresent(s -> release.put("OS_ARCH", s));
- } catch (Exception ignored) {}
- });
-
imageBuilder.storeFiles(new LastPoolManager(transformed).resourcePool());
}
public ExecutableImage getExecutableImage() throws IOException {
return imageBuilder.getExecutableImage();
< prev index next >