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