This is an automated email from the git hooks/post-receive script. New commit to branch feature/2892 in repository topia. See http://git.nuiton.org/topia.git commit 2e409ec1393b69da6307beac1397c5afc54a4abb Author: Brendan Le Ny <bleny@codelutin.com> Date: Fri Dec 19 17:48:55 2014 +0100 Implements a method to convert TopiaConfiguration to Map --- .../persistence/TopiaConfigurationBuilder.java | 46 +++++++++++++++- .../persistence/TopiaConfigurationBuilderTest.java | 63 +++++++++++++++------- 2 files changed, 90 insertions(+), 19 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationBuilder.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationBuilder.java index 4e87d75..11cc8d1 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationBuilder.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfigurationBuilder.java @@ -200,7 +200,47 @@ public class TopiaConfigurationBuilder { check(topiaConfiguration); Map<String, String> map = new LinkedHashMap<String, String>(); - throw new UnsupportedOperationException("yet"); + // JDBC connection + map.put(CONFIG_URL, topiaConfiguration.getJdbcConnectionUrl()); + map.put(CONFIG_USER, topiaConfiguration.getJdbcConnectionUser()); + map.put(CONFIG_PASS, topiaConfiguration.getJdbcConnectionPassword()); + map.put(CONFIG_DRIVER, topiaConfiguration.getJdbcDriverClass().getName()); + + // Schema initialization + if ( ! topiaConfiguration.isInitSchema()) { + map.put(CONFIG_PERSISTENCE_INIT_SCHEMA, String.valueOf(topiaConfiguration.isInitSchema())); + } + + // connection pooling + if (topiaConfiguration.isConnectionPoolingEnabled()) { + map.put(HibernateAvailableSettings.C3P0_MIN_SIZE, String.valueOf(topiaConfiguration.getConnectionPoolMinSize())); + map.put(HibernateAvailableSettings.C3P0_MAX_SIZE, String.valueOf(topiaConfiguration.getConnectionPoolMaxSize())); + } + + // others + map.put(CONFIG_PERSISTENCE_TOPIA_ID_FACTORY_CLASS_NAME, topiaConfiguration.getTopiaIdFactoryClassName()); + if (topiaConfiguration.getSchemaName() != null) { + map.put(CONFIG_DEFAULT_SCHEMA, topiaConfiguration.getSchemaName()); + } + + // Hibernate + map.putAll(topiaConfiguration.getHibernateExtraConfiguration()); + + // services + for (Map.Entry<String, Class<? extends TopiaService>> entry : topiaConfiguration.getDeclaredServices().entrySet()) { + String serviceName = entry.getKey(); + String serviceDeclaration = TOPIA_SERVICE_CONFIGURATION_PREFIX + "." + serviceName; + String serviceClassName = entry.getValue().getName(); + Map<String, String> serviceConfiguration = topiaConfiguration.getDeclaredServicesConfiguration().get(serviceName); + map.put(serviceDeclaration, serviceClassName); + if (serviceConfiguration != null) { + for (Map.Entry<String, String> serviceConfigurationEntry : serviceConfiguration.entrySet()) { + map.put(serviceDeclaration + "." + serviceConfigurationEntry.getKey(), serviceConfigurationEntry.getValue()); + } + } + } + + return map; } public static Properties toProperties(TopiaConfiguration topiaConfiguration) { @@ -305,5 +345,9 @@ public class TopiaConfigurationBuilder { public Properties toProperties() { return TopiaConfigurationBuilder.toProperties(beanTopiaConfiguration); } + + public Map<String, String> toMap() { + return TopiaConfigurationBuilder.toMap(beanTopiaConfiguration); + } } } diff --git a/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaConfigurationBuilderTest.java b/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaConfigurationBuilderTest.java index 875af33..9dc4018 100644 --- a/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaConfigurationBuilderTest.java +++ b/topia-persistence/src/test/java/org/nuiton/topia/persistence/TopiaConfigurationBuilderTest.java @@ -1,16 +1,47 @@ package org.nuiton.topia.persistence; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.nuiton.topia.persistence.internal.LegacyTopiaIdFactory; import org.nuiton.topia.persistence.internal.TopiaConnectionProvider; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcConfigurationBuilder; +import java.util.Map; import java.util.Properties; public class TopiaConfigurationBuilderTest { + private static final Log log = LogFactory.getLog(TopiaConfigurationBuilderTest.class); + + protected Properties properties; + + @Before + public void setUp() { + + properties = new Properties(); + properties.put("hibernate.connection.driver_class", "org.h2.Driver"); + properties.put("hibernate.connection.url", "jdbc:h2:file:/tmp/my-super-directory/h2data"); + properties.put("hibernate.connection.username", "sa"); + properties.put("hibernate.connection.password", ""); + properties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); + properties.put("hibernate.show_sql", "false"); + properties.put("hibernate.format_sql", "true"); + properties.put("hibernate.use_sql_comments", "true"); + properties.put("hibernate.ejb.naming_strategy", org.hibernate.cfg.ImprovedNamingStrategy.class.getName()); + properties.put("hibernate.c3p0.min_size", "5"); + properties.put("hibernate.c3p0.max_size", "20"); + properties.put("hibernate.c3p0.timeout", "1800"); + properties.put("hibernate.c3p0.max_statements", "50"); + properties.put("hibernate.connection.provider_class", TopiaConnectionProvider.class.getName()); + properties.put("topia.persistence.topiaIdFactoryClassName", LegacyTopiaIdFactory.class.getName()); + properties.put("topia.service.migration", HibernateTopiaMigrationService.class.getName()); + + } + @Test public void build() { @@ -36,24 +67,6 @@ public class TopiaConfigurationBuilderTest { @Test public void testReadProperties() { - Properties properties = new Properties(); - properties.put("hibernate.connection.driver_class", "org.h2.Driver"); - properties.put("hibernate.connection.url", "jdbc:h2:file:/tmp/my-super-directory/h2data"); - properties.put("hibernate.connection.username", "sa"); - properties.put("hibernate.connection.password", ""); - properties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); - properties.put("hibernate.show_sql", "false"); - properties.put("hibernate.format_sql", "true"); - properties.put("hibernate.use_sql_comments", "true"); - properties.put("hibernate.ejb.naming_strategy", org.hibernate.cfg.ImprovedNamingStrategy.class.getName()); - properties.put("hibernate.c3p0.min_size", "5"); - properties.put("hibernate.c3p0.max_size", "20"); - properties.put("hibernate.c3p0.timeout", "1800"); - properties.put("hibernate.c3p0.max_statements", "50"); - properties.put("hibernate.connection.provider_class", TopiaConnectionProvider.class.getName()); - properties.put("topia.persistence.topiaIdFactoryClassName", LegacyTopiaIdFactory.class.getName()); - properties.put("topia.service.migration", HibernateTopiaMigrationService.class.getName()); - BeanTopiaConfiguration topiaConfiguration = TopiaConfigurationBuilder.readProperties(properties); Assert.assertTrue(topiaConfiguration.getHibernateExtraConfiguration().containsValue(org.hibernate.cfg.ImprovedNamingStrategy.class.getName())); @@ -61,4 +74,18 @@ public class TopiaConfigurationBuilderTest { } + @Test + public void testToMap() { + + TopiaConfiguration topiaConfiguration = TopiaConfigurationBuilder.readProperties(properties); + + Map<String, String> map = TopiaConfigurationBuilder.toMap(topiaConfiguration); + + if (log.isDebugEnabled()) { + log.debug("generated map is " + map); + } + + Assert.assertEquals(properties.size(), map.size()); + + } } \ No newline at end of file -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.