in src/main/java/org/apache/sling/feature/io/json/FeatureJSONWriter.java [80:117]
private void writeBundles(final JsonGenerator generator,
final Bundles bundles,
final Configurations allConfigs) {
// bundles
if ( !bundles.isEmpty() ) {
generator.writeStartArray(JSONConstants.FEATURE_BUNDLES);
for(final Artifact artifact : bundles) {
final Configurations cfgs = new Configurations();
for(final Configuration cfg : allConfigs) {
final String artifactProp = (String)cfg.getProperties().get(Configuration.PROP_ARTIFACT_ID);
if ( artifact.getId().toMvnId().equals(artifactProp) ) {
cfgs.add(cfg);
}
}
Map<String,String> md = artifact.getMetadata();
if ( md.isEmpty() && cfgs.isEmpty() ) {
generator.write(artifact.getId().toMvnId());
} else {
generator.writeStartObject();
generator.write(JSONConstants.ARTIFACT_ID, artifact.getId().toMvnId());
Object runmodes = md.remove("runmodes");
if (runmodes instanceof String) {
md.put("run-modes", (String) runmodes);
}
for(final Map.Entry<String, String> me : md.entrySet()) {
generator.write(me.getKey(), me.getValue());
}
generator.writeEnd();
}
}
generator.writeEnd();
}
}