in src/main/java/org/apache/sling/feature/maven/mojos/AbstractIncludingFeatureMojo.java [144:179]
private void selectFeatureFiles(
final String include, final List<String> excludes, final Map<String, Feature> result)
throws MojoExecutionException {
final Map<String, Feature> projectFeatures = ProjectHelper.getAssembledFeatures(this.project);
final String prefix =
this.features.toPath().normalize().toFile().getAbsolutePath().concat(File.separator);
final FeatureScanner scanner = new FeatureScanner(projectFeatures, prefix);
if (!excludes.isEmpty()) {
scanner.setExcludes(excludes.toArray(new String[excludes.size()]));
}
scanner.setIncludes(new String[] {include});
scanner.scan();
if (!include.contains("*") && scanner.getIncluded().isEmpty()) {
throw new MojoExecutionException("FeatureInclude " + include + " not found.");
}
for (Map.Entry<String, Feature> entry : scanner.getIncluded().entrySet()) {
if (!result.containsKey(entry.getKey())) {
result.put(entry.getKey(), entry.getValue());
}
}
if (!excludes.isEmpty()) {
for (final String exclude : excludes) {
if (!exclude.contains("*")) {
final FeatureScanner excludeScanner = new FeatureScanner(projectFeatures, prefix);
excludeScanner.setIncludes(new String[] {exclude});
excludeScanner.scan();
if (excludeScanner.getIncluded().isEmpty()) {
throw new MojoExecutionException("FeatureExclude " + exclude + " not found.");
}
}
}
}
}