private Config parse()

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;
    }