private void generateCompilationReport()

in src/main/java/org/apache/sling/maven/jspc/JspcMojo.java [705:745]


    private void generateCompilationReport(DependencyTracker dependencyTracker) {
        JsonObjectBuilder jsonObjectBuilder = Json.createObjectBuilder();
        JsonArrayBuilder providers = Json.createArrayBuilder();
        JsonArrayBuilder jsps = Json.createArrayBuilder();
        dependencyTracker.getPackageProviders().forEach(
                (pkg, providersForPackage) -> {
                    JsonArrayBuilder providersForPackageBuilder = Json.createArrayBuilder(providersForPackage);
                    JsonObject provider = Json.createObjectBuilder()
                            .add("package", pkg)
                            .add("providers", providersForPackageBuilder)
                            .build();
                    providers.add(provider);
                }
        );
        dependencyTracker.getJspDependencies().forEach(
                (jsp, dependencies) -> {
                    JsonArrayBuilder dependenciesBuilder = Json.createArrayBuilder(dependencies);
                    JsonObject jspDependency = Json.createObjectBuilder()
                            .add("jsp", jsp)
                            .add("dependencies", dependenciesBuilder)
                            .build();
                    jsps.add(jspDependency);
                }
        );
        JsonArrayBuilder unusedDependencies = Json.createArrayBuilder(dependencyTracker.getUnusedDependencies());
        Path compilationReportPath = Paths.get(project.getBuild().getOutputDirectory(), COMPILATION_REPORT);
        Map<String, Object> properties = new HashMap<>(1);
        properties.put(JsonGenerator.PRETTY_PRINTING, true);
        JsonWriterFactory writerFactory = Json.createWriterFactory(properties);
        try (JsonWriter jsonWriter = writerFactory.createWriter(Files.newBufferedWriter(compilationReportPath, StandardCharsets.UTF_8))) {
            jsonWriter.writeObject(
                    jsonObjectBuilder
                            .add("packageProviders", providers.build())
                            .add("jspDependencies", jsps.build())
                            .add("unusedDependencies", unusedDependencies.build())
                            .build()
            );
        } catch (IOException e) {
            getLog().error("Cannot generate the " + COMPILATION_REPORT + " file.", e);
        }
    }