List of usage examples for org.apache.commons.configuration Configuration getStringArray
String[] getStringArray(String key);
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; }