in src/main/java/org/apache/sling/feature/maven/mojos/reports/DuplicatesReporter.java [43:96]
public void generateReport(ReportContext ctx) throws MojoExecutionException {
final Map<String, Set<String>> artifactMap = new TreeMap<>();
final Map<String, Set<String>> bundleMap = new TreeMap<>();
final Map<String, Set<String>> configMap = new TreeMap<>();
final Map<String, Set<String>> propsMap = new TreeMap<>();
for (final Feature feature : ctx.getFeatures()) {
for (final Extension ext : feature.getExtensions()) {
if (ext.getType() == ExtensionType.ARTIFACTS) {
for (final Artifact a : ext.getArtifacts()) {
final String key = a.getId().changeVersion("0").toMvnId();
artifactMap
.computeIfAbsent(key, k -> new HashSet<>())
.add(feature.getId()
.getClassifier()
.concat("(")
.concat(a.getId().getVersion())
.concat(")"));
}
}
}
for (final Artifact a : feature.getBundles()) {
final String key = a.getId().changeVersion("0").toMvnId();
bundleMap
.computeIfAbsent(key, k -> new HashSet<>())
.add(feature.getId()
.getClassifier()
.concat("(")
.concat(a.getId().getVersion())
.concat(")"));
}
for (final Configuration c : feature.getConfigurations()) {
configMap
.computeIfAbsent(c.getPid(), k -> new HashSet<>())
.add(feature.getId().getClassifier());
}
for (final String a : feature.getFrameworkProperties().keySet()) {
propsMap.computeIfAbsent(a, k -> new HashSet<>())
.add(feature.getId().getClassifier());
}
}
final List<String> output = new ArrayList<>();
outputDuplicates(output, "framework-properties", propsMap);
outputDuplicates(output, "bundles", bundleMap);
outputDuplicates(output, "configurations", configMap);
outputDuplicates(output, "artifacts", artifactMap);
if (output.isEmpty()) {
output.add("No duplicates found");
}
ctx.addReport(this.getName().concat(".txt"), output);
}