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