in src/main/java/org/apache/jackrabbit/filevault/maven/packaging/mojo/GenerateMetadataMojo.java [1202:1231]
static PathFilterSet getPathFilterSetForEmbeddedFile(final String embeddedFile, boolean includeAllVersions)
throws ConfigurationException {
final PathFilterSet pathFilterSet;
if (includeAllVersions) {
String filename = FilenameUtils.getName(embeddedFile);
// shorten the filter root by one level
String rootName = StringUtils.chomp(embeddedFile, "/");
String extension = FilenameUtils.getExtension(filename);
// now find a mattern which should apply to embeddedFile and all similar artifacts with different versions from format:
// ${artifactId}-${version})
Matcher matcher = FILENAME_PATTERN_WITHOUT_VERSION_IN_GROUP1.matcher(filename);
if (!matcher.matches()) {
throw new IllegalArgumentException("Could not figure out version part in filename '" + filename
+ "'. For this artifact you cannot use 'isAllVersionsFilter=true'");
}
// create new pattern which matches the same artifacts in all versions
String pattern = Pattern.quote(rootName + "/" + matcher.group(1)) + ".*" + "\\." + extension + "(/.*)?";
if (!embeddedFile.matches(pattern)) {
throw new IllegalArgumentException("Detected pattern '" + pattern + "' does not even match given filename '" + embeddedFile
+ "'. For this artifact you cannot use 'isAllVersionsFilter=true'");
}
pathFilterSet = new PathFilterSet(rootName);
pathFilterSet.addInclude(new DefaultPathFilter(pattern));
} else {
pathFilterSet = new PathFilterSet(embeddedFile);
}
return pathFilterSet;
}