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