List of usage examples for org.apache.commons.configuration Configuration getStringArray
String[] getStringArray(String key);
From source file:org.seedstack.seed.core.internal.jndi.JndiPluginTest.java
private InitContext mockInitContextForJndiPlugin(String nameTolookup) { InitContext initContext = mock(InitContext.class); Configuration configuration = mock(Configuration.class); when(configuration.subset(CorePlugin.CORE_PLUGIN_PREFIX)).thenReturn(configuration); when(configuration.getStringArray("additional-jndi-contexts")).thenReturn(new String[] { nameTolookup }); when(configuration.getString("additional-jndi-context.test1")).thenReturn("/jndi-test1.properties"); ApplicationPlugin applicationPlugin = mock(ApplicationPlugin.class); Application application = mock(Application.class); when(applicationPlugin.getApplication()).thenReturn(application); when(application.getConfiguration()).thenReturn(configuration); Collection plugins = mock(Collection.class); Iterator iterator = mock(Iterator.class); when(initContext.pluginsRequired()).thenReturn(plugins); when(initContext.pluginsRequired().iterator()).thenReturn(iterator); when((ApplicationPlugin) initContext.pluginsRequired().iterator().next()).thenReturn(applicationPlugin); Assertions.assertThat(initContext).isNotNull(); Assertions.assertThat(applicationPlugin).isNotNull(); Assertions.assertThat(configuration).isNotNull(); return initContext; }
From source file:org.seedstack.seed.crypto.internal.CryptoPlugin.java
@Override public InitState init(InitContext initContext) { for (Plugin plugin : initContext.pluginsRequired()) { if (plugin instanceof ApplicationPlugin) { Configuration cryptoConfiguration = ((ApplicationPlugin) plugin).getApplication().getConfiguration() .subset(CRYPTO_PLUGIN_PREFIX); EncryptionServiceFactory encryptionServiceFactory = new EncryptionServiceFactory(); // Load configured keys String[] keys = cryptoConfiguration.getStringArray("keys"); int keyCount = 0; if (keys != null) { keyCount = keys.length;//from w w w . ja va 2s . c o m for (String key : keys) { LOGGER.trace("Registering cryptographic key {}", key); encryptionServices.put(key, encryptionServiceFactory.createEncryptionService( encryptionServiceFactory.createKeyStoreDefinition(cryptoConfiguration, key), encryptionServiceFactory.createCertificateDefinition(cryptoConfiguration, key))); } } // Load the master key LOGGER.trace("Registering master cryptographic key"); encryptionServices.put(MASTER_KEY_NAME, encryptionServiceFactory.createEncryptionService( encryptionServiceFactory.createKeyStoreDefinition(cryptoConfiguration, MASTER_KEY_NAME), encryptionServiceFactory.createCertificateDefinition(cryptoConfiguration, MASTER_KEY_NAME))); LOGGER.debug("Registered {} cryptographic key(s)", keyCount + 1); } } return InitState.INITIALIZED; }
From source file:org.seedstack.seed.crypto.internal.CryptoPluginTest.java
/** * Test method for {@link org.seedstack.seed.crypto.internal.CryptoPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}. Test creation of * {@link EncryptionService}./*from w w w .jav a 2 s. c o m*/ * * @throws Exception if an error occurred */ @Test public void testInitInitContext(@Mocked final InitContext context, @Mocked final ApplicationPlugin applicationPlugin, @Mocked final Configuration configuration, @Mocked final Application application, @Mocked final EncryptionServiceFactory factory) throws Exception { new Expectations() { @Mocked CertificateDefinition certificateDefinition; { context.pluginsRequired(); result = Collections.singleton(applicationPlugin); applicationPlugin.getApplication(); result = application; application.getConfiguration(); result = configuration; configuration.subset("org.seedstack.seed.cryptography"); result = configuration; configuration.getStringArray("keys"); result = new String[] { "key1" }; } }; final CryptoPlugin plugin = new CryptoPlugin(); plugin.init(context); new Verifications() { Map<String, EncryptionService> encryptionServices = Deencapsulation.getField(plugin, "encryptionServices"); final int configurations = 2; // master + key1 { factory.createEncryptionService((KeyStoreDefinition) any, (CertificateDefinition) any); times = configurations; Assertions.assertThat(encryptionServices.size()).isEqualTo(configurations); } }; }
From source file:org.seedstack.seed.crypto.internal.CryptoPluginTest.java
/** * Test method for {@link org.seedstack.seed.crypto.internal.CryptoPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}. Test creation of * {@link EncryptionService} with a custom keystore for one key. * * @throws Exception if an error occurred *//*from w w w. j a v a2 s . c o m*/ @Test public void testInitInitContextWithCustomKeystoreForKey(@Mocked final InitContext context, @Mocked final ApplicationPlugin applicationPlugin, @Mocked final Configuration configuration, @Mocked final Configuration subsetConfiguration, @Mocked final Application application, @Mocked final EncryptionServiceFactory factory) throws Exception { new Expectations() { @Mocked CertificateDefinition certificateDefinition; { context.pluginsRequired(); result = Collections.singleton(applicationPlugin); applicationPlugin.getApplication(); result = application; application.getConfiguration(); result = configuration; configuration.subset("org.seedstack.seed.cryptography"); result = configuration; configuration.getStringArray("keys"); result = new String[] { "key1" }; } }; final CryptoPlugin plugin = new CryptoPlugin(); plugin.init(context); new Verifications() { Map<String, EncryptionService> encryptionServices = Deencapsulation.getField(plugin, "encryptionServices"); final int configurations = 2; // master + key1 { factory.createEncryptionService((KeyStoreDefinition) any, (CertificateDefinition) any); times = configurations; Assertions.assertThat(encryptionServices.size()).isEqualTo(configurations); } }; }
From source file:org.seedstack.seed.crypto.internal.CryptoPluginTest.java
/** * Test method for {@link org.seedstack.seed.crypto.internal.CryptoPlugin#init(io.nuun.kernel.api.plugin.context.InitContext)}. Test an error in * the configuration file.//from ww w . j a v a2 s.c o m * * @throws Exception if an error occurred */ @Test(expected = RuntimeException.class) public void testInitInitContextWithProblemKeyDefinition(@Mocked final InitContext context, @Mocked final ApplicationPlugin applicationPlugin, @Mocked final Configuration configuration, @Mocked final Application application) throws Exception { new Expectations() { @Mocked CertificateDefinition certificateDefinition; { context.pluginsRequired(); result = Collections.singleton(applicationPlugin); applicationPlugin.getApplication(); result = application; application.getConfiguration(); result = configuration; configuration.subset("org.seedstack.seed.cryptography"); result = configuration; configuration.getStringArray("keys"); result = new String[] { "key1" }; configuration.isEmpty(); result = true; } }; final CryptoPlugin plugin = new CryptoPlugin(); plugin.init(context); }
From source file:org.seedstack.seed.crypto.internal.SslConfigFactory.java
/** * Extract an {@link SslConfig} from the Seed configuration. * * @return the SSL configuration// w w w . j a v a2s .c om */ SslConfig createSslConfig(Configuration sslConfiguration) { SslConfig sslConfig = new SslConfig(); String sslClientAuthMode = sslConfiguration.getString(CLIENT_AUTH_MODE); if (sslClientAuthMode != null && !sslClientAuthMode.equals("") && SslConfig.CLIENT_AUTH_MODES.contains(sslClientAuthMode)) { sslConfig.setClientAuthMode(sslClientAuthMode); } else { sslConfig.setClientAuthMode(NOT_REQUESTED); } if (sslConfiguration.containsKey(PROTOCOL)) { sslConfig.setProtocol(sslConfiguration.getString(PROTOCOL)); } else { sslConfig.setProtocol(TLS); } sslConfig.setCiphers(sslConfiguration.getStringArray(CIPHERS)); return sslConfig; }
From source file:org.seedstack.seed.persistence.elasticsearch.internal.ElasticSearchPlugin.java
@Override public InitState init(InitContext initContext) { ApplicationPlugin applicationPlugin = (ApplicationPlugin) initContext.pluginsRequired().iterator().next(); Configuration elasticSearchConfiguration = applicationPlugin.getApplication().getConfiguration() .subset(ELASTIC_SEARCH_PLUGIN_CONFIGURATION_PREFIX); String[] elasticSearchClientNames = elasticSearchConfiguration.getStringArray("clients"); if (elasticSearchClientNames != null && elasticSearchClientNames.length > 0) { for (String elasticSearchClientName : elasticSearchClientNames) { Configuration elasticSearchClientConfiguration = elasticSearchConfiguration .subset("client." + elasticSearchClientName); Iterator<String> it = elasticSearchClientConfiguration.getKeys("property"); Map<String, String> propertiesMap = new HashMap<String, String>(); while (it.hasNext()) { String name = it.next(); propertiesMap.put(name.substring(9), elasticSearchClientConfiguration.getString(name)); }//from w w w.j a va 2 s . c o m if (!propertiesMap.containsKey("path.home")) { try { propertiesMap.put("path.home", applicationPlugin.getApplication().getStorageLocation( ElasticSearchPlugin.ELASTIC_SEARCH_STORAGE_ROOT + elasticSearchClientName) .getAbsolutePath()); } catch (IOException e) { throw new PluginException("Unable to create ElasticSearch home directory", e); } } String[] hosts = elasticSearchClientConfiguration.getStringArray("hosts"); if (hosts == null || hosts.length == 0) { LOGGER.info("Creating ElasticSearch client {} on its local node", elasticSearchClientName); Node node = buildLocalNode(buildSettings(propertiesMap)); elasticSearchLocalNodes.put(elasticSearchClientName, node); elasticSearchClients.put(elasticSearchClientName, node.client()); } else { LOGGER.info("Creating ElasticSearch client {} for remote instance at {}", elasticSearchClientName, Arrays.toString(hosts)); elasticSearchClients.put(elasticSearchClientName, buildRemoteClient(buildSettings(propertiesMap), hosts)); } } } else { LOGGER.info("No ElasticSearch client configured, ElasticSearch support disabled"); } return InitState.INITIALIZED; }
From source file:org.seedstack.seed.persistence.jdbc.internal.DataSourceDefinitionFactory.java
public DataSourceDefinitionFactory(Configuration jdbcConfiguration) { this.jdbcConfiguration = jdbcConfiguration; this.dataSourceNames = jdbcConfiguration.getStringArray("datasources"); }
From source file:org.seedstack.seed.persistence.jpa.internal.EntityManagerFactoryFactory.java
EntityManagerFactory createEntityManagerFactory(String persistenceUnit, Properties properties, Configuration unitConfiguration, Application application, JdbcRegistry jdbcRegistry, Collection<Class<?>> scannedClasses) { InternalPersistenceUnitInfo unitInfo = new InternalPersistenceUnitInfo(persistenceUnit); String dataSourceName = unitConfiguration.getString("datasource"); DataSource dataSource = jdbcRegistry.getDataSource(dataSourceName); if (dataSource == null) { throw SeedException.createNew(JpaErrorCode.DATA_SOURCE_NOT_FOUND) .put("unit", unitInfo.getPersistenceUnitName()).put("datasource", dataSourceName); }/* ww w .ja v a 2 s. c o m*/ ArrayList<String> classNames = new ArrayList<String>(); for (Class<?> scannedClass : scannedClasses) { if (unitInfo.getPersistenceUnitName() .equals(application.getConfiguration(scannedClass).getString("jpa-unit"))) { classNames.add(scannedClass.getName()); } } if (classNames.isEmpty()) { throw SeedException.createNew(JpaErrorCode.NO_PERSISTED_CLASSES_IN_UNIT).put("unit", unitInfo.getPersistenceUnitName()); } unitInfo.setManagedClassNames(classNames); if (unitConfiguration.getString("mapping-files") != null) { unitInfo.setMappingFileNames(Arrays.asList(unitConfiguration.getStringArray("mapping-files"))); } else { unitInfo.setMappingFileNames(Collections.<String>emptyList()); } unitInfo.setProperties(properties); if (unitConfiguration.getString("validation-mode") != null) { unitInfo.setValidationMode(ValidationMode.valueOf(unitConfiguration.getString("validation-mode"))); } if (unitConfiguration.getString("shared-cache-mode") != null) { unitInfo.setSharedCacheMode(SharedCacheMode.valueOf(unitConfiguration.getString("shared-cache-mode"))); } if (unitConfiguration.getString("transaction-type") != null) { unitInfo.setPersistenceUnitTransactionType( PersistenceUnitTransactionType.valueOf(unitConfiguration.getString("transaction-type"))); } switch (unitInfo.getTransactionType()) { case RESOURCE_LOCAL: unitInfo.setNonJtaDataSource(dataSource); break; case JTA: unitInfo.setJtaDataSource(dataSource); break; } return createEntityManagerFactory(unitInfo, null); }
From source file:org.seedstack.seed.persistence.jpa.internal.JpaPlugin.java
@Override @SuppressWarnings("unchecked") public InitState init(InitContext initContext) { Configuration jpaConfiguration = null; TransactionPlugin transactionPlugin = null; JdbcRegistry jdbcRegistry = null;//w ww .ja v a 2 s . c o m Application application = null; for (Plugin plugin : initContext.pluginsRequired()) { if (plugin instanceof ApplicationPlugin) { application = ((ApplicationPlugin) plugin).getApplication(); jpaConfiguration = application.getConfiguration().subset(JpaPlugin.JPA_PLUGIN_CONFIGURATION_PREFIX); } else if (plugin instanceof TransactionPlugin) { transactionPlugin = (TransactionPlugin) plugin; } else if (plugin instanceof JdbcPlugin) { jdbcRegistry = (JdbcRegistry) plugin; } } if (jpaConfiguration == null) { throw new PluginException("Unable to find application plugin"); } if (transactionPlugin == null) { throw new PluginException("Unable to find transaction plugin"); } if (jdbcRegistry == null) { throw new PluginException("Unable to find jdbc plugin"); } String[] persistenceUnitNames = jpaConfiguration.getStringArray("units"); if (persistenceUnitNames == null || persistenceUnitNames.length == 0) { LOGGER.info("No JPA persistence unit configured, JPA support disabled"); return InitState.INITIALIZED; } 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; }