public void saveConfig()

in src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java [96:135]


    public void saveConfig(ResourceResolver resolver, DistributionConfiguration config) {
        Resource configRoot = resolver.getResource(configRootPath);

        if (configRoot == null) {
            return;
        }

        Resource configResource = configRoot.getChild(config.getName());
        Resource contentResource = (configResource != null)
                ? configResource.getChild(CONTENT_NODE)
                : null ;

        try {
            if (configResource == null) {
                Map<String, Object> configMap = new HashMap<String, Object>();
                configMap.put("jcr:primaryType", "sling:Folder");
                configResource = resolver.create(configRoot, config.getName(), configMap);
            }

            if (contentResource == null) {
                Map<String, Object> contentMap = new HashMap<String, Object>();
                contentMap.put("jcr:primaryType", "nt:unstructured");
                contentResource = resolver.create(configResource, CONTENT_NODE, contentMap);
            }

            Map<String, Object> properties = config.getProperties();
            properties = filterMap(properties);
            for (Map.Entry<String, String> propDefault : configDefaults.entrySet()) {
                if (!properties.containsKey(propDefault.getKey())) {
                    properties.put(propDefault.getKey(),propDefault.getValue());
                }
            }

            ModifiableValueMap valueMap = contentResource.adaptTo(ModifiableValueMap.class);
            valueMap.putAll(properties);
        } catch (PersistenceException e) {
            log.error("cannot save config {}", config.getName(),  e);
        }

    }