List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getKeys
public Iterator getKeys()
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 }