86
87 private Predicate<String> predicate;
88 private Jvm target;
89 private boolean keepAll;
90
91 @Override
92 public String getName() {
93 return NAME;
94 }
95
96 /**
97 * VM paths:
98 * /java.base/native/{architecture}/{server|client|minimal}/{shared lib}
99 * e.g.: /java.base/native/amd64/server/libjvm.so
100 * /java.base/native/server/libjvm.dylib
101 */
102 private List<ResourcePoolEntry> getVMs(ResourcePoolModule javaBase, String[] jvmlibs) {
103 List<ResourcePoolEntry> ret = javaBase.entries().filter((t) -> {
104 String path = t.path();
105 for (String jvmlib : jvmlibs) {
106 return t.path().endsWith("/" + jvmlib);
107 }
108 return false;
109 }).collect(Collectors.toList());
110 return ret;
111 }
112
113 @Override
114 public ResourcePool transform(ResourcePool in, ResourcePoolBuilder out) {
115 ResourcePoolModule javaBase = in.moduleView().findModule("java.base").get();
116 String[] jvmlibs = jvmlibs(javaBase.descriptor().osName().get());
117 TreeSet<Jvm> existing = new TreeSet<>(new JvmComparator());
118 TreeSet<Jvm> removed = new TreeSet<>(new JvmComparator());
119 if (!keepAll) {
120 // First retrieve all available VM names and removed VM
121 List<ResourcePoolEntry> jvms = getVMs(javaBase, jvmlibs);
122 for (Jvm jvm : Jvm.values()) {
123 for (ResourcePoolEntry md : jvms) {
124 String mdPath = md.path();
125 for (String jvmlib : jvmlibs) {
126 if (mdPath.endsWith("/" + jvm.getName() + "/" + jvmlib)) {
|
86
87 private Predicate<String> predicate;
88 private Jvm target;
89 private boolean keepAll;
90
91 @Override
92 public String getName() {
93 return NAME;
94 }
95
96 /**
97 * VM paths:
98 * /java.base/native/{architecture}/{server|client|minimal}/{shared lib}
99 * e.g.: /java.base/native/amd64/server/libjvm.so
100 * /java.base/native/server/libjvm.dylib
101 */
102 private List<ResourcePoolEntry> getVMs(ResourcePoolModule javaBase, String[] jvmlibs) {
103 List<ResourcePoolEntry> ret = javaBase.entries().filter((t) -> {
104 String path = t.path();
105 for (String jvmlib : jvmlibs) {
106 if (t.path().endsWith("/" + jvmlib)) {
107 return true;
108 }
109 }
110 return false;
111 }).collect(Collectors.toList());
112 return ret;
113 }
114
115 @Override
116 public ResourcePool transform(ResourcePool in, ResourcePoolBuilder out) {
117 ResourcePoolModule javaBase = in.moduleView().findModule("java.base").get();
118 String[] jvmlibs = jvmlibs(javaBase.descriptor().osName().get());
119 TreeSet<Jvm> existing = new TreeSet<>(new JvmComparator());
120 TreeSet<Jvm> removed = new TreeSet<>(new JvmComparator());
121 if (!keepAll) {
122 // First retrieve all available VM names and removed VM
123 List<ResourcePoolEntry> jvms = getVMs(javaBase, jvmlibs);
124 for (Jvm jvm : Jvm.values()) {
125 for (ResourcePoolEntry md : jvms) {
126 String mdPath = md.path();
127 for (String jvmlib : jvmlibs) {
128 if (mdPath.endsWith("/" + jvm.getName() + "/" + jvmlib)) {
|