Example usage for org.apache.commons.configuration2 XMLConfiguration clearProperty

List of usage examples for org.apache.commons.configuration2 XMLConfiguration clearProperty

Introduction

In this page you can find the example usage for org.apache.commons.configuration2 XMLConfiguration clearProperty.

Prototype

void clearProperty(String key);

Source Link

Document

Remove a property from the configuration.

Usage

From source file:com.gs.obevo.api.factory.XmlFileConfigReader.java

/**
 * Backwards-compatible changes to ensure existing XML consumers are not negatively affected.
 *///from  w  w w  .j av  a2s.c om
private void postProcess(XMLConfiguration sysCfg) {
    ImmutableSet<String> ignorableSysAttributes = Sets.immutable.of("cleanBuildAllowed", "name",
            "defaultUserId", "defaultPassword", "dbHost", "dbPort", "dbServer", "dbSchemaPrefix",
            "dbSchemaSuffix", "dbDataSourceName", "jdbcUrl", "driverClass", "defaultTablespace",
            "persistToFile", "disableAuditTracking", "inMemoryDbType", "includeSchemas", "excludeSchemas");
    ImmutableSet<String> ignorableSysNodes = Sets.immutable.of("excludeSchemas", "includeSchemas",
            "schemaOverrides", "tokens");
    final ImmutableSet<String> ignorableEnvNodes = Sets.immutable.of("groups", "users");
    final ImmutableSet<String> ignorableEnvAttributes = Sets.immutable.of("sourceDirs", "acceptedExtensions",
            "dataDelimiter", "nullToken");

    for (String ignorableAttribute : ignorableSysAttributes) {
        if (sysCfg.containsKey(ignorableAttribute)) {
            sysCfg.clearProperty(ignorableAttribute);
        }
    }
    for (String ignorableSysNode : ignorableSysNodes) {
        if (!sysCfg.configurationsAt(ignorableSysNode).isEmpty()) {
            sysCfg.clearTree(ignorableSysNode);
        }
    }

    for (String ignorableAttribute : ignorableEnvAttributes) {
        sysCfg.clearProperty("environments.environment[@" + ignorableAttribute + "]");
        sysCfg.clearProperty("environments.dbEnvironment[@" + ignorableAttribute + "]");
    }
    for (String ignorableSysNode : ignorableEnvNodes) {
        sysCfg.clearTree("environments.environment." + ignorableSysNode);
        sysCfg.clearTree("environments.dbEnvironment." + ignorableSysNode);
    }

    ImmutableList<HierarchicalConfiguration<ImmutableNode>> envConfigs = ListAdapter
            .adapt(sysCfg.configurationsAt("environments.dbEnvironment")).toImmutable();
    if (envConfigs.isEmpty()) {
        envConfigs = ListAdapter.adapt(sysCfg.configurationsAt("environments.environment")).toImmutable();
    }
    envConfigs.each(new Procedure<HierarchicalConfiguration<ImmutableNode>>() {
        @Override
        public void value(HierarchicalConfiguration<ImmutableNode> envCfg) {
            for (String ignorableAttribute : ignorableEnvAttributes) {
                if (envCfg.containsKey(ignorableAttribute)) {
                    envCfg.clearProperty(ignorableAttribute);
                }
            }
            for (String ignorableSysNode : ignorableEnvNodes) {
                if (!envCfg.configurationsAt(ignorableSysNode).isEmpty()) {
                    envCfg.clearTree(ignorableSysNode);
                }
            }
        }
    });
}