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

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

Introduction

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

Prototype

Configuration subset(String prefix);

Source Link

Document

Return a decorator Configuration containing every key from the current Configuration that starts with the specified prefix.

Usage

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

private Configuration configurationForKey(Configuration configuration, String keyName) {
    Configuration keyConfiguration = configuration.subset("key." + keyName);
    if (keyConfiguration.isEmpty()) {
        throw new RuntimeException("Key configuration [" + keyName + "] is not defined !");
    }/*from   w ww  . ja v a 2s .c  om*/

    return keyConfiguration;
}

From source file:org.seedstack.seed.mail.internal.PropertyFileSessionConfigurerTest.java

@Before
public void setUp() throws Exception {
    Props props = new Props();
    Map<String, Object> config = new HashMap<String, Object>();
    props.load(PropertyFileSessionConfigurerTest.class.getResourceAsStream("/test.props"));
    props.extractBaseProps(config);/*from  w  ww  .j a v  a  2  s  .c om*/
    Configuration configuration = new MapConfiguration(config);
    assertThat(config).isNotEmpty();
    assertThat(configuration).isNotNull();

    SessionConfigurer configurer = new PropertyFileSessionConfigurer(
            configuration.subset(JavaMailPlugin.CONFIGURATION_PREFIX));
    this.sessionsConfig = configurer.doConfigure();
}

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));
            }/* w  w  w.j  a  v a  2s .  c  o 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.jpa.internal.JpaPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Configuration jpaConfiguration = null;
    TransactionPlugin transactionPlugin = null;
    JdbcRegistry jdbcRegistry = null;/*from   ww  w  .  j ava 2  s.c  o 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:org.seedstack.seed.persistence.tinkerpop.internal.TinkerpopPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Configuration tinkerpopConfiguration = null;
    TransactionPlugin transactionPlugin = null;
    for (Plugin plugin : initContext.pluginsRequired()) {
        if (plugin instanceof ApplicationPlugin) {
            tinkerpopConfiguration = ((ApplicationPlugin) plugin).getApplication().getConfiguration()
                    .subset(TinkerpopPlugin.TINKERPOP_PLUGIN_CONFIGURATION_PREFIX);
        } else if (plugin instanceof TransactionPlugin) {
            transactionPlugin = ((TransactionPlugin) plugin);
        }/*from   www .  ja va 2s .  c o m*/
    }

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

    String[] graphNames = tinkerpopConfiguration.getStringArray("graphs");
    if (graphNames != null) {
        for (String graphName : graphNames) {
            Configuration graphConfiguration = tinkerpopConfiguration.subset("graph." + graphName);

            String implementation = graphConfiguration.getString("implementation");
            if (implementation != null && !implementation.isEmpty()) {
                try {
                    this.graphs.put(graphName, (Graph) Class.forName(implementation).newInstance());
                } catch (Exception e) {
                    throw new PluginException("Unable to load class " + implementation, e);
                }
            } else {
                throw new IllegalArgumentException(
                        "The implementation is not specified for graph " + graphName);
            }

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

        transactionPlugin.registerTransactionHandler(GraphTransactionHandler.class);
    } else {
        LOGGER.info("No Tinkerpop graph configured, Tinkerpop support disabled");
    }

    return InitState.INITIALIZED;
}

From source file:org.seedstack.seed.security.internal.authorization.ConfigurationRolePermissionResolver.java

/**
 * Reads the configuration to init role permission mappings
 * /*from w  ww .ja va2s .c o  m*/
 * @param securityConfiguration
 *            configuration of security
 */
@Inject
public void readConfiguration(@Named("seed-security-config") Configuration securityConfiguration) {
    Configuration permissionsConfiguration = securityConfiguration.subset(PERMISSIONS_SECTION_NAME);
    if (permissionsConfiguration.isEmpty()) {
        LOGGER.warn("{} defined, but its configuration is empty.", getClass().getSimpleName());
        return;
    }
    roles.clear();
    processPermissionsConfiguration(permissionsConfiguration);
}

From source file:org.seedstack.seed.security.internal.realms.ConfigurationRealm.java

/**
 * Reads the configuration props to initialize authorized users and their rights.
 * /*from ww w . j av a  2  s .  c  o m*/
 * @param securityConfiguration the configuration concerning security
 */
@Inject
public void readConfiguration(@Named("seed-security-config") Configuration securityConfiguration) {
    Configuration usersConfig = securityConfiguration.subset(USER_SECTION_NAME);
    if (usersConfig.isEmpty()) {
        LOGGER.warn("{} defined, but the configuration defines no user", getClass().getSimpleName());
        return;
    }
    users.clear();
    processUsersConfiguration(usersConfig);
}

From source file:org.seedstack.seed.transaction.internal.TransactionPluginTest.java

private InitContext mockInitContext(Class<?> transactionManagerClass, String transactionHandlerClass) {
    InitContext initContext = mock(InitContext.class);
    Configuration configuration = mock(Configuration.class);
    ApplicationPlugin applicationPlugin = mock(ApplicationPlugin.class);
    Application application = mock(Application.class);
    when(applicationPlugin.getApplication()).thenReturn(application);
    when(application.getConfiguration()).thenReturn(configuration);
    when(configuration.subset(TransactionPlugin.TRANSACTION_PLUGIN_CONFIGURATION_PREFIX))
            .thenReturn(configuration);/*  ww w .  j av a  2 s .c  om*/
    if (transactionManagerClass != null) {
        when(configuration.subset(TransactionPlugin.TRANSACTION_PLUGIN_CONFIGURATION_PREFIX)
                .getString("manager")).thenReturn(transactionManagerClass.getName());
    }
    if (transactionHandlerClass != null) {
        when(configuration.subset(TransactionPlugin.TRANSACTION_PLUGIN_CONFIGURATION_PREFIX)
                .getString("default-handler")).thenReturn(transactionHandlerClass);
    }
    Map<Class<?>, Collection<Class<?>>> mapImplements = new HashMap<Class<?>, Collection<Class<?>>>();
    Collection<Class<?>> implementsTransactionHandlerClasses = new ArrayList<Class<?>>();
    implementsTransactionHandlerClasses.add(TransactionHandlerTestImpl.class);
    mapImplements.put(TransactionHandler.class, implementsTransactionHandlerClasses);
    Collection<Class<?>> implementsTransactionMetadataResolverClasses = new ArrayList<Class<?>>();
    implementsTransactionMetadataResolverClasses.add(TransactionMetadataResolverTestImpl.class);
    mapImplements.put(TransactionMetadataResolver.class, implementsTransactionMetadataResolverClasses);
    when(initContext.scannedSubTypesByParentClass()).thenReturn(mapImplements);
    Collection plugins = mock(Collection.class);
    Iterator iterator = mock(Iterator.class);
    when(initContext.pluginsRequired()).thenReturn(plugins);
    when(plugins.iterator()).thenReturn(iterator);
    when((ApplicationPlugin) iterator.next()).thenReturn(applicationPlugin);
    Assertions.assertThat(initContext).isNotNull();
    Assertions.assertThat(applicationPlugin).isNotNull();
    Assertions.assertThat(configuration).isNotNull();
    return initContext;
}

From source file:org.seedstack.seed.web.internal.UndertowPlugin.java

@Override
public InitState init(InitContext initContext) {
    Configuration configuration = null;
    SslConfig sslConfig = null;//from w ww.  j av  a2  s.c  o m
    SSLContext sslContext = null;
    for (Plugin plugin : initContext.pluginsRequired()) {
        if (plugin instanceof ApplicationPlugin) {
            configuration = ((ApplicationPlugin) plugin).getApplication().getConfiguration();
        } else if (plugin instanceof CryptoPlugin) {
            CryptoPlugin cryptoPlugin = (CryptoPlugin) plugin;
            sslConfig = cryptoPlugin.getSslConfig();
            sslContext = cryptoPlugin.getSslContext();
        } else {
            throw SeedException.createNew(UndertowErrorCode.UNEXPECTED_EXCEPTION);
        }
    }
    if (configuration == null) {
        throw SeedException.createNew(UndertowErrorCode.UNEXPECTED_EXCEPTION);
    }

    serverConfig = new ServerConfigFactory().create(configuration.subset(UNDERTOW_PLUGIN_PREFIX), sslConfig,
            sslContext);

    return InitState.INITIALIZED;
}

From source file:org.seedstack.seed.ws.internal.jms.SoapJmsUri.java

Configuration getConfiguration(Configuration wsConfiguration) {
    if (endpointName != null) {
        return wsConfiguration.subset(String.format("endpoint.%s.jms", endpointName));
    } else {/* w  w w .j  ava2s  .  com*/
        return new BaseConfiguration();
    }
}