< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImagePluginStack.java
Print this page
*** 41,50 ****
--- 41,52 ----
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import jdk.internal.jimage.decompressor.Decompressor;
+ import jdk.internal.module.ModuleInfo.Attributes;
+ import jdk.internal.module.ModuleTarget;
import jdk.tools.jlink.plugin.Plugin;
import jdk.tools.jlink.builder.ImageBuilder;
import jdk.tools.jlink.plugin.PluginException;
import jdk.tools.jlink.plugin.ResourcePool;
import jdk.tools.jlink.plugin.ResourcePoolModule;
*** 296,305 ****
--- 298,308 ----
private class LastModule implements ResourcePoolModule {
final ResourcePoolModule module;
// lazily initialized
ModuleDescriptor descriptor;
+ ModuleTarget target;
LastModule(ResourcePoolModule module) {
this.module = module;
}
*** 314,330 ****
return d.isPresent()? Optional.of(getUncompressed(d.get())) : Optional.empty();
}
@Override
public ModuleDescriptor descriptor() {
! if (descriptor == null) {
! descriptor = ResourcePoolManager.readModuleDescriptor(this);
! }
return descriptor;
}
@Override
public Set<String> packages() {
return module.packages();
}
@Override
--- 317,351 ----
return d.isPresent()? Optional.of(getUncompressed(d.get())) : Optional.empty();
}
@Override
public ModuleDescriptor descriptor() {
! initModuleAttributes();
return descriptor;
}
@Override
+ public String osName() {
+ initModuleAttributes();
+ return target != null? target.osName() : null;
+ }
+
+ @Override
+ public String osArch() {
+ initModuleAttributes();
+ return target != null? target.osArch() : null;
+ }
+
+ private void initModuleAttributes() {
+ if (this.descriptor == null) {
+ Attributes attr = ResourcePoolManager.readModuleAttributes(this);
+ this.descriptor = attr.descriptor();
+ this.target = attr.target();
+ }
+ }
+
+ @Override
public Set<String> packages() {
return module.packages();
}
@Override
< prev index next >