in src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/GenerateMetadataMojo.java [899:939]
private MavenArchiveConfiguration getMavenArchiveConfiguration(Properties vaultProperties, String dependenciesString, String dependenciesLocations) throws IOException {
if (archive == null) {
archive = new MavenArchiveConfiguration();
archive.setManifest(new ManifestConfiguration());
archive.setAddMavenDescriptor(true);
archive.setCompress(true);
archive.setIndex(false);
archive.getManifest().setAddDefaultSpecificationEntries(false);
archive.getManifest().setAddDefaultImplementationEntries(true);
// TODO: split up manifest generation
PackageId id = new PackageId(group, name, version);
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_TYPE, escapeManifestValue(packageType.name().toLowerCase()));
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_ID, escapeManifestValue(id.toString()));
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_DESC, escapeManifestValue(vaultProperties.getProperty("description", "")));
if (dependenciesString != null && dependenciesString.length() > 0) {
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_DEPENDENCIES, escapeManifestValue(dependenciesString));
if (dependenciesLocations != null && dependenciesLocations.length() > 0) {
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_DEPENDENCIES_LOCATIONS, escapeManifestValue(dependenciesLocations));
}
}
// be sure to avoid duplicates
Set<String> rts = new TreeSet<>();
for (PathFilterSet p: filters.getFilterSets()) {
rts.add(p.getRoot());
}
String[] roots = rts.toArray(new String[rts.size()]);
Arrays.sort(roots);
archive.addManifestEntry(PackageProperties.MF_KEY_PACKAGE_ROOTS, escapeManifestValue(StringUtils.join(roots, ",")));
// import package is not yet there!
if (StringUtils.isNotEmpty(importPackage)) {
archive.addManifestEntry(PackageProperties.MF_KEY_IMPORT_PACKAGE, escapeManifestValue(StringUtils.deleteWhitespace(importPackage)));
}
}
return archive;
}