in src/main/java/org/apache/sling/feature/io/json/ConfigurationJSONReader.java [54:87]
Configurations readConfigurations(final String location, final Reader reader) throws IOException {
final Configurations result = new Configurations();
final ConfigurationReader cfgReader = org.apache.felix.cm.json.io.Configurations
.buildReader()
.withIdentifier(location)
.verifyAsBundleResource(true)
.withConfiguratorPropertyHandler(new ConfiguratorPropertyHandler() {
@Override
public void handleConfiguratorProperty(final String pid, final String property, final Object value) {
Configuration cfg = result.getConfiguration(pid);
if ( cfg == null ) {
cfg = new Configuration(pid);
result.add(cfg);
}
cfg.getProperties().put(Configuration.CONFIGURATOR_PREFIX.concat(property), value);
}
})
.build(reader);
final ConfigurationResource rsrc = cfgReader.readConfigurationResource();
for(Map.Entry<String, Hashtable<String, Object>> entry : rsrc.getConfigurations().entrySet() ) {
Configuration cf = result.getConfiguration(entry.getKey());
if ( cf == null ) {
cf = new Configuration(entry.getKey());
result.add(cf);
}
for(final Map.Entry<String, Object> prop : entry.getValue().entrySet()) {
cf.getProperties().put(prop.getKey(), prop.getValue());
}
}
return result;
}