in src/main/java/org/apache/sling/feature/io/json/FeatureJSONWriter.java [125:152]
private void writeConfigurations(final JsonGenerator generator, final Configurations cfgs) throws IOException {
if ( cfgs.isEmpty() ) {
return;
}
generator.writeKey(JSONConstants.FEATURE_CONFIGURATIONS);
final ConfigurationWriter cfgWriter = org.apache.felix.cm.json.io.Configurations
.buildWriter()
.build(generator);
final ConfigurationResource rsrc = new ConfigurationResource();
for(final Configuration cfg : cfgs) {
final Hashtable<String, Object> properties;
if ( cfg.getProperties() instanceof Hashtable && cfg.getProperties().get(Configuration.PROP_ARTIFACT_ID) == null ) {
properties = (Hashtable<String, Object>)cfg.getProperties();
} else {
properties = org.apache.felix.cm.json.io.Configurations.newConfiguration();
for(final String name : Collections.list(cfg.getProperties().keys()) ) {
if ( !Configuration.PROP_ARTIFACT_ID.equals(name) ) {
properties.put(name, cfg.getProperties().get(name));
}
}
}
rsrc.getConfigurations().put(cfg.getPid(), properties);
}
cfgWriter.writeConfigurationResource(rsrc);
}