List of usage examples for org.apache.commons.configuration Configuration subset
Configuration subset(String prefix);
From source file:org.seedstack.javamail.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.extractProps(config);//from w ww . j a v a 2s . 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.jcache.internal.CachePlugin.java
@Override @SuppressWarnings("unchecked") public InitState init(InitContext initContext) { Configuration cachesConf = initContext.dependency(ConfigurationProvider.class).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 {//w ww. j ava2 s . c o 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 jcache {} with autodetected provider", cacheName); caches.put(cacheName, Caching.getCachingProvider().getCacheManager().createCache(cacheName, cacheConfiguration)); } else { LOGGER.info("Configuring jcache {} with provider {}", cacheName, providerClassname); caches.put(cacheName, Caching.getCachingProvider(providerClassname).getCacheManager() .createCache(cacheName, cacheConfiguration)); } } } return InitState.INITIALIZED; }
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; }//www. ja va 2 s. c o m 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()); }/*from w ww . j ava2s.c o m*/ 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 a2 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.MqttPlugin.java
private void configureMqttClients() { String[] clients = mqttConfiguration.getStringArray(CONNECTION_CLIENTS); for (String clientName : clients) { LOGGER.debug("Configure new MqttClient [{}]", clientName); Configuration clientConfiguration = mqttConfiguration.subset(CONNECTION_CLIENT + "." + clientName); String uri = clientConfiguration.getString(BROKER_URI); String clientId = clientConfiguration.getString(MQTTCLIENT_ID); if (uri == null) { throw SeedException.createNew(MqttErrorCodes.MISCONFIGURED_MQTT_CLIENT).put("clients", clientName); }/*from w ww. j a va 2 s. c om*/ if (clientId == null) { clientId = MqttClient.generateClientId(); LOGGER.debug("Generate new client id [{}] for client name [{}]", clientId, clientName); } MqttClientDefinition def = new MqttClientDefinition(uri, clientId); Configuration reconnectConfiguration = clientConfiguration.subset(RECONNECTION_PROPS); if (!reconnectConfiguration.isEmpty()) { try { String reconnection = reconnectConfiguration.getString(RECONNECTION_MODE); if (reconnection != null) { MqttReconnectionMode mode = Enum.valueOf(MqttReconnectionMode.class, reconnection); def.setReconnectionMode(mode); } String inter = reconnectConfiguration.getString(RECONNECTION_INTERVAL); if (inter != null) { def.setReconnectionInterval(Integer.parseInt(inter)); } } catch (Exception e) { throw SeedException.createNew(MqttErrorCodes.MISCONFIGURED_MQTT_RECONNECTION).put("values", EnumSet.allOf(MqttReconnectionMode.class)); } } MqttConnectOptionsDefinition connectOptionsDefinition = new MqttConnectOptionsDefinition( clientConfiguration.subset(MQTT_OPTIONS)); def.setConnectOptionsDefinition(connectOptionsDefinition); // Check ThreadPool Configuration def.setPoolDefinition(new MqttPoolDefinition(clientConfiguration.subset(POOL_PROPS))); mqttClientDefinitions.put(clientName, def); } }
From source file:org.seedstack.mqtt.internal.MqttPluginTest.java
/** * Test method for// ww w . j a v a2 s. c o 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/* w w w.j a va2 s. c om*/ * {@link org.seedstack.mqtt.internal.MqttPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)} * . */ @Test(expected = SeedException.class) public void testInitWithListenerWithoutClient(@Mocked final Configuration configuration) { final Collection<Class<?>> classes = new ArrayList<Class<?>>(); classes.add(Listener1.class); MqttPlugin plugin = new MqttPlugin(); new Expectations() { { application.getConfiguration(); result = configuration; application.substituteWithConfiguration(anyString); result = null; configuration.subset(anyString); result = configuration; specs.get(any); result = classes; } }; plugin.init(initContext); }
From source file:org.seedstack.mqtt.internal.MqttPluginTest.java
/** * Test method for// ww w . ja v a2s . co m * {@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//w w w. j a v a2 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()); }