in src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/VaultMojo.java [304:350]
protected void addFileSetToArchive(MavenResourcesExecution mavenResourcesExecution, ContentPackageArchiver archiver, DefaultFileSet fileSet) throws MavenFilteringException {
// ignore directories added with no prefix (workDirectory)
String prefix = fileSet.getPrefix();
if (prefix != null && ((prefix.startsWith(Constants.ROOT_DIR) && enableJcrRootFiltering) ||
(prefix.startsWith(Constants.META_INF) && enableMetaInfFiltering))) {
getLog().info("Apply filtering to FileSet below " + getProjectRelativeFilePath(fileSet.getDirectory()));
Resource filteringSourceResource = new Resource();
filteringSourceResource.setDirectory(fileSet.getDirectory().getPath());
// since allow lists (i.e. only filtering specific extensions) is not natively supported
// split up the fileSet
if (filteredFilePatterns != null && !filteredFilePatterns.isEmpty()) {
if (fileSet.getIncludes() != null) {
throw new IllegalStateException("FileSet can not have includes set, as those are used for filteredFileExtensions");
}
// create an additional file set with unfiltered files
DefaultFileSet unfilteredFileSet = cloneFileSet(fileSet);
// add all filtered file patterns to excludes
String[] excludes = Stream.of(Arrays.asList(fileSet.getExcludes()), filteredFilePatterns).flatMap(x -> x.stream()).toArray(String[]::new);
unfilteredFileSet.setExcludes(excludes);
getLog().debug("Adding unfiltered fileSet '" + getString(unfilteredFileSet) + "' to package");
archiver.addFileSet(unfilteredFileSet);
filteringSourceResource.setIncludes(filteredFilePatterns);
} else {
if (fileSet.getIncludes() != null) {
filteringSourceResource.setIncludes(Arrays.asList(fileSet.getIncludes()));
}
}
if (fileSet.getExcludes() != null) {
filteringSourceResource.setExcludes(Arrays.asList(fileSet.getExcludes()));
// default exclude are managed via mavenResourcesExecution
}
filteringSourceResource.setFiltering(true);
File newTargetDirectory = applyFiltering(fileSet.getPrefix(), mavenResourcesExecution, filteringSourceResource);
if (newTargetDirectory.exists()) {
fileSet.setDirectory(newTargetDirectory);
getLog().debug("Adding filtered fileSet '" + getString(fileSet) + "' to package");
archiver.addFileSet(fileSet);
}
} else {
getLog().debug("Adding fileSet '" + getString(fileSet) + "' to package");
archiver.addFileSet(fileSet);
}
}