in services/minho-config-properties/src/main/java/org/apache/karaf/minho/config/properties/PropertiesConfigLoaderService.java [79:112]
private Config parse(final Properties properties) {
Config config = new Config();
properties.keySet().stream().filter(key -> !((String) key).startsWith("application."))
.forEach(key -> {
config.getProperties().put(((String) key), properties.get(key).toString());
});
List<Object> applicationKeys = properties.keySet().stream().filter(key -> ((String) key).startsWith("application."))
.collect(Collectors.toList());
Map<Object, List<Object>> groupBy = applicationKeys.stream()
.collect(Collectors.groupingBy(key -> {
String local = ((String) key).substring("application.".length());
return local.substring(0, local.indexOf("."));
}));
groupBy.entrySet().forEach(entry -> {
Application application = new Application();
String appName = (String) entry.getKey();
entry.getValue().forEach(value -> {
if (value.equals("application." + appName + ".type")) {
application.setType((String) properties.get(value));
} else if (value.equals("application." + appName + ".url")) {
application.setUrl((String) properties.get(value));
} else if (value.equals("application." + appName + ".profile")) {
application.setProfile((String) properties.get(value));
} else {
application.getProperties().put(((String) value).substring(("application." + appName).length() + 1), properties.get(value).toString());
}
});
config.getApplications().add(application);
});
return config;
}