< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java
Print this page
*** 94,110 ****
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.tools.jlink.internal.Utils;
import static java.util.stream.Collectors.joining;
/**
--- 94,111 ----
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.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,186 ****
ModuleFinder moduleFinder;
Version moduleVersion;
String mainClass;
String osName;
String osArch;
- String osVersion;
Pattern modulesToHash;
ModuleResolution moduleResolution;
boolean dryrun;
List<PathMatcher> excludes;
Path extractDir;
--- 177,186 ----
*** 309,319 ****
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());
return true;
} catch (IOException e) {
throw new CommandException("err.module.descriptor.not.found");
}
}
--- 309,321 ----
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.target(),
! attrs.recordedHashes());
return true;
} catch (IOException e) {
throw new CommandException("err.module.descriptor.not.found");
}
}
*** 323,333 ****
if (c.isEmpty()) { return ""; }
return c.stream().map(e -> e.toString().toLowerCase(Locale.ROOT))
.collect(joining(" "));
}
! private void printModuleDescriptor(ModuleDescriptor md, ModuleHashes hashes)
throws IOException
{
StringBuilder sb = new StringBuilder();
sb.append("\n").append(md.toNameAndVersion());
--- 325,337 ----
if (c.isEmpty()) { return ""; }
return c.stream().map(e -> e.toString().toLowerCase(Locale.ROOT))
.collect(joining(" "));
}
! private void printModuleDescriptor(ModuleDescriptor md,
! ModuleTarget target,
! ModuleHashes hashes)
throws IOException
{
StringBuilder sb = new StringBuilder();
sb.append("\n").append(md.toNameAndVersion());
*** 363,377 ****
.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 (hashes != null) {
hashes.names().stream().sorted().forEach(
mod -> sb.append("\n hashes ").append(mod).append(" ")
.append(hashes.algorithm()).append(" ")
--- 367,384 ----
.append(" with ")
.append(toString(p.providers())));
md.mainClass().ifPresent(v -> sb.append("\n main-class " + 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,440 ****
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() { }
--- 437,446 ----
*** 526,538 ****
// --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);
// --module-version
if (moduleVersion != null)
extender.version(moduleVersion);
--- 532,544 ----
// --main-class
if (mainClass != null)
extender.mainClass(mainClass);
! // --os-name, --os-arch
! if (osName != null || osArch != null)
! extender.targetPlatform(osName, osArch);
// --module-version
if (moduleVersion != null)
extender.version(moduleVersion);
*** 673,683 ****
* 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);
}
String toPackageName(Path path) {
String name = path.toString();
--- 679,689 ----
* 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") || Resources.canEncapsulate(name);
}
String toPackageName(Path path) {
String name = path.toString();
*** 1329,1343 ****
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
--- 1335,1344 ----
*** 1401,1412 ****
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();
--- 1402,1411 ----
< prev index next >