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.mqtt.internal.MqttPluginTest.java

/**
 * Test method for//  www . ja  v  a  2s  .  c o m
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithPublisher(@Mocked final Configuration configuration) {
    final String clientName = "clientOK1";
    final String[] clients = { clientName };
    final Collection<Class<?>> listenerClasses = new ArrayList<Class<?>>();
    final Collection<Class<?>> rejectedHandlers = new ArrayList<Class<?>>();
    final Collection<Class<?>> classes = new ArrayList<Class<?>>();
    classes.add(PublishHandler.class);
    MqttPlugin plugin = new MqttPlugin();
    new Expectations() {
        {
            application.getConfiguration();
            result = configuration;

            configuration.subset(anyString);
            result = configuration;

            application.substituteWithConfiguration(clientName);
            result = clientName;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

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

            specs.get(any);
            result = listenerClasses;
            result = classes;
            result = rejectedHandlers;

        }
    };

    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("clientOK1");
    Assertions.assertThat(clientDef.getPublisherDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getPublisherDefinition().getPublisherClass())
            .isEqualTo(PublishHandler.class);

}

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

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

            configuration.subset(anyString);
            result = configuration;

            application.substituteWithConfiguration(clientName);
            result = clientName2;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

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

            specs.get(any);
            result = listenerClasses;
            result = classes;
            result = rejectedHandlers;

        }
    };

    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("clientOK1");
    Assertions.assertThat(clientDef.getPublisherDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getPublisherDefinition().getPublisherClass())
            .isEqualTo(PublishHandler.class);

}

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

/**
 * Test method for/*from  w ww .  jav a2  s  .com*/
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 * 
 * @throws Exception
 *             if an error occurred
 */
@Test(expected = SeedException.class)
public void testRegisterPb(@Mocked final Configuration configuration) throws Exception {
    final String[] clients = { "clientOK1" };
    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 = "xx";

            specs.get(any);
            result = classes;

        }
    };

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

    };
    plugin.init(initContext);

    new Verifications() {
        {
            new MqttClient(anyString, anyString);
        }
    };
}

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

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

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            application.substituteWithConfiguration(clientName);
            result = clientName;

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

            specs.get(any);
            result = listenerClasses;
            result = publisherClasses;
            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.getPoolDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getPoolDefinition().getRejectHandlerClass())
            .isEqualTo(MyRejectHandler.class);
}

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

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

            configuration.subset(anyString);
            result = configuration;

            configuration.getStringArray(CONNECTION_CLIENTS);
            result = clients;

            application.substituteWithConfiguration(clientName);
            result = clientName2;

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

            specs.get(any);
            result = listenerClasses;
            result = publisherClasses;
            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.getPoolDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getPoolDefinition().getRejectHandlerClass())
            .isEqualTo(MyRejectHandler.class);
}

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

/**
 * Test method for// w ww . ja  va2  s  .com
 * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}
 * .
 */
@Test
public void testInitWithPoolConfiguration(@Mocked final Configuration configuration,
        @SuppressWarnings("rawtypes") @Mocked final ArrayBlockingQueue queue,
        @Mocked final ThreadPoolExecutor threadPoolExecutor) {
    final String clientName = "clientOK1";
    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 = "xx";

            configuration.getBoolean(POOL_ENABLED, Boolean.TRUE);
            result = Boolean.TRUE;

            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.getPoolDefinition()).isNotNull();
    Assertions.assertThat(clientDef.getPoolDefinition().getThreadPoolExecutor()).isNotNull();
}

From source file:org.seedstack.neo4j.internal.Neo4jPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Application application = initContext.dependency(ApplicationPlugin.class).getApplication();
    TransactionPlugin transactionPlugin = initContext.dependency(TransactionPlugin.class);
    Configuration neo4jConfiguration = application.getConfiguration().subset(Neo4jPlugin.CONFIGURATION_PREFIX);

    String[] graphDatabaseNames = neo4jConfiguration.getStringArray("databases");

    if (graphDatabaseNames == null || graphDatabaseNames.length == 0) {
        LOGGER.info("No Neo4j graph database configured, Neo4j support disabled");
        return InitState.INITIALIZED;
    }/*from  www . jav a2 s. co  m*/
    for (String graphDatabaseName : graphDatabaseNames) {
        Configuration graphDatabaseConfiguration = neo4jConfiguration.subset("database." + graphDatabaseName);

        String exceptionHandler = graphDatabaseConfiguration.getString("exception-handler");
        if (exceptionHandler != null && !exceptionHandler.isEmpty()) {
            try {
                exceptionHandlerClasses.put(graphDatabaseName,
                        (Class<? extends Neo4jExceptionHandler>) Class.forName(exceptionHandler));
            } catch (Exception e) {
                throw SeedException.wrap(e, Neo4jErrorCodes.UNABLE_TO_LOAD_EXCEPTION_HANDLER_CLASS)
                        .put(EXCEPTION_DB_NAME, graphDatabaseName)
                        .put("exceptionHandlerClass", exceptionHandler);
            }
        }

        String dbType = graphDatabaseConfiguration.getString("type", "embedded");
        if ("embedded".equals(dbType)) {
            graphDatabaseServices.put(graphDatabaseName,
                    createEmbeddedDatabase(graphDatabaseName, graphDatabaseConfiguration, application));
        } else {
            throw SeedException.createNew(Neo4jErrorCodes.UNKNOWN_DATABASE_TYPE)
                    .put(EXCEPTION_DB_NAME, graphDatabaseName).put("dbType", dbType);
        }
    }

    if (graphDatabaseNames.length == 1) {
        Neo4jTransactionMetadataResolver.defaultDb = graphDatabaseNames[0];
    }

    transactionPlugin.registerTransactionHandler(Neo4jTransactionHandler.class);

    return InitState.INITIALIZED;
}

From source file:org.seedstack.redis.internal.RedisPlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    Application application = initContext.dependency(ApplicationPlugin.class).getApplication();
    TransactionPlugin transactionPlugin = initContext.dependency(TransactionPlugin.class);
    Configuration redisConfiguration = application.getConfiguration()
            .subset(RedisPlugin.REDIS_PLUGIN_CONFIGURATION_PREFIX);

    String[] clients = redisConfiguration.getStringArray("clients");

    if (clients == null || clients.length == 0) {
        LOGGER.info("No Redis client configured, Redis support disabled");
        return InitState.INITIALIZED;
    }/*www  . j av  a 2 s.co m*/

    for (String client : clients) {
        Configuration clientConfiguration = redisConfiguration.subset("client." + client);

        String exceptionHandler = clientConfiguration.getString("exception-handler");
        if (exceptionHandler != null && !exceptionHandler.isEmpty()) {
            try {
                exceptionHandlerClasses.put(client,
                        (Class<? extends RedisExceptionHandler>) Class.forName(exceptionHandler));
            } catch (Exception e) {
                throw SeedException.wrap(e, RedisErrorCodes.UNABLE_TO_LOAD_EXCEPTION_HANDLER_CLASS)
                        .put("clientName", client).put("exceptionHandlerClass", exceptionHandler);
            }
        }

        try {
            jedisPools.put(client, createJedisPool(clientConfiguration));
        } catch (Exception e) {
            throw SeedException.wrap(e, RedisErrorCodes.UNABLE_TO_CREATE_CLIENT).put("clientName", client);
        }
    }

    if (clients.length == 1) {
        RedisTransactionMetadataResolver.defaultClient = clients[0];
    }

    transactionPlugin.registerTransactionHandler(RedisTransactionHandler.class);
    transactionPlugin.registerTransactionHandler(RedisPipelinedTransactionHandler.class);

    return InitState.INITIALIZED;
}

From source file:org.seedstack.seed.cache.internal.CachePlugin.java

@Override
@SuppressWarnings("unchecked")
public InitState init(InitContext initContext) {
    ApplicationPlugin confPlugin = (ApplicationPlugin) initContext.pluginsRequired().iterator().next();
    Configuration cachesConf = confPlugin.getApplication().getConfiguration()
            .subset(CachePlugin.CACHE_PLUGIN_CONFIGURATION_PREFIX);

    String defaultProvider = cachesConf.getString("default-provider");
    String[] cacheNames = cachesConf.getStringArray("caches");

    if (defaultProvider != null) {
        LOGGER.info("Caching default provider is configured to {}", defaultProvider);
    } else {// www .  j  a va  2 s  . co m
        LOGGER.info("Caching default provider is not specified and will be autodetected from classpath");
    }

    if (cacheNames != null) {
        for (String cacheName : cacheNames) {
            Configuration cacheConf = cachesConf.subset("cache." + cacheName);
            MutableConfiguration cacheConfiguration = new MutableConfiguration();

            // Expiry policy
            String expiryPolicyFactory = cacheConf.getString("expiry-policy-factory");
            String expiryPolicy = cacheConf.getString("expiry-policy");
            Long expiryDuration = cacheConf.getLong("expiry-duration", 900);

            if (expiryPolicyFactory != null) {
                try {
                    cacheConfiguration
                            .setExpiryPolicyFactory((Factory) Class.forName(expiryPolicyFactory).newInstance());
                } catch (Exception e) {
                    throw new PluginException(
                            "Unable to instantiate custom expiry policy factory " + expiryPolicyFactory, e);
                }
            } else if (expiryPolicy != null && !expiryPolicy.isEmpty()) {
                try {
                    cacheConfiguration
                            .setExpiryPolicyFactory(BuiltinExpiryPolicy.valueOf(expiryPolicy.toUpperCase())
                                    .getFactory(new Duration(TimeUnit.SECONDS, expiryDuration)));
                } catch (Exception e) {
                    throw new PluginException("Unable to instantiate built-in expiry policy " + expiryPolicy,
                            e);
                }
            }

            String providerClassname = cacheConf.getString("provider", defaultProvider);
            if (providerClassname == null) {
                LOGGER.info("Configuring cache {} with autodetected provider", cacheName);
                caches.put(cacheName, Caching.getCachingProvider().getCacheManager().createCache(cacheName,
                        cacheConfiguration));
            } else {
                LOGGER.info("Configuring cache {} with provider {}", cacheName, providerClassname);
                caches.put(cacheName, Caching.getCachingProvider(providerClassname).getCacheManager()
                        .createCache(cacheName, cacheConfiguration));
            }
        }
    }

    return InitState.INITIALIZED;
}

From source file:org.seedstack.seed.core.internal.jndi.JndiPlugin.java

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

    // Default JNDI context
    try {/*from w  ww.  j  av  a 2 s. c  o m*/
        this.defaultJndiContext = new InitialContext();
        LOGGER.info("Default JNDI context has been configured");
    } catch (NamingException e) {
        throw SeedException.wrap(e, JndiErrorCode.UNABLE_TO_CONFIGURE_DEFAULT_JNDI_CONTEXT);
    }

    // Additional JNDI contexts
    String[] jndiContextNames = configuration.getStringArray("additional-jndi-contexts");
    if (jndiContextNames != null) {
        for (String jndiContextName : jndiContextNames) {
            String propertiesResource = configuration.getString("additional-jndi-context." + jndiContextName);
            Properties properties = new Properties();
            InputStream propertiesResourceStream = this.getClass().getResourceAsStream(propertiesResource);

            if (propertiesResourceStream != null) {
                try {
                    properties.load(propertiesResourceStream);
                    this.additionalJndiContexts.put(jndiContextName, new InitialContext(properties));
                    LOGGER.info("JNDI context " + jndiContextName + " has been configured from "
                            + propertiesResource);
                } catch (Exception e) {
                    throw SeedException.wrap(e, JndiErrorCode.UNABLE_TO_CONFIGURE_ADDITIONAL_JNDI_CONTEXT)
                            .put("context", jndiContextName);
                }

                try {
                    propertiesResourceStream.close();
                } catch (IOException e) {
                    LOGGER.warn("Unable to close JNDI properties resource " + propertiesResource, e);
                }
            } else {
                throw SeedException.createNew(JndiErrorCode.MISSING_JNDI_PROPERTIES)
                        .put("context", jndiContextName)
                        .put("property", "org.seedstack.seed.core.additional-jndi-context." + jndiContextName
                                + " property");
            }
        }
    }
    return InitState.INITIALIZED;
}