Example usage for org.apache.commons.configuration HierarchicalConfiguration getKeys

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getKeys

Introduction

In this page you can find the example usage for org.apache.commons.configuration HierarchicalConfiguration getKeys.

Prototype

public Iterator getKeys() 

Source Link

Document

Returns an iterator with all keys defined in this configuration.

Usage

From source file:org.apache.james.utils.FileConfigurationProviderTest.java

@Test
public void multiplesSeparatorsShouldBeTolerated() throws Exception {
    HierarchicalConfiguration hierarchicalConfiguration = configurationProvider
            .getConfiguration(ROOT_CONFIG_KEY + CONFIG_SEPARATOR + CONFIG_SEPARATOR + CONFIG_KEY_4);
    assertThat(hierarchicalConfiguration.getKeys()).containsOnly(CONFIG_KEY_2,
            String.join(CONFIG_SEPARATOR, CONFIG_KEY_5, CONFIG_KEY_2));
    assertThat(hierarchicalConfiguration.getProperty(CONFIG_KEY_2)).isEqualTo(VALUE_2);
}

From source file:org.apereo.lap.model.PipelineConfig.java

public static PipelineConfig makeConfigFromXML(ConfigurationService configurationService,
        StorageService storage, XMLConfiguration xmlConfig) {
    PipelineConfig pc = new PipelineConfig();
    pc.filename = xmlConfig.getFileName();
    pc.name = xmlConfig.getString("name");
    pc.type = xmlConfig.getString("type");
    pc.description = xmlConfig.getString("description");
    // special handling for stats metadata
    HierarchicalConfiguration stats = xmlConfig.configurationAt("stats");
    Iterator<String> statsKeys = stats.getKeys();
    while (statsKeys.hasNext()) {
        String next = statsKeys.next();
        try {/* w  w  w  .  ja  va2 s.c  om*/
            Float f = stats.getFloat(next);
            pc.stats.put(next, f);
        } catch (Exception e) {
            // skip this float and warn
            logger.warn("Unable to get float from " + next + " <stats> field (skipping it): " + e);
        }
    }

    // load the lists
    // sources
    List<HierarchicalConfiguration> sourceFields = xmlConfig.configurationsAt("sources.source");
    for (HierarchicalConfiguration field : sourceFields) {
        try {
            pc.addInputHandlerField(field.getString("type"), field, configurationService, storage);
        } catch (Exception e) {
            // skip this input and warn
            logger.warn("Unable to load input field (" + field.toString() + ") (skipping it): " + e);
        }
    }

    // load the lists
    // inputs
    List<HierarchicalConfiguration> inputFields = xmlConfig.configurationsAt("inputs.fields.field");
    for (HierarchicalConfiguration field : inputFields) {
        try {
            pc.addInputField(InputField.make(field.getString("name"), field.getBoolean("required", false)));
        } catch (Exception e) {
            // skip this input and warn
            logger.warn("Unable to load input field (" + field.toString() + ") (skipping it): " + e);
        }
    }
    // processors
    List<HierarchicalConfiguration> processors = xmlConfig.configurationsAt("processors.processor");
    for (HierarchicalConfiguration processor : processors) {
        try {
            String pType = processor.getString("type");
            Processor.ProcessorType pt = Processor.ProcessorType.fromString(pType); // IllegalArgumentException if invalid
            if (pt == Processor.ProcessorType.KETTLE_JOB) {
                pc.addProcessor(
                        Processor.makeKettleJob(processor.getString("name"), processor.getString("file")));
            } else if (pt == Processor.ProcessorType.KETTLE_TRANSFORM) {
                pc.addProcessor(Processor.makeKettleTransform(processor.getString("name"),
                        processor.getString("file")));
            } else if (pt == Processor.ProcessorType.KETTLE_DATA) {
                Processor p = new Processor();
                p.type = Processor.ProcessorType.KETTLE_DATA;
                p.name = processor.getString("name");
                p.count = processor.getInt("count");
                pc.addProcessor(p);
                logger.warn("KETTLE DATA processor loaded (" + p.toString() + ")");
            } // Add other types here as needed
        } catch (Exception e) {
            // skip this processor and warn
            logger.warn("Unable to load processor (" + processor.toString() + ") (skipping it): " + e);
        }
    }
    // outputs
    List<HierarchicalConfiguration> outputs = xmlConfig.configurationsAt("outputs.output");
    for (HierarchicalConfiguration output : outputs) {

        // TODO - we need to rethink output handling
        // don't want to add code every time we need to support a new output type
        try {
            String oType = output.getString("type");
            Output.OutputType ot = Output.OutputType.fromString(oType); // IllegalArgumentException if invalid
            if (ot == Output.OutputType.CSV) {
                Output o = Output.makeCSV(output.getString("from"), output.getString("filename"));
                // load the output fields
                List<HierarchicalConfiguration> outputFields = output.configurationsAt("fields.field");
                for (HierarchicalConfiguration outputField : outputFields) {
                    o.addFieldCSV(outputField.getString("source"), outputField.getString("header"));
                }
                pc.addOutput(o);
            } else if (ot == Output.OutputType.STORAGE) {
                Output o = Output.makeStorage(output.getString("from"), output.getString("to"));
                // load the output fields
                List<HierarchicalConfiguration> outputFields = output.configurationsAt("fields.field");
                for (HierarchicalConfiguration outputField : outputFields) {
                    o.addFieldStorage(outputField.getString("source"), outputField.getString("target"));
                }
                pc.addOutput(o);
            } else if (ot == Output.OutputType.SSPEARLYALERT) {
                Output o = new Output();
                o.type = Output.OutputType.SSPEARLYALERT;
                o.from = output.getString("from");
                o.to = output.getString("to");

                List<HierarchicalConfiguration> outputFields = output.configurationsAt("fields.field");
                for (HierarchicalConfiguration outputField : outputFields) {
                    OutputField field = new OutputField(o.type, outputField.getString("source"),
                            outputField.getString("target"), null);
                    o.fields.add(field);
                }
                pc.addOutput(o);
            }
            // Add other types here as needed
        } catch (Exception e) {
            // skip this processor and warn
            logger.warn("Unable to load output (" + output.toString() + ") (skipping it): " + e);
        }
    }
    return pc;
}

From source file:org.onosproject.drivers.utilities.YangXmlUtils.java

private void addProperties(HierarchicalConfiguration cfg, HierarchicalConfiguration complete) {
    cfg.getKeys().forEachRemaining(key -> {
        String property = (String) cfg.getProperty(key);
        if (!property.equals("")) {
            complete.setProperty(key, property);
        }/* w ww. j  a  v  a 2 s  .c  o m*/
    });
}

From source file:org.onosproject.drivers.utilities.YangXmlUtils.java

private List<String> findPaths(HierarchicalConfiguration cfg, String path) {
    List<String> paths = new ArrayList<>();
    cfg.getKeys().forEachRemaining(key -> {
        if (key.equals(path)) {
            paths.add(key);/*from   w w w. j  av a  2s .  co m*/
        }
        if (key.contains("." + path)) {
            paths.add(key);
        }
    });
    return paths;
}

From source file:org.onosproject.drivers.utilities.YangXmlUtils.java

private String findPath(HierarchicalConfiguration cfg, String element) {
    Iterator<String> it = cfg.getKeys();
    while (it.hasNext()) {
        String key = it.next();/*from  ww w. j a v a  2s.co  m*/
        String[] arr = key.split("\\.");
        for (int i = 0; i < arr.length; i++) {
            if (element.equals(arr[i])) {
                String completeKey = "";
                for (int j = 0; j <= i; j++) {
                    completeKey = completeKey + "." + arr[j];
                }
                return completeKey.substring(1);
            }
        }
    }
    return null;
}

From source file:org.openmuc.extensions.core.configurator.Configurator.java

private void updateConfigurations(File configFile) throws ConfigurationException, IOException {

    if (configAdmin == null) {
        logger.error("cannot update configurations because OSGi ConfigurationAdmin service is not available");
        return;/*from  w w  w. j a  v  a2  s . co  m*/
    }

    XMLConfiguration config = new XMLConfiguration(configFile);

    List<HierarchicalConfiguration> componentConfigs = config.configurationsAt("component");

    for (HierarchicalConfiguration componentConfig : componentConfigs) {
        String componentName = componentConfig.getString("[@name]");

        if (componentName != null) {

            Configuration osgiConfig = configAdmin.getConfiguration(componentName, null);

            Iterator<String> keys = componentConfig.getKeys();
            Dictionary<String, String> properties = new Hashtable<String, String>();

            while (keys.hasNext()) {
                String key = keys.next();
                properties.put(key, componentConfig.getString(key, ""));
            }

            osgiConfig.update(properties);

        } else {
            logger.warn("found component configuration, but name attribute is missing");
        }
    } // foreach component config
}