public void generateReport()

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);
    }