< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java

Print this page




 120                 Properties props = new Properties();
 121                 try (FileInputStream fis = new FileInputStream(operation)) {
 122                     props.load(fis);
 123                 } catch (IOException exp) {
 124                     throw new UncheckedIOException(exp);
 125                 }
 126                 props.forEach((k, v) -> release.put(k.toString(), v.toString()));
 127             }
 128             break;
 129         }
 130     }
 131 
 132     @Override
 133     public ResourcePool transform(ResourcePool in, ResourcePoolBuilder out) {
 134         in.transformAndCopy(Function.identity(), out);
 135 
 136         Optional<ResourcePoolModule> javaBase = in.moduleView().findModule("java.base");
 137         javaBase.ifPresent(mod -> {
 138             // fill release information available from transformed "java.base" module!
 139             ModuleDescriptor desc = mod.descriptor();
 140             desc.osName().ifPresent(s -> {
 141                 release.put("OS_NAME", quote(s));
 142             });
 143             desc.osVersion().ifPresent(s -> release.put("OS_VERSION", quote(s)));
 144             desc.osArch().ifPresent(s -> release.put("OS_ARCH", quote(s)));
 145             desc.version().ifPresent(s -> release.put("JAVA_VERSION",
 146                     quote(parseVersion(s.toString()))));
 147             desc.version().ifPresent(s -> release.put("JAVA_FULL_VERSION",
 148                     quote(s.toString())));



 149         });
 150 
 151         // put topological sorted module names separated by space
 152         release.put("MODULES",  new ModuleSorter(in.moduleView())
 153                 .sorted().map(ResourcePoolModule::name)
 154                 .collect(Collectors.joining(" ", "\"", "\"")));
 155 
 156         // create a TOP level ResourcePoolEntry for "release" file.
 157         out.add(ResourcePoolEntry.create("/java.base/release",
 158             ResourcePoolEntry.Type.TOP, releaseFileContent()));
 159         return out.build();
 160     }
 161 
 162     // Parse version string and return a string that includes only version part
 163     // leaving "pre", "build" information. See also: java.lang.Runtime.Version.
 164     private static String parseVersion(String str) {
 165         return Runtime.Version.parse(str).
 166             version().
 167             stream().
 168             map(Object::toString).


 120                 Properties props = new Properties();
 121                 try (FileInputStream fis = new FileInputStream(operation)) {
 122                     props.load(fis);
 123                 } catch (IOException exp) {
 124                     throw new UncheckedIOException(exp);
 125                 }
 126                 props.forEach((k, v) -> release.put(k.toString(), v.toString()));
 127             }
 128             break;
 129         }
 130     }
 131 
 132     @Override
 133     public ResourcePool transform(ResourcePool in, ResourcePoolBuilder out) {
 134         in.transformAndCopy(Function.identity(), out);
 135 
 136         Optional<ResourcePoolModule> javaBase = in.moduleView().findModule("java.base");
 137         javaBase.ifPresent(mod -> {
 138             // fill release information available from transformed "java.base" module!
 139             ModuleDescriptor desc = mod.descriptor();





 140             desc.version().ifPresent(s -> release.put("JAVA_VERSION",
 141                     quote(parseVersion(s.toString()))));
 142             desc.version().ifPresent(s -> release.put("JAVA_FULL_VERSION",
 143                     quote(s.toString())));
 144 
 145             release.put("OS_NAME", quote(mod.osName()));
 146             release.put("OS_ARCH", quote(mod.osArch()));
 147         });
 148 
 149         // put topological sorted module names separated by space
 150         release.put("MODULES",  new ModuleSorter(in.moduleView())
 151                 .sorted().map(ResourcePoolModule::name)
 152                 .collect(Collectors.joining(" ", "\"", "\"")));
 153 
 154         // create a TOP level ResourcePoolEntry for "release" file.
 155         out.add(ResourcePoolEntry.create("/java.base/release",
 156             ResourcePoolEntry.Type.TOP, releaseFileContent()));
 157         return out.build();
 158     }
 159 
 160     // Parse version string and return a string that includes only version part
 161     // leaving "pre", "build" information. See also: java.lang.Runtime.Version.
 162     private static String parseVersion(String str) {
 163         return Runtime.Version.parse(str).
 164             version().
 165             stream().
 166             map(Object::toString).
< prev index next >