in src/main/java/org/apache/sling/feature/analyser/extensions/AnalyserMetaDataExtension.java [72:114]
private AnalyserMetaDataExtension(JsonObject json) {
for (Map.Entry<String, JsonValue> entry : json.entrySet()) {
// handle system bundle separately
if (entry.getKey().equals(SYSTEM_BUNDLE_KEY)) {
JsonObject systemBundleConfig = entry.getValue().asJsonObject();
JsonObject manifestObj = systemBundleConfig.getJsonObject(MANIFEST_KEY);
String artifactId =
systemBundleConfig.getJsonString(ARTIFACT_ID_KEY).getString();
String scannerCacheKey =
systemBundleConfig.getJsonString(SCANNER_CACHE_KEY).getString();
Map<String, String> manifest = new HashMap<>();
for (String key : manifestObj.keySet()) {
manifest.put(key, manifestObj.getString(key));
}
systemBundle = new SystemBundle(manifest, ArtifactId.fromMvnId(artifactId), scannerCacheKey);
continue;
}
ArtifactId id = ArtifactId.fromMvnId(entry.getKey());
JsonObject headers = entry.getValue().asJsonObject();
if (headers.containsKey(MANIFEST_KEY)) {
Map<String, String> manifest = new LinkedHashMap<>();
JsonObject manifestHeaders = headers.getJsonObject(MANIFEST_KEY);
for (String name : manifestHeaders.keySet()) {
manifest.put(name, manifestHeaders.getString(name));
}
this.manifests.put(id, manifest);
}
if (headers.containsKey(REPORT_KEY)) {
JsonObject report = headers.getJsonObject(REPORT_KEY);
if (report.containsKey(WARNING_KEY)) {
reportWarnings.put(id, report.getBoolean(WARNING_KEY));
}
if (report.containsKey(ERROR_KEY)) {
reportErrors.put(id, report.getBoolean(ERROR_KEY));
}
}
}
}