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

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

Introduction

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

Prototype

String[] getStringArray(String key);

Source Link

Document

Get an array of strings associated with the given configuration key.

Usage

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

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    TransactionPlugin transactionPlugin = initContext.dependency(TransactionPlugin.class);
    JdbcRegistry jdbcRegistry = initContext.dependency(JdbcRegistry.class);
    Application application = initContext.dependency(ApplicationPlugin.class).getApplication();
    Configuration jpaConfiguration = application.getConfiguration()
            .subset(JpaPlugin.JPA_PLUGIN_CONFIGURATION_PREFIX);

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

    if (persistenceUnitNames == null || persistenceUnitNames.length == 0) {
        LOGGER.info("No JPA persistence unit configured, JPA support disabled");
        return InitState.INITIALIZED;
    }/*w  ww .ja  v a  2s  . c  om*/

    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.jpa.internal.JpaPluginTest.java

public Configuration mockConfiguration(String itemExceptionHandlerName) {
    Configuration configuration = mock(Configuration.class);
    Assertions.assertThat(configuration).isNotNull();
    when(configuration.subset(JpaPlugin.JPA_PLUGIN_CONFIGURATION_PREFIX)).thenReturn(configuration);
    when(configuration.getStringArray("units")).thenReturn(new String[] { "hsql-in-memory" });
    when(configuration.subset("unit.hsql-in-memory")).thenReturn(configuration);
    Map<String, String> properties = getProperties();
    when(configuration.getKeys("property")).thenReturn(properties.keySet().iterator());
    for (Entry<String, String> entry : properties.entrySet()) {
        when(configuration.getString(entry.getKey())).thenReturn(entry.getValue());
    }/* www. j a  v  a2  s .c  om*/
    when(configuration.getString("exception-handler")).thenReturn(itemExceptionHandlerName);
    return configuration;
}

From source file:org.seedstack.ldap.internal.LdapPlugin.java

@Override
public InitState init(InitContext initContext) {
    Configuration configuration = initContext.dependency(ConfigurationProvider.class).getConfiguration();
    String[] realms = configuration.getStringArray(CHOSEN_REALMS);
    startPlugin = ArrayUtils.contains(realms, LdapRealm.class.getSimpleName());

    if (startPlugin) {
        Configuration ldapConfiguration = configuration.subset(LDAP_CONFIG_PREFIX);
        // Initialize ldap pool connection
        String host = ldapConfiguration.getString(SERVER_HOST_PROP);
        if (host == null) {
            throw SeedException.createNew(LdapErrorCodes.NO_HOST_DEFINED).put("hostPropName",
                    LDAP_CONFIG_PREFIX + "." + SERVER_HOST_PROP);
        }//from  w w w.j a  v a  2 s .c o  m
        int port = ldapConfiguration.getInt(SERVER_PORT_PROP, DEFAULT_SERVER_PORT);
        int numConnections = ldapConfiguration.getInt(NUM_CONNECTIONS_PROP, DEFAULT_NUM_CONNECTIONS);
        String accountDn = StringUtils.join(ldapConfiguration.getStringArray(ACCOUNT_DN_PROP), ',');
        LDAPConnection connection;
        try {
            connection = new LDAPConnection(host, port, accountDn,
                    ldapConfiguration.getString(ACCOUNT_PASSWORD_PROP));
            ldapConnectionPool = new LDAPConnectionPool(connection, numConnections);
        } catch (LDAPException e) {
            switch (e.getResultCode().intValue()) {
            case ResultCode.NO_SUCH_OBJECT_INT_VALUE:
                throw SeedException.wrap(e, LdapErrorCodes.NO_SUCH_ACCOUNT).put("account", accountDn)
                        .put("propName", LDAP_CONFIG_PREFIX + "." + ACCOUNT_DN_PROP);
            case ResultCode.INVALID_CREDENTIALS_INT_VALUE:
                throw SeedException.wrap(e, LdapErrorCodes.INVALID_CREDENTIALS).put("account", accountDn)
                        .put("passwordPropName", LDAP_CONFIG_PREFIX + "." + ACCOUNT_PASSWORD_PROP)
                        .put("userPropName", LDAP_CONFIG_PREFIX + "." + ACCOUNT_DN_PROP);
            case ResultCode.CONNECT_ERROR_INT_VALUE:
                throw SeedException.wrap(e, LdapErrorCodes.CONNECT_ERROR).put("host", host).put("port", port)
                        .put("hostPropName", LDAP_CONFIG_PREFIX + "." + SERVER_HOST_PROP)
                        .put("portPropName", LDAP_CONFIG_PREFIX + "." + SERVER_PORT_PROP);
            default:
                throw SeedException.wrap(e, LdapErrorCodes.LDAP_ERROR).put("message", e.getMessage())
                        .put("host", host).put("port", port).put("account", accountDn);
            }
        }
    }
    return InitState.INITIALIZED;
}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for/*from   w  w w  .  j av  a  2s. co  m*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test(expected = SeedException.class)
public void testInitWithoutMqttURI(@Mocked final Configuration configuration) {
    final String[] clients = { "client" };
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;
        }
    };

    plugin.init(initContext);

}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for//from w  w  w .  j  av a 2s. c om
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test(expected = SeedException.class)
public void testInitWithReconnectionModeError(@Mocked final Configuration configuration) {
    final String[] clients = { "clientOK1" };
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(anyString);
            result = "xx";
        }
    };

    plugin.init(initContext);

}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for/*from  ww  w  . j a va 2 s . c  o  m*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithoutReconnectionConfiguration(@Mocked final Configuration configuration) {
    final String clientName = "clientOK1";
    final String[] clients = { clientName };
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    MqttPlugin plugin = new MqttPlugin();
    final String defaultConfigString = "xx";
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(MQTT_PLUGIN_CONFIGURATION_PREFIX);
            result = configuration;

            configuration.isEmpty();
            result = true;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(anyString);
            result = defaultConfigString;

            specs.get(any);
            result = classes;

        }
    };

    new MockUp<MqttClient>() {
        @Mock
        public void $init(String serverURI, String clientId) {
        }

    };

    plugin.init(initContext);

    MqttClientDefinition def = new MqttClientDefinition(defaultConfigString, defaultConfigString);
    ConcurrentHashMap<String, MqttClientDefinition> defs = Deencapsulation.getField(plugin,
            "mqttClientDefinitions");
    Assertions.assertThat(defs).isNotEmpty();
    MqttClientDefinition clientDef = defs.get(clientName);
    Assertions.assertThat(clientDef.getReconnectionInterval()).isEqualTo(def.getReconnectionInterval());
    Assertions.assertThat(clientDef.getReconnectionMode()).isEqualTo(def.getReconnectionMode());
}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for//ww  w  .j  av  a 2s.c o m
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithDefaultReconnection(@Mocked final Configuration configuration) {
    final String clientName = "clientOK1";
    final String[] clients = { clientName };
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    MqttPlugin plugin = new MqttPlugin();
    final String defaultConfigString = "xx";
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(MQTT_PLUGIN_CONFIGURATION_PREFIX);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(BROKER_URI);
            result = defaultConfigString;

            specs.get(any);
            result = classes;

        }
    };

    new MockUp<MqttClient>() {
        @Mock
        public void $init(String serverURI, String clientId) throws MqttException {
        }

    };

    plugin.init(initContext);

    MqttClientDefinition def = new MqttClientDefinition(defaultConfigString, defaultConfigString);
    ConcurrentHashMap<String, MqttClientDefinition> defs = Deencapsulation.getField(plugin,
            "mqttClientDefinitions");
    Assertions.assertThat(defs).isNotEmpty();
    MqttClientDefinition clientDef = defs.get(clientName);
    Assertions.assertThat(clientDef.getReconnectionInterval()).isEqualTo(def.getReconnectionInterval());
    Assertions.assertThat(clientDef.getReconnectionMode()).isEqualTo(def.getReconnectionMode());
}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for/*from w  w w. j  av  a 2 s.  c om*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithCustomClient(@Mocked final Configuration configuration) {
    final String clientName = "clientOK1";
    final String defaultString = "xx";
    final String[] clients = { clientName };
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(BROKER_URI);
            result = defaultString;
            configuration.getString(RECONNECTION_MODE);
            result = "NONE";
            configuration.getString(RECONNECTION_INTERVAL);
            result = "12";

            specs.get(any);
            result = classes;

        }
    };

    new MockUp<MqttClient>() {
        @Mock
        public void $init(String serverURI, String clientId) throws MqttException {
        }

    };

    plugin.init(initContext);

    ConcurrentHashMap<String, MqttClientDefinition> defs = Deencapsulation.getField(plugin,
            "mqttClientDefinitions");
    Assertions.assertThat(defs).isNotEmpty();
    MqttClientDefinition clientDef = defs.get(clientName);
    Assertions.assertThat(clientDef.getReconnectionInterval()).isEqualTo(12);
    Assertions.assertThat(clientDef.getReconnectionMode()).isEqualTo(MqttReconnectionMode.NONE);

}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for/* w ww  .j  av a 2s.c o m*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test(expected = SeedException.class)
public void testInitWithListenerMisconfigured(@Mocked final Configuration configuration) {
    final String clientName = "client1";
    final String[] clients = { "clientOK1" };
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    classes.add(ListenerWithError.class);
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            application.substituteWithConfiguration(clientName);
            result = clientName;

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(BROKER_URI);
            result = "xx";

            specs.get(any);
            result = classes;

        }
    };

    plugin.init(initContext);

}

From source file:org.seedstack.mqtt.internal.MqttPluginTest.java

/**
 * Test method for/*  w ww .j  a v a2 s  . co  m*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithListener(@Mocked final Configuration configuration) {
    final String clientName = "clientOK1";
    final String[] clients = { clientName };
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    classes.add(Listener1.class);
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            application.substituteWithConfiguration(clientName);
            result = clientName;

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            configuration.getString(BROKER_URI);
            result = "xx";

            specs.get(any);
            result = classes;
            result = new ArrayList<Class<?>>();

            application.substituteWithConfiguration(anyString);
            result = 0;
        }
    };

    new MockUp<MqttClient>() {
        @Mock
        public void $init(String serverURI, String clientId) throws MqttException {
        }

    };

    plugin.init(initContext);

    ConcurrentHashMap<String, MqttClientDefinition> defs = Deencapsulation.getField(plugin,
            "mqttClientDefinitions");
    Assertions.assertThat(defs).isNotEmpty();
    MqttClientDefinition clientDef = defs.get(clientName);
    Assertions.assertThat(clientDef.getListenerDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getListenerDefinition().getListenerClass()).isEqualTo(Listener1.class);
}