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

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

Introduction

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

Prototype

Iterator getKeys(String prefix);

Source Link

Document

Get the list of the keys contained in the configuration that match the specified prefix.

Usage

From source file:org.seedstack.seed.core.utils.SeedConfigurationUtils.java

/**
 * Creates a Properties object from a commons configuration object using a specified property prefix.
 * @param configuration the commons configuration object
 * @param propertyPrefix the property prefix to search from.
 * @return the properties object containing the configuration subset derived from propertyPrefix.
 *//*from w w  w .j a v a  2 s  . c  o  m*/
public static Properties buildPropertiesFromConfiguration(Configuration configuration,
        final String propertyPrefix) {
    Properties properties = new Properties();
    Iterator<String> it = configuration.getKeys(propertyPrefix);
    while (it.hasNext()) {
        String name = it.next();
        properties.put(name.substring(propertyPrefix.length() + 1), configuration.getString(name));
    }

    return properties;
}

From source file:org.seedstack.seed.crypto.internal.KeyStoreConfigFactory.java

private void addAlias(KeyStoreConfig keyStoreConfig, Configuration ksConfiguration) {
    Iterator<String> aliasIterator = ksConfiguration.getKeys(ALIAS_PREFIX);
    while (aliasIterator.hasNext()) {
        String aliasKey = aliasIterator.next();
        String alias = getAliasName(aliasKey);
        String password = getPassword(ksConfiguration, aliasKey);

        if (alias != null && password != null) {
            keyStoreConfig.addAliasPassword(alias, password);
        }//from  w  ww. ja v a 2s .co m
    }
}

From source file:org.seedstack.seed.persistence.elasticsearch.internal.ElasticSearchPlugin.java

@Override
public InitState init(InitContext initContext) {
    ApplicationPlugin applicationPlugin = (ApplicationPlugin) initContext.pluginsRequired().iterator().next();
    Configuration elasticSearchConfiguration = applicationPlugin.getApplication().getConfiguration()
            .subset(ELASTIC_SEARCH_PLUGIN_CONFIGURATION_PREFIX);

    String[] elasticSearchClientNames = elasticSearchConfiguration.getStringArray("clients");
    if (elasticSearchClientNames != null && elasticSearchClientNames.length > 0) {
        for (String elasticSearchClientName : elasticSearchClientNames) {
            Configuration elasticSearchClientConfiguration = elasticSearchConfiguration
                    .subset("client." + elasticSearchClientName);

            Iterator<String> it = elasticSearchClientConfiguration.getKeys("property");
            Map<String, String> propertiesMap = new HashMap<String, String>();
            while (it.hasNext()) {
                String name = it.next();
                propertiesMap.put(name.substring(9), elasticSearchClientConfiguration.getString(name));
            }//ww  w.j  a va2 s  . co  m

            if (!propertiesMap.containsKey("path.home")) {
                try {
                    propertiesMap.put("path.home",
                            applicationPlugin.getApplication().getStorageLocation(
                                    ElasticSearchPlugin.ELASTIC_SEARCH_STORAGE_ROOT + elasticSearchClientName)
                                    .getAbsolutePath());
                } catch (IOException e) {
                    throw new PluginException("Unable to create ElasticSearch home directory", e);
                }
            }

            String[] hosts = elasticSearchClientConfiguration.getStringArray("hosts");
            if (hosts == null || hosts.length == 0) {
                LOGGER.info("Creating ElasticSearch client {} on its local node", elasticSearchClientName);

                Node node = buildLocalNode(buildSettings(propertiesMap));
                elasticSearchLocalNodes.put(elasticSearchClientName, node);
                elasticSearchClients.put(elasticSearchClientName, node.client());
            } else {
                LOGGER.info("Creating ElasticSearch client {} for remote instance at {}",
                        elasticSearchClientName, Arrays.toString(hosts));

                elasticSearchClients.put(elasticSearchClientName,
                        buildRemoteClient(buildSettings(propertiesMap), hosts));
            }
        }

    } else {
        LOGGER.info("No ElasticSearch client configured, ElasticSearch support disabled");
    }

    return InitState.INITIALIZED;
}

From source file:org.seedstack.seed.persistence.jdbc.internal.DataSourceDefinitionFactory.java

private DataSourceDefinition createDataSource(MetricsPlugin metricsPlugin,
        Map<String, Class<? extends DataSourceProvider>> dataSourceProviderClasses, String datasourceName,
        Configuration dataSourceConfig) {
    DataSourceDefinition dataSourceDefinition = new DataSourceDefinition(datasourceName);
    String dataSourceProviderName = dataSourceConfig.getString("provider",
            PlainDataSourceProvider.class.getSimpleName());
    Class<? extends DataSourceProvider> providerClass = dataSourceProviderClasses.get(dataSourceProviderName);
    if (providerClass == null) {
        throw new PluginException(
                "Could not find a matching DataSourceProvider for configured value: " + dataSourceProviderName);
    }/*from ww w  .ja v a2 s . c om*/
    DataSourceProvider provider;
    try {
        provider = providerClass.newInstance();
    } catch (Exception e) {
        throw new PluginException("Unable to load class " + dataSourceProviderName, e);
    }

    if (metricsPlugin != null) {
        provider.setHealthCheckRegistry(metricsPlugin.getHealthCheckRegistry());
        provider.setMetricRegistry(metricsPlugin.getMetricRegistry());
    }

    Iterator<String> it = dataSourceConfig.getKeys("property");
    Properties otherProperties = new Properties();
    while (it.hasNext()) {
        String name = it.next();
        otherProperties.put(name.substring(9), dataSourceConfig.getString(name));
    }

    dataSourceDefinition.setDataSource(provider.provide(dataSourceConfig.getString("driver"),
            dataSourceConfig.getString("url"), dataSourceConfig.getString("user"),
            dataSourceConfig.getString("password"), otherProperties));

    dataSourceDefinition.setDataSourceProvider(provider);
    return dataSourceDefinition;
}

From source file:org.seedstack.seed.persistence.jpa.internal.JpaPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Configuration jpaConfiguration = null;
    TransactionPlugin transactionPlugin = null;
    JdbcRegistry jdbcRegistry = null;/*from  w  ww  .  j a  va2  s  . co m*/
    Application application = null;

    for (Plugin plugin : initContext.pluginsRequired()) {
        if (plugin instanceof ApplicationPlugin) {
            application = ((ApplicationPlugin) plugin).getApplication();
            jpaConfiguration = application.getConfiguration().subset(JpaPlugin.JPA_PLUGIN_CONFIGURATION_PREFIX);
        } else if (plugin instanceof TransactionPlugin) {
            transactionPlugin = (TransactionPlugin) plugin;
        } else if (plugin instanceof JdbcPlugin) {
            jdbcRegistry = (JdbcRegistry) plugin;
        }
    }

    if (jpaConfiguration == null) {
        throw new PluginException("Unable to find application plugin");
    }
    if (transactionPlugin == null) {
        throw new PluginException("Unable to find transaction plugin");
    }

    if (jdbcRegistry == null) {
        throw new PluginException("Unable to find jdbc plugin");
    }

    String[] persistenceUnitNames = jpaConfiguration.getStringArray("units");

    if (persistenceUnitNames == null || persistenceUnitNames.length == 0) {
        LOGGER.info("No JPA persistence unit configured, JPA support disabled");
        return InitState.INITIALIZED;
    }

    for (String persistenceUnit : persistenceUnitNames) {
        Configuration persistenceUnitConfiguration = jpaConfiguration.subset("unit." + persistenceUnit);
        Iterator<String> it = persistenceUnitConfiguration.getKeys("property");

        Properties properties = new Properties();
        while (it.hasNext()) {
            String name = it.next();
            properties.put(name.substring(9), persistenceUnitConfiguration.getString(name));
        }

        EntityManagerFactory emf;
        if (persistenceUnitConfiguration.containsKey("datasource")) {
            Collection<Class<?>> scannedClasses = new ArrayList<Class<?>>();
            if (initContext.scannedClassesByAnnotationClass().get(Entity.class) != null) {
                scannedClasses.addAll(initContext.scannedClassesByAnnotationClass().get(Entity.class));
            }
            if (initContext.scannedClassesByAnnotationClass().get(Embeddable.class) != null) {
                scannedClasses.addAll(initContext.scannedClassesByAnnotationClass().get(Embeddable.class));
            }

            emf = confResolver.createEntityManagerFactory(persistenceUnit, properties,
                    persistenceUnitConfiguration, application, jdbcRegistry, scannedClasses);
        } else {
            emf = confResolver.createEntityManagerFactory(persistenceUnit, properties);
        }

        entityManagerFactories.put(persistenceUnit, emf);

        String exceptionHandler = persistenceUnitConfiguration.getString("exception-handler");
        if (exceptionHandler != null && !exceptionHandler.isEmpty()) {
            try {
                exceptionHandlerClasses.put(persistenceUnit,
                        (Class<? extends JpaExceptionHandler>) Class.forName(exceptionHandler));
            } catch (Exception e) {
                throw new PluginException("Unable to load class " + exceptionHandler, e);
            }
        }
    }

    if (persistenceUnitNames.length == 1) {
        JpaTransactionMetadataResolver.defaultJpaUnit = persistenceUnitNames[0];
    }

    transactionPlugin.registerTransactionHandler(JpaTransactionHandler.class);

    return InitState.INITIALIZED;
}

From source file:pl.edu.icm.coansys.commons.reparser.RegexpParser.java

@SuppressWarnings("unchecked")
private void loadConfiguration(String resource, String mainNode) {
    Iterator<String> iter = null;
    URL url = this.getClass().getClassLoader().getResource(resource);
    Configuration cfg;
    try {//from  w w w. ja  v  a  2  s  .co m
        cfg = new PropertiesConfiguration(url);
    } catch (ConfigurationException e) {
        throw new RuntimeException(e);
    }

    /* Collect all nodes */
    Map<String, NodeCategory> nodes = new HashMap<String, NodeCategory>();
    iter = (Iterator<String>) cfg.getKeys(NODE);
    while (iter.hasNext()) {
        String nodeId = iter.next();
        nodeId = nodeId.replaceFirst("^" + NODE + "\\.", "").replaceFirst("\\..*$", "");
        if (!nodes.containsKey(nodeId)) {
            nodes.put(nodeId, new NodeCategory());
        }
    }
    log.debug("Found nodes: " + nodes.keySet());
    if (!nodes.containsKey(mainNode)) {
        throw new IllegalArgumentException(
                "Main node not found in the configuration file.  The required node is: " + mainNode);
    }

    for (Map.Entry<String, NodeCategory> entry : nodes.entrySet()) {
        NodeCategory node = entry.getValue();
        String id = entry.getKey();
        node.setId(id);

        String regexp = cfg.getString(NODE + "." + id + "." + REGEXP);
        if (regexp != null) {
            node.setRegexp(regexp);
        }

        String name = cfg.getString(NODE + "." + id + "." + NAME);
        if (name != null) {
            node.setName(name);
        }

        iter = (Iterator<String>) cfg.getKeys(NODE + "." + id + "." + TEMPLATE);
        while (iter.hasNext()) {
            String type = iter.next();
            type = type.replaceFirst("^" + NODE + "\\." + id + "\\." + TEMPLATE + "\\.?+", "");
            List<String> templates = (List<String>) cfg.getList(NODE + "." + id + "." + TEMPLATE + "." + type);

            for (String template : templates) {
                Template t = new Template();
                t.setType(type);

                String[] fields = template.split("\\s+");
                for (String field : fields) {
                    NodeCategory n = nodes.get(field);
                    if (n == null) {
                        log.warn("Node '" + field + "' does not exist.  Referenced in template: " + template);
                    }
                    t.addField(n);
                }
                node.addTemplate(t);
            }
        }
    }
    mainNodeCategory = nodes.get(mainNode);
}

From source file:uk.org.openeyes.oink.facade.FacadeRoutingServiceFactory.java

private int getNumberOfMappingsGiven(Configuration facadeConfig) {
    if (facadeConfig.isEmpty()) {
        log.error("No mapping entries are in the program's config file. The facade will not map any requests!");
        return 0;
    }/*from   ww  w. j av a 2s  . co  m*/

    int numOfMappings = 0;

    while (facadeConfig.getKeys(++numOfMappings + ".").hasNext()) {
        numOfMappings++;
    }

    log.info("Found " + numOfMappings + " mapping entries");

    return numOfMappings;
}