in src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/GenerateMetadataMojo.java [1265:1311]
PackageType computePackageType() {
final PackageType packageType;
// auto detect...
boolean hasApps = false;
boolean hasOsgiConfigsOrBundles = false;
boolean hasOther = false;
for (PathFilterSet p : filters.getFilterSets()) {
if (PathFilterSet.TYPE_CLEANUP.equals(p.getType())) {
continue;
}
String root = p.getRoot();
if ("/apps".equals(root) || root.startsWith("/apps/") || "/libs".equals(root) || root.startsWith("/libs/")) {
// is it OSGi config or bundles (just some heuristic)
if (OSGI_CONFIG_OR_BUNDLE_FILTER_ROOT_PATTERN.matcher(root).matches()) {
getLog().debug("Detected probably OSGi config/bundle filter entry: " + p);
hasOsgiConfigsOrBundles = true;
} else {
hasApps = true;
getLog().debug("Detected /apps or /libs filter entry: " + p);
}
} else {
hasOther = true;
getLog().debug("Detected filter entry outside /apps and /libs: " + p);
}
}
// no embeds and subpackages?
getLog().debug("Detected " + embeddeds.length + " bundle(s) and " + subPackages.length + " sub package(s).");
if (embeddeds.length == 0 && subPackages.length == 0) {
if (hasApps && !hasOther && !hasOsgiConfigsOrBundles) {
packageType = PackageType.APPLICATION;
} else if (hasOther && !hasApps && !hasOsgiConfigsOrBundles) {
packageType = PackageType.CONTENT;
} else if (!hasOther && !hasApps && hasOsgiConfigsOrBundles) {
packageType = PackageType.CONTAINER;
} else {
packageType = PackageType.MIXED;
}
} else {
if (!hasApps && !hasOther) {
packageType = PackageType.CONTAINER;
} else {
packageType = PackageType.MIXED;
}
}
getLog().info("Auto-detected package type: " + packageType.toString().toLowerCase());
return packageType;
}