JCRVLT-408 only add ancestor files if something has been added for a
filter entry
git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/commons/filevault-package-maven-plugin/trunk@1873957 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
index 0aa34b4..a3dba8f 100644
--- a/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
+++ b/src/main/java/org/apache/jackrabbit/filevault/maven/packaging/VaultMojo.java
@@ -243,6 +243,7 @@
File newTargetDirectory = applyFiltering(destFile.getParent().toString(), mavenResourcesExecution, resource);
sourceFile = new File(newTargetDirectory, sourceFile.getName());
}
+ getLog().debug("Adding file '" + sourceFile + "' to package at '" + destFileName + "'");
archiver.addFile(sourceFile, destFileName);
}
@@ -273,9 +274,19 @@
File newTargetDirectory = applyFiltering(fileSet.getPrefix(), mavenResourcesExecution, resource);
fileSet.setDirectory(newTargetDirectory);
}
+ getLog().debug("Adding fileSet '" + getString(fileSet) + "' to package");
archiver.addFileSet(fileSet);
}
+ private static String getString(FileSet fileSet) {
+ StringBuilder sb = new StringBuilder("FileSet [");
+ sb.append("directory=").append(fileSet.getDirectory());
+ sb.append(" prefix=").append(fileSet.getPrefix());
+ sb.append(" excludes=").append(StringUtils.join(fileSet.getExcludes(), ", "));
+ sb.append("]");
+ return sb.toString();
+ }
+
private @NotNull File applyFiltering(String prefix, MavenResourcesExecution mavenResourcesExecution, Resource resource) throws MavenFilteringException {
File targetPath = new File(project.getBuild().getDirectory(), "filteredFiles");
mavenResourcesExecution.setOutputDirectory(targetPath);
@@ -494,7 +505,6 @@
if (embeddedFiles.containsKey(destPath)) {
continue;
}
-
// check for full coverage aggregate
File sourceFile = new File(jcrSourceDirectory, relPath + ".xml");
if (sourceFile.isFile()) {
@@ -503,8 +513,10 @@
duplicateFiles.put(new File(destPath), sourceFile);
}
addFileToArchive(mavenResourcesExecution, contentPackageArchiver, sourceFile, destPath);
- // root path for ancestors is the parent directory
- } else {
+ // similar to AbstractExporter all ancestors should be contained as well (see AggregateImpl.prepare(...))
+ addAncestors(contentPackageArchiver, sourceFile, jcrSourceDirectory, destPath);
+ } else {
+ // root path for ancestors is in one of the parent directories?
sourceFile = new File(jcrSourceDirectory, relPath);
// traverse the ancestors until we find a existing directory (see CQ-4204625)
@@ -519,10 +531,11 @@
DefaultFileSet fileSet = createFileSet(sourceFile, destPath + "/");
duplicateFiles.putAll(getOverwrittenProtectedFiles(fileSet, false));
addFileSetToArchive(mavenResourcesExecution, contentPackageArchiver, fileSet);
+ // similar to AbstractExporter all ancestors should be contained as well (see AggregateImpl.prepare(...))
+ addAncestors(contentPackageArchiver, sourceFile, jcrSourceDirectory, destPath);
}
}
- // similar to AbstractExporter all ancestors should be contained as well (see AggregateImpl.prepare(...))
- addAncestors(contentPackageArchiver, sourceFile, jcrSourceDirectory, destPath);
+
}
}
return duplicateFiles;
@@ -536,6 +549,7 @@
// is there an according .content.xml available? (ignore full-coverage files)
File genericAggregate = new File(inputFile, Constants.DOT_CONTENT_XML);
if (genericAggregate.exists()) {
+ getLog().debug("Adding ancestor file '" + genericAggregate + "' to package at '" + destFile + "/" + Constants.DOT_CONTENT_XML +"'");
contentPackageArchiver.addFile(genericAggregate, destFile + "/" + Constants.DOT_CONTENT_XML);
}
addAncestors(contentPackageArchiver, inputFile.getParentFile(), inputRootFile, StringUtils.chomp(destFile, "/"));