< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java
Print this page
@@ -94,17 +94,18 @@
import jdk.internal.joptsimple.OptionException;
import jdk.internal.joptsimple.OptionParser;
import jdk.internal.joptsimple.OptionSet;
import jdk.internal.joptsimple.OptionSpec;
import jdk.internal.joptsimple.ValueConverter;
-import jdk.internal.loader.ResourceHelper;
import jdk.internal.module.ModuleHashes;
import jdk.internal.module.ModuleHashesBuilder;
import jdk.internal.module.ModuleInfo;
import jdk.internal.module.ModuleInfoExtender;
import jdk.internal.module.ModulePath;
import jdk.internal.module.ModuleResolution;
+import jdk.internal.module.ModuleTarget;
+import jdk.internal.module.Resources;
import jdk.tools.jlink.internal.Utils;
import static java.util.stream.Collectors.joining;
/**
@@ -176,11 +177,10 @@
ModuleFinder moduleFinder;
Version moduleVersion;
String mainClass;
String osName;
String osArch;
- String osVersion;
Pattern modulesToHash;
ModuleResolution moduleResolution;
boolean dryrun;
List<PathMatcher> excludes;
Path extractDir;
@@ -309,11 +309,13 @@
private boolean describe() throws IOException {
try (JmodFile jf = new JmodFile(options.jmodFile)) {
try (InputStream in = jf.getInputStream(Section.CLASSES, MODULE_INFO)) {
ModuleInfo.Attributes attrs = ModuleInfo.read(in, null);
- printModuleDescriptor(attrs.descriptor(), attrs.recordedHashes());
+ printModuleDescriptor(attrs.descriptor(),
+ attrs.target(),
+ attrs.recordedHashes());
return true;
} catch (IOException e) {
throw new CommandException("err.module.descriptor.not.found");
}
}
@@ -323,11 +325,13 @@
if (c.isEmpty()) { return ""; }
return c.stream().map(e -> e.toString().toLowerCase(Locale.ROOT))
.collect(joining(" "));
}
- private void printModuleDescriptor(ModuleDescriptor md, ModuleHashes hashes)
+ private void printModuleDescriptor(ModuleDescriptor md,
+ ModuleTarget target,
+ ModuleHashes hashes)
throws IOException
{
StringBuilder sb = new StringBuilder();
sb.append("\n").append(md.toNameAndVersion());
@@ -363,15 +367,18 @@
.append(" with ")
.append(toString(p.providers())));
md.mainClass().ifPresent(v -> sb.append("\n main-class " + v));
- md.osName().ifPresent(v -> sb.append("\n operating-system-name " + v));
-
- md.osArch().ifPresent(v -> sb.append("\n operating-system-architecture " + v));
-
- md.osVersion().ifPresent(v -> sb.append("\n operating-system-version " + v));
+ if (target != null) {
+ String osName = target.osName();
+ if (osName != null)
+ sb.append("\n operating-system-name " + osName);
+ String osArch = target.osArch();
+ if (osArch != null)
+ sb.append("\n operating-system-architecture " + osArch);
+ }
if (hashes != null) {
hashes.names().stream().sorted().forEach(
mod -> sb.append("\n hashes ").append(mod).append(" ")
.append(hashes.algorithm()).append(" ")
@@ -430,11 +437,10 @@
final Version moduleVersion = options.moduleVersion;
final String mainClass = options.mainClass;
final String osName = options.osName;
final String osArch = options.osArch;
- final String osVersion = options.osVersion;
final List<PathMatcher> excludes = options.excludes;
final ModuleResolution moduleResolution = options.moduleResolution;
JmodFileWriter() { }
@@ -526,13 +532,13 @@
// --main-class
if (mainClass != null)
extender.mainClass(mainClass);
- // --os-name, --os-arch, --os-version
- if (osName != null || osArch != null || osVersion != null)
- extender.targetPlatform(osName, osArch, osVersion);
+ // --os-name, --os-arch
+ if (osName != null || osArch != null)
+ extender.targetPlatform(osName, osArch);
// --module-version
if (moduleVersion != null)
extender.version(moduleVersion);
@@ -673,11 +679,11 @@
* Returns true if it's a .class or a resource with an effective
* package name.
*/
boolean isResource(String name) {
name = name.replace(File.separatorChar, '/');
- return name.endsWith(".class") || !ResourceHelper.isSimpleResource(name);
+ return name.endsWith(".class") || Resources.canEncapsulate(name);
}
String toPackageName(Path path) {
String name = path.toString();
@@ -1329,15 +1335,10 @@
OptionSpec<String> osArch
= parser.accepts("os-arch", getMessage("main.opt.os-arch"))
.withRequiredArg()
.describedAs(getMessage("main.opt.os-arch.arg"));
- OptionSpec<String> osVersion
- = parser.accepts("os-version", getMessage("main.opt.os-version"))
- .withRequiredArg()
- .describedAs(getMessage("main.opt.os-version.arg"));
-
OptionSpec<Void> doNotResolveByDefault
= parser.accepts("do-not-resolve-by-default",
getMessage("main.opt.do-not-resolve-by-default"));
OptionSpec<ModuleResolution> warnIfResolved
@@ -1401,12 +1402,10 @@
options.mainClass = getLastElement(opts.valuesOf(mainClass));
if (opts.has(osName))
options.osName = getLastElement(opts.valuesOf(osName));
if (opts.has(osArch))
options.osArch = getLastElement(opts.valuesOf(osArch));
- if (opts.has(osVersion))
- options.osVersion = getLastElement(opts.valuesOf(osVersion));
if (opts.has(warnIfResolved))
options.moduleResolution = getLastElement(opts.valuesOf(warnIfResolved));
if (opts.has(doNotResolveByDefault)) {
if (options.moduleResolution == null)
options.moduleResolution = ModuleResolution.empty();
< prev index next >