< prev index next >
jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/JmodArchive.java
Print this page
*** 128,159 ****
switch (section) {
case CLASSES:
return EntryType.CLASS_OR_RESOURCE;
case CONFIG:
return EntryType.CONFIG;
- case NATIVE_LIBS:
- return EntryType.NATIVE_LIB;
- case NATIVE_CMDS:
- return EntryType.NATIVE_CMD;
case HEADER_FILES:
return EntryType.HEADER_FILE;
case MAN_PAGES:
return EntryType.MAN_PAGE;
default:
throw new InternalError("unexpected entry: " + section);
}
}
private Entry toEntry(JmodFile.Entry entry) {
EntryType type = toEntryType(entry.section());
String name = entry.name();
! String path = entry.section().jmodDir() + "/" + name;
!
! // Entry.path() contains the kind of file native, conf, bin, ...
! // Keep it to avoid naming conflict (eg: native/jvm.cfg and config/jvm.cfg
String resourceName = name;
! if (type != EntryType.CLASS_OR_RESOURCE) {
resourceName = path;
}
return new JmodEntry(path, resourceName, type, entry);
}
--- 128,176 ----
switch (section) {
case CLASSES:
return EntryType.CLASS_OR_RESOURCE;
case CONFIG:
return EntryType.CONFIG;
case HEADER_FILES:
return EntryType.HEADER_FILE;
+ case LEGAL_NOTICES:
+ return EntryType.LEGAL_NOTICE;
case MAN_PAGES:
return EntryType.MAN_PAGE;
+ case NATIVE_LIBS:
+ return EntryType.NATIVE_LIB;
+ case NATIVE_CMDS:
+ return EntryType.NATIVE_CMD;
default:
throw new InternalError("unexpected entry: " + section);
}
}
private Entry toEntry(JmodFile.Entry entry) {
EntryType type = toEntryType(entry.section());
+ String prefix = entry.section().jmodDir();
String name = entry.name();
! String path = prefix + "/" + name;
String resourceName = name;
!
! // The resource name represents the path of ResourcePoolEntry
! // and its subpath defines the ultimate path to be written
! // to the image relative to the directory corresponding to that
! // resource type.
! //
! // For classes and resources, the resource name does not have
! // a prefix (<package>/<name>). They will be written to the jimage.
! //
! // For other kind of entries, it will keep the section name as
! // the prefix for unique identification. The subpath (taking
! // out the section name) is the pathname to be written to the
! // corresponding directory in the image.
! //
! if (type == EntryType.LEGAL_NOTICE) {
! // legal notices are written to per-module directory
! resourceName = prefix + "/" + moduleName + "/" + name;
! } else if (type != EntryType.CLASS_OR_RESOURCE) {
resourceName = path;
}
return new JmodEntry(path, resourceName, type, entry);
}
< prev index next >