private void writeConfigurations()

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