branch feature/2892 updated (098f5b7 -> 4fe77ed)
This is an automated email from the git hooks/post-receive script. New change to branch feature/2892 in repository topia. See http://git.nuiton.org/topia.git from 098f5b7 Enable connection pooling by default new 85d6120 Make builders instantiables new 8837683 fix dialect detection for H2 compatibility mode new 4fe77ed log properties before starting hibernate provider The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 4fe77ed34caa6f2ab94c11848f362bbe54c12043 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Jan 28 17:31:56 2015 +0100 log properties before starting hibernate provider commit 88376837f07bbc48adc7020a790828517a10827f Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Jan 26 18:45:15 2015 +0100 fix dialect detection for H2 compatibility mode commit 85d61202a86503457e356be6d51356d9207657a0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Jan 26 18:37:03 2015 +0100 Make builders instantiables Summary of changes: .../framework/TopiaConnectionProviderTest.java | 11 ++- .../framework/TopiaContextReplicateTest.java | 5 +- .../topia/it/legacy/framework/TopiaUtilTest.java | 3 +- .../topia/junit/AbstractDatabaseResource.java | 3 +- .../topia/persistence/TopiaConfiguration.java | 2 + .../persistence/TopiaConfigurationBuilder.java | 87 ++++++++++++---------- .../internal/AbstractTopiaApplicationContext.java | 7 +- .../persistence/internal/HibernateProvider.java | 65 +++++++++++----- .../persistence/jdbc/JdbcConfigurationBuilder.java | 74 +++++++++--------- .../persistence/TopiaConfigurationBuilderTest.java | 10 +-- .../TopiaServiceFlywayInitOnCreateSchemaTest.java | 10 +-- .../topia/migration/TopiaMigrationEngineTest.java | 6 +- .../AbstractTopiaReplicationServiceTest.java | 5 +- 13 files changed, 164 insertions(+), 124 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 85d61202a86503457e356be6d51356d9207657a0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Jan 26 18:37:03 2015 +0100 Make builders instantiables --- .../framework/TopiaConnectionProviderTest.java | 11 ++- .../framework/TopiaContextReplicateTest.java | 5 +- .../topia/it/legacy/framework/TopiaUtilTest.java | 3 +- .../topia/junit/AbstractDatabaseResource.java | 3 +- .../topia/persistence/TopiaConfiguration.java | 2 + .../persistence/TopiaConfigurationBuilder.java | 87 ++++++++++++---------- .../internal/AbstractTopiaApplicationContext.java | 7 +- .../persistence/internal/HibernateProvider.java | 27 +++---- .../persistence/jdbc/JdbcConfigurationBuilder.java | 74 +++++++++--------- .../persistence/TopiaConfigurationBuilderTest.java | 10 +-- .../TopiaServiceFlywayInitOnCreateSchemaTest.java | 10 +-- .../topia/migration/TopiaMigrationEngineTest.java | 6 +- .../AbstractTopiaReplicationServiceTest.java | 5 +- 13 files changed, 130 insertions(+), 120 deletions(-) diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderTest.java index 5d92169..c7dafad 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderTest.java @@ -24,10 +24,6 @@ package org.nuiton.topia.it.legacy.framework; * #L% */ -import java.io.File; -import java.util.Locale; -import java.util.Map; - import org.hibernate.cfg.AvailableSettings; import org.junit.Assert; import org.junit.Rule; @@ -40,10 +36,13 @@ import org.nuiton.topia.it.legacy.test.entities.PersonTopiaDao; import org.nuiton.topia.it.legacy.topiatest.Personne; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.TopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.internal.TopiaConnectionProvider; +import java.io.File; +import java.util.Locale; +import java.util.Map; + /** * To test the {@link TopiaConnectionProvider} and make sure all connections * are done from here... @@ -61,7 +60,7 @@ public class TopiaConnectionProviderTest { @Override protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { - BeanTopiaConfiguration configuration = TopiaConfigurationBuilder.copyOf(topiaConfiguration); + BeanTopiaConfiguration configuration = TopiaConfiguration.builder.copyOf(topiaConfiguration); Map<String, String> extraConf = configuration.getHibernateExtraConfiguration(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaContextReplicateTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaContextReplicateTest.java index 0216417..a954c78 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaContextReplicateTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaContextReplicateTest.java @@ -36,7 +36,6 @@ import org.nuiton.topia.it.legacy.test.entities.Pet; import org.nuiton.topia.it.legacy.test.entities.PetTopiaDao; import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.BeanTopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; /** * To test replication sugin TopiaContext. @@ -53,7 +52,7 @@ public class TopiaContextReplicateTest { @Override protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { BeanTopiaConfiguration configuration = - TopiaConfigurationBuilder.copyOf(topiaConfiguration); + TopiaConfiguration.builder.copyOf(topiaConfiguration); configuration.setJdbcConnectionUrl(topiaConfiguration.getJdbcConnectionUrl() + "-source"); return super.createApplicationContext(configuration); } @@ -66,7 +65,7 @@ public class TopiaContextReplicateTest { @Override protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { BeanTopiaConfiguration configuration = - TopiaConfigurationBuilder.copyOf(topiaConfiguration); + TopiaConfiguration.builder.copyOf(topiaConfiguration); configuration.setJdbcConnectionUrl(topiaConfiguration.getJdbcConnectionUrl() + "-target"); return super.createApplicationContext(configuration); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaUtilTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaUtilTest.java index 3a275c6..6054230 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaUtilTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaUtilTest.java @@ -33,7 +33,6 @@ import org.nuiton.topia.it.legacy.test.entities.PersonImpl; import org.nuiton.topia.it.legacy.topiatest.Personne; import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.TopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.util.TopiaUtil; import java.util.regex.Matcher; @@ -59,7 +58,7 @@ public class TopiaUtilTest { @Override protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { - BeanTopiaConfiguration configuration = TopiaConfigurationBuilder.copyOf(topiaConfiguration); + BeanTopiaConfiguration configuration = TopiaConfiguration.builder.copyOf(topiaConfiguration); configuration.setInitSchema(false); return super.createApplicationContext(configuration); } diff --git a/topia-junit/src/main/java/org/nuiton/topia/junit/AbstractDatabaseResource.java b/topia-junit/src/main/java/org/nuiton/topia/junit/AbstractDatabaseResource.java index f3439f1..eb399c7 100644 --- a/topia-junit/src/main/java/org/nuiton/topia/junit/AbstractDatabaseResource.java +++ b/topia-junit/src/main/java/org/nuiton/topia/junit/AbstractDatabaseResource.java @@ -71,8 +71,9 @@ public abstract class AbstractDatabaseResource<PersistenceContext extends TopiaP @Override protected void starting(Description description) { + TopiaConfigurationBuilder topiaConfigurationBuilder = TopiaConfiguration.builder; TopiaConfiguration topiaConfiguration = - TopiaConfigurationBuilder.forTest( + topiaConfigurationBuilder.forTest( description.getTestClass(), description.getMethodName()); applicationContext = createApplicationContext(topiaConfiguration); diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java index bbcc693..2a15d5d 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/TopiaConfiguration.java @@ -11,6 +11,8 @@ import java.util.Map; */ public interface TopiaConfiguration extends JdbcConfiguration { + TopiaConfigurationBuilder builder = TopiaConfigurationBuilder.instance(); + /** * You can set it to false if you don't want Topia to deal with the schema (you keep it * up to date with your own sql file). 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 a7b01d8..488d995 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 @@ -3,7 +3,6 @@ package org.nuiton.topia.persistence; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; - import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; @@ -32,6 +31,8 @@ public class TopiaConfigurationBuilder { private static final Log log = LogFactory.getLog(TopiaConfigurationBuilder.class); + protected JdbcConfigurationBuilder jdbcConfigurationBuilder = new JdbcConfigurationBuilder(); + protected static final String TOPIA_SERVICE_CONFIGURATION_PREFIX = "topia.service."; protected static final String CONFIG_DEFAULT_SCHEMA = AvailableSettings.DEFAULT_SCHEMA; @@ -56,11 +57,15 @@ public class TopiaConfigurationBuilder { protected static final ImmutableSet<String> MAIN_CONFIGURATION = ImmutableSet.of(CONFIG_DRIVER, CONFIG_URL, CONFIG_USER, CONFIG_PASS); + public static TopiaConfigurationBuilder instance() { + return new TopiaConfigurationBuilder(); + } + /** * Do nothing but throws {@link TopiaMisconfigurationException} if there is a problem in * given configuration. */ - public static void check(TopiaConfiguration topiaConfiguration) throws TopiaMisconfigurationException { + public void check(TopiaConfiguration topiaConfiguration) throws TopiaMisconfigurationException { if (StringUtils.isBlank(topiaConfiguration.getJdbcConnectionUrl())) { throw new TopiaMisconfigurationException("you must provide JDBC connection URL", topiaConfiguration); } @@ -91,7 +96,7 @@ public class TopiaConfigurationBuilder { } } - public static BeanTopiaConfiguration readProperties(File propertiesFile) { + public BeanTopiaConfiguration readProperties(File propertiesFile) { FileInputStream fileInputStream = null; try { Properties properties = new Properties(); @@ -105,18 +110,24 @@ public class TopiaConfigurationBuilder { } } - public static BeanTopiaConfiguration readProperties(Properties properties) { + public BeanTopiaConfiguration readProperties(Properties properties) { return readMap((Map) ImmutableMap.copyOf(properties)); } - public static BeanTopiaConfiguration readMap(Map<String, String> configuration) { + public BeanTopiaConfiguration readMap(Map<String, String> configuration) { // JDBC connection String url = configuration.get(CONFIG_URL); String user = configuration.get(CONFIG_USER); String password = configuration.get(CONFIG_PASS); String driverName = configuration.get(CONFIG_DRIVER); - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forDatabase(url, user, password, driverName); + + JdbcConfiguration jdbcConfiguration; + if (StringUtils.isBlank(driverName)) { + jdbcConfiguration = jdbcConfigurationBuilder.forDatabase(url, user, password); + } else { + jdbcConfiguration = jdbcConfigurationBuilder.forDatabase(url, user, password, driverName); + } BeanTopiaConfiguration result = new BeanTopiaConfiguration(jdbcConfiguration); @@ -179,7 +190,7 @@ public class TopiaConfigurationBuilder { return result; } - public static Map<String, String> toMap(TopiaConfiguration topiaConfiguration) { + public Map<String, String> toMap(TopiaConfiguration topiaConfiguration) { check(topiaConfiguration); Map<String, String> map = new LinkedHashMap<String, String>(); @@ -220,32 +231,32 @@ public class TopiaConfigurationBuilder { return map; } - public static Properties toProperties(TopiaConfiguration topiaConfiguration) { + public Properties toProperties(TopiaConfiguration topiaConfiguration) { Map<String, String> map = toMap(topiaConfiguration); Properties properties = new Properties(); properties.putAll(map); return properties; } - public static ConfigureInitSchemaStep forDatabase(JdbcConfiguration jdbcConfiguration) { + public ConfigureInitSchemaStep forDatabase(JdbcConfiguration jdbcConfiguration) { BeanTopiaConfiguration beanTopiaConfiguration = new BeanTopiaConfiguration(jdbcConfiguration); return new ConfigureInitSchemaStep(beanTopiaConfiguration); } - public static BeanTopiaConfiguration forTest(Class<?> testClass, String methodName) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forTest(testClass, methodName); + public BeanTopiaConfiguration forTest(Class<?> testClass, String methodName) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forTestDatabase(testClass, methodName); BeanTopiaConfiguration configuration = forDatabase(jdbcConfiguration).onlyCreateSchemaIfDatabaseIsEmpty().build(); return configuration; } - public static BeanTopiaConfiguration copyOf(TopiaConfiguration topiaConfiguration) { + public BeanTopiaConfiguration copyOf(TopiaConfiguration topiaConfiguration) { BeanTopiaConfiguration copy = new BeanTopiaConfiguration(); Binder<TopiaConfiguration, BeanTopiaConfiguration> binder = BinderFactory.newBinder(TopiaConfiguration.class, BeanTopiaConfiguration.class); binder.copy(topiaConfiguration, copy); return copy; } - public static class ConfigureInitSchemaStep { + public class ConfigureInitSchemaStep { protected BeanTopiaConfiguration beanTopiaConfiguration; @@ -283,7 +294,7 @@ public class TopiaConfigurationBuilder { } - public static class BuildStep { + public class BuildStep { protected BeanTopiaConfiguration beanTopiaConfiguration; @@ -298,67 +309,65 @@ public class TopiaConfigurationBuilder { } public Properties buildProperties() { - return TopiaConfigurationBuilder.toProperties(beanTopiaConfiguration); + return toProperties(beanTopiaConfiguration); } public Map<String, String> buildMap() { - return TopiaConfigurationBuilder.toMap(beanTopiaConfiguration); + return toMap(beanTopiaConfiguration); } } - - /* - * A few methods thah delegates to JdbcConfigurationBuilder + * A few methods that delegates to jdbcConfigurationBuilder */ - public static ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, String jdbcDriverClassName) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, jdbcDriverClassName); + public ConfigureInitSchemaStep forInMemoryH2Database() { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forInMemoryH2Database(); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, Class<? extends Driver> jdbcDriverClass) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, jdbcDriverClass); + public ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, String jdbcDriverClassName) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, jdbcDriverClassName); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); + public ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, Class<? extends Driver> jdbcDriverClass) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, jdbcDriverClass); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forPostgresqlDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forPostgresqlDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); + public ConfigureInitSchemaStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forH2Database(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forH2Database(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); + public ConfigureInitSchemaStep forPostgresqlDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forPostgresqlDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forH2Database(String jdbcConnectionUrl) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forH2Database(jdbcConnectionUrl); + public ConfigureInitSchemaStep forH2Database(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forH2Database(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forH2Database(File file) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forH2Database(file); + public ConfigureInitSchemaStep forH2Database(String jdbcConnectionUrl) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forH2Database(jdbcConnectionUrl); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forH2DatabaseInTempDirectory() { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forH2DatabaseInTempDirectory(); + public ConfigureInitSchemaStep forH2Database(File file) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forH2Database(file); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forInMemoryH2Database() { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forInMemoryH2Database(); + public ConfigureInitSchemaStep forH2DatabaseInTempDirectory() { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forH2DatabaseInTempDirectory(); return forDatabase(jdbcConfiguration); } - public static ConfigureInitSchemaStep forTestDatabase(Class<?> testClass, String methodName) { - JdbcConfiguration jdbcConfiguration = JdbcConfigurationBuilder.forTest(testClass, methodName); + public ConfigureInitSchemaStep forTestDatabase(Class<?> testClass, String methodName) { + JdbcConfiguration jdbcConfiguration = jdbcConfigurationBuilder.forTestDatabase(testClass, methodName); return forDatabase(jdbcConfiguration); } } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java index 6fcdecc..6a50c57 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/AbstractTopiaApplicationContext.java @@ -35,7 +35,6 @@ import org.hibernate.tool.hbm2ddl.SchemaUpdate; import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.TopiaApplicationContextCache; import org.nuiton.topia.persistence.TopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaIdFactory; @@ -101,7 +100,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence */ @Deprecated public AbstractTopiaApplicationContext(Properties properties) { - this(TopiaConfigurationBuilder.readProperties(properties)); + this(TopiaConfiguration.builder.readProperties(properties)); } /** @@ -109,7 +108,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence */ @Deprecated public AbstractTopiaApplicationContext(Map<String, String> map) { - this(TopiaConfigurationBuilder.readMap(map)); + this(TopiaConfiguration.builder.readMap(map)); } public AbstractTopiaApplicationContext(TopiaConfiguration configuration) { @@ -119,7 +118,7 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence protected void init() { - TopiaConfigurationBuilder.check(configuration); + TopiaConfiguration.builder.check(configuration); topiaFiresSupport = new TopiaFiresSupport(); sessionRegistry = new TopiaHibernateSessionRegistry(); diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java index 4b4c46c..b90b94f 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java @@ -161,28 +161,29 @@ public class HibernateProvider { } public static String guessHibernateDialect(String jdbcConnectionUrl, String jdbcDriverClassName) { + JdbcConfigurationBuilder jdbcConfigurationBuilder = new JdbcConfigurationBuilder(); String guessedHibernateDialect = null; - if (JdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl)) { + if (jdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl)) { guessedHibernateDialect = DB2Dialect.class.getName(); - } else if (JdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl)) { guessedHibernateDialect = DerbyDialect.class.getName(); - } else if (JdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl)) { guessedHibernateDialect = H2Dialect.class.getName(); - } else if (JdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl)) { guessedHibernateDialect = HSQLDialect.class.getName(); - } else if (JdbcConfigurationBuilder.isMysqlUrl(jdbcConnectionUrl) - || JdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) - || JdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isMysqlUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl)) { guessedHibernateDialect = MySQL5Dialect.class.getName(); - } else if (JdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl)) { guessedHibernateDialect = Oracle10gDialect.class.getName(); - } else if (JdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl)) { guessedHibernateDialect = PostgreSQL9Dialect.class.getName(); - } else if (JdbcConfigurationBuilder.isJtdsUrl(jdbcConnectionUrl) - || JdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isJtdsUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl)) { guessedHibernateDialect = SQLServer2012Dialect.class.getName(); - } else if (JdbcConfigurationBuilder.isSqliteUrl(jdbcConnectionUrl) - || JdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { + } else if (jdbcConfigurationBuilder.isSqliteUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { guessedHibernateDialect = null; } else { if (log.isWarnEnabled()) { diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcConfigurationBuilder.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcConfigurationBuilder.java index ca2fe45..e54c35b 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcConfigurationBuilder.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcConfigurationBuilder.java @@ -23,7 +23,7 @@ public class JdbcConfigurationBuilder { protected static final String TIMESTAMP = String.valueOf(System.nanoTime()); - public static JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, String jdbcDriverClassName) { + public JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, String jdbcDriverClassName) { try { Class<?> jdbcDriverClass = Class.forName(jdbcDriverClassName); if (Driver.class.isAssignableFrom(jdbcDriverClass)) { @@ -36,7 +36,7 @@ public class JdbcConfigurationBuilder { } } - public static JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, Class<? extends Driver> jdbcDriverClass) { + public JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, Class<? extends Driver> jdbcDriverClass) { BeanJdbcConfiguration beanJdbcConfiguration = new BeanJdbcConfiguration(); beanJdbcConfiguration.setJdbcConnectionUrl(jdbcConnectionUrl); beanJdbcConfiguration.setJdbcConnectionUser(jdbcConnectionUser); @@ -45,7 +45,7 @@ public class JdbcConfigurationBuilder { return beanJdbcConfiguration; } - public static JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + public JdbcConfiguration forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { String guessedJdbcDriverClassName = guessJdbcDriverClassName(jdbcConnectionUrl); if (guessedJdbcDriverClassName == null) { throw new UnsupportedOperationException("unable to guess JDBC driver class name for URL " + jdbcConnectionUrl); @@ -53,32 +53,32 @@ public class JdbcConfigurationBuilder { return forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, guessedJdbcDriverClassName); } - public static JdbcConfiguration forPostgresqlDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + public JdbcConfiguration forPostgresqlDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { return forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, getPostgreSqlJdbcDriverClassName()); } - public static JdbcConfiguration forH2Database(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { + public JdbcConfiguration forH2Database(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword) { return forDatabase(jdbcConnectionUrl, jdbcConnectionUser, jdbcConnectionPassword, getH2JdbcDriverClassName()); } - public static JdbcConfiguration forH2Database(String jdbcConnectionUrl) { + public JdbcConfiguration forH2Database(String jdbcConnectionUrl) { return forH2Database(jdbcConnectionUrl, "sa", ""); } - public static JdbcConfiguration forH2Database(File file) { + public JdbcConfiguration forH2Database(File file) { String jdbcConnectionUrl = "jdbc:h2:file:" + file.getAbsolutePath(); return forH2Database(jdbcConnectionUrl); } - public static JdbcConfiguration forH2DatabaseInTempDirectory() { + public JdbcConfiguration forH2DatabaseInTempDirectory() { return forH2Database(Files.createTempDir()); } - public static JdbcConfiguration forInMemoryH2Database() { + public JdbcConfiguration forInMemoryH2Database() { throw new UnsupportedOperationException(); } - public static JdbcConfiguration forTest(Class<?> testClass, String methodName) { + public JdbcConfiguration forTestDatabase(Class<?> testClass, String methodName) { String javaIoTmpDir = StandardSystemProperty.JAVA_IO_TMPDIR.value(); Preconditions.checkState( StringUtils.isNotBlank(javaIoTmpDir), @@ -99,7 +99,7 @@ public class JdbcConfigurationBuilder { return jdbcConfiguration; } - public static String guessJdbcDriverClassName(String jdbcUrl) { + public String guessJdbcDriverClassName(String jdbcUrl) { String guessedJdbcDriverClassName; if (isDb2Url(jdbcUrl)) { guessedJdbcDriverClassName = getDb2JdbcDriverClassName(); @@ -133,107 +133,107 @@ public class JdbcConfigurationBuilder { return guessedJdbcDriverClassName; } - public static String getDb2JdbcDriverClassName() { + public String getDb2JdbcDriverClassName() { return "com.ibm.db2.jcc.DB2Driver"; } - public static String getDerbyJdbcDriverClassName() { + public String getDerbyJdbcDriverClassName() { return "org.apache.derby.jdbc.EmbeddedDriver"; } - public static String getH2JdbcDriverClassName() { + public String getH2JdbcDriverClassName() { return "org.h2.Driver"; } - public static String getHqlDbJdbcDriverClassName() { + public String getHqlDbJdbcDriverClassName() { return "org.hsqldb.jdbcDriver"; } - public static String getMysqlJdbcDriverClassName() { + public String getMysqlJdbcDriverClassName() { return "com.mysql.jdbc.Driver"; } - public static String getOracleJdbcDriverClassName() { + public String getOracleJdbcDriverClassName() { return "oracle.jdbc.OracleDriver"; } - public static String getGooglaAppEngineJdbcDriverClassName() { + public String getGooglaAppEngineJdbcDriverClassName() { return "com.google.appengine.api.rdbms.AppEngineDriver"; } - public static String getMariaDbJdbcDriverClassName() { + public String getMariaDbJdbcDriverClassName() { return "org.mariadb.jdbc.Driver"; } - public static String getPostgreSqlJdbcDriverClassName() { + public String getPostgreSqlJdbcDriverClassName() { return "org.postgresql.Driver"; } - public static String getJdtsJdbcDriverClassName() { + public String getJdtsJdbcDriverClassName() { return "net.sourceforge.jtds.jdbc.Driver"; } - public static String getSqlServerJdbcDriverClassName() { + public String getSqlServerJdbcDriverClassName() { return "com.microsoft.sqlserver.jdbc.SQLServerDriver"; } - public static String getSqliteJdbcDriverClassName() { + public String getSqliteJdbcDriverClassName() { return "org.sqlite.JDBC"; } - public static String getSqlDroidJdbcDriverClassName() { + public String getSqlDroidJdbcDriverClassName() { return "org.sqldroid.SQLDroidDriver"; } - public static boolean isDb2Url(String jdbcUrl) { + public boolean isDb2Url(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:db2:"); } - public static boolean isSqlDroidUrl(String jdbcUrl) { + public boolean isSqlDroidUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:sqldroid:"); } - public static boolean isSqliteUrl(String jdbcUrl) { + public boolean isSqliteUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:sqlite:"); } - public static boolean isSqlServerUrl(String jdbcUrl) { + public boolean isSqlServerUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:sqlserver:"); } - public static boolean isJtdsUrl(String jdbcUrl) { + public boolean isJtdsUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:jtds:"); } - public static boolean isPostgreSqlUrl(String jdbcUrl) { + public boolean isPostgreSqlUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:postgresql:"); } - public static boolean isOracleUrl(String jdbcUrl) { + public boolean isOracleUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:oracle:"); } - public static boolean isGoogleAppEngineUrl(String jdbcUrl) { + public boolean isGoogleAppEngineUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:google:"); } - public static boolean isMariaDbUrl(String jdbcUrl) { + public boolean isMariaDbUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:mariadb:"); } - public static boolean isMysqlUrl(String jdbcUrl) { + public boolean isMysqlUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:mysql:"); } - public static boolean isHsqlDbUrl(String jdbcUrl) { + public boolean isHsqlDbUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:hsqldb:"); } - public static boolean isH2Url(String jdbcUrl) { + public boolean isH2Url(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:h2:"); } - public static boolean isDerbyUrl(String jdbcUrl) { + public boolean isDerbyUrl(String jdbcUrl) { return jdbcUrl.startsWith("jdbc:derby:"); } } 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 62fefdd..a1f3d38 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 @@ -44,7 +44,7 @@ public class TopiaConfigurationBuilderTest { public void build() { TopiaConfiguration topiaConfiguration = - TopiaConfigurationBuilder.forTestDatabase(getClass(), "build") + TopiaConfiguration.builder.forTestDatabase(getClass(), "build") .useHibernateUpdate() .build(); @@ -55,14 +55,14 @@ public class TopiaConfigurationBuilderTest { @Test public void forTest() { - TopiaConfigurationBuilder.forTest(getClass(), "forTest"); + TopiaConfiguration.builder.forTest(getClass(), "forTest"); } @Test public void testReadProperties() { - BeanTopiaConfiguration topiaConfiguration = TopiaConfigurationBuilder.readProperties(properties); + BeanTopiaConfiguration topiaConfiguration = TopiaConfiguration.builder.readProperties(properties); Assert.assertTrue(topiaConfiguration.getHibernateExtraConfiguration().containsValue(org.hibernate.cfg.ImprovedNamingStrategy.class.getName())); @@ -71,9 +71,9 @@ public class TopiaConfigurationBuilderTest { @Test public void testToMap() { - TopiaConfiguration topiaConfiguration = TopiaConfigurationBuilder.readProperties(properties); + TopiaConfiguration topiaConfiguration = TopiaConfiguration.builder.readProperties(properties); - Map<String, String> map = TopiaConfigurationBuilder.toMap(topiaConfiguration); + Map<String, String> map = TopiaConfiguration.builder.toMap(topiaConfiguration); if (log.isDebugEnabled()) { log.debug("generated map is " + map); diff --git a/topia-service-flyway/src/test/java/org/nuiton/topia/flyway/TopiaServiceFlywayInitOnCreateSchemaTest.java b/topia-service-flyway/src/test/java/org/nuiton/topia/flyway/TopiaServiceFlywayInitOnCreateSchemaTest.java index 6c224f8..99f37db 100644 --- a/topia-service-flyway/src/test/java/org/nuiton/topia/flyway/TopiaServiceFlywayInitOnCreateSchemaTest.java +++ b/topia-service-flyway/src/test/java/org/nuiton/topia/flyway/TopiaServiceFlywayInitOnCreateSchemaTest.java @@ -30,7 +30,7 @@ import org.junit.Ignore; import org.junit.Test; import org.nuiton.topia.it.mapping.TopiaItMappingTopiaApplicationContext; import org.nuiton.topia.persistence.BeanTopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; +import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; /** @@ -50,7 +50,7 @@ public class TopiaServiceFlywayInitOnCreateSchemaTest { @Test public void testInitWithUseModelVersion() throws Exception { - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testInitWithUseModelVersion"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testInitWithUseModelVersion"); config.addDeclaredService("migration", TopiaFlywayServiceImpl.class.getName(), ImmutableMap.of(TopiaFlywayService.USE_MODEL_VERSION, "true")); JdbcH2Helper jdbcH2Helper = new JdbcH2Helper(config); @@ -75,7 +75,7 @@ public class TopiaServiceFlywayInitOnCreateSchemaTest { @Test public void testInitWithoutUseModelVersion() throws Exception { - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testInitWithoutUseModelVersion"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testInitWithoutUseModelVersion"); config.addDeclaredService("migration", TopiaFlywayServiceImpl.class.getName(), ImmutableMap.of(TopiaFlywayService.USE_MODEL_VERSION, "false")); JdbcH2Helper jdbcH2Helper = new JdbcH2Helper(config); @@ -101,7 +101,7 @@ public class TopiaServiceFlywayInitOnCreateSchemaTest { @Ignore // This test won't work since it is not possible to give flyway another test dir than 'db/migration" public void testInitWithFlywayInitVersion() throws Exception { - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testInitWithFlywayInitVersion"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testInitWithFlywayInitVersion"); config.addDeclaredService( "migration", TopiaFlywayServiceImpl.class.getName(), @@ -131,7 +131,7 @@ public class TopiaServiceFlywayInitOnCreateSchemaTest { @Test(expected = IllegalStateException.class) public void testInitWithInvalidConf() throws Exception { - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testInitWithInvalidConf"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testInitWithInvalidConf"); config.addDeclaredService( "migration", diff --git a/topia-service-migration/src/test/java/org/nuiton/topia/migration/TopiaMigrationEngineTest.java b/topia-service-migration/src/test/java/org/nuiton/topia/migration/TopiaMigrationEngineTest.java index 121ca58..5a77436 100644 --- a/topia-service-migration/src/test/java/org/nuiton/topia/migration/TopiaMigrationEngineTest.java +++ b/topia-service-migration/src/test/java/org/nuiton/topia/migration/TopiaMigrationEngineTest.java @@ -31,7 +31,7 @@ import org.junit.Test; import org.nuiton.topia.it.mapping.TopiaItMappingTopiaApplicationContext; import org.nuiton.topia.it.mapping.TopiaItMappingTopiaPersistenceContext; import org.nuiton.topia.persistence.BeanTopiaConfiguration; -import org.nuiton.topia.persistence.TopiaConfigurationBuilder; +import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcH2Helper; import org.nuiton.topia.persistence.jdbc.JdbcHelper; @@ -65,7 +65,7 @@ public class TopiaMigrationEngineTest { @Test public void testMigrationHasRan() throws Exception { - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testMigrationHasRan"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testMigrationHasRan"); config.addDeclaredService("migration", TopiaMigrationEngine.class, ImmutableMap.of(TopiaMigrationService.MIGRATION_CALLBACK, TestMigrationCallbackCreateWhateverTable.class.getName())); @@ -122,7 +122,7 @@ public class TopiaMigrationEngineTest { public void testValidateAfterMigration() throws Exception { // new application context will init database schema because of topia.persistence.initSchema=true - BeanTopiaConfiguration config = TopiaConfigurationBuilder.forTest(getClass(), "testValidateAfterMigration"); + BeanTopiaConfiguration config = TopiaConfiguration.builder.forTest(getClass(), "testValidateAfterMigration"); TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); diff --git a/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java b/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java index cd181f0..608700f 100644 --- a/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java +++ b/topia-service-replication/src/test/java/org/nuiton/topia/replication/AbstractTopiaReplicationServiceTest.java @@ -85,8 +85,9 @@ public abstract class AbstractTopiaReplicationServiceTest extends Assert { private static final String TEST_BASEDIR = "target%1$ssurefire-tests%1$s%2$td_%2$tm_%2$tY%1$s%2$tH_%2$tM_%2$tS"; protected TopiaItLegacyTopiaApplicationContext newTopiaItLegacyTopiaApplicationContext(String name) { - TopiaConfiguration topiaConfiguration = TopiaConfigurationBuilder.forTest(getClass(), name); - BeanTopiaConfiguration beanTopiaConfiguration = TopiaConfigurationBuilder.copyOf(topiaConfiguration); + TopiaConfigurationBuilder topiaConfigurationBuilder = TopiaConfiguration.builder; + TopiaConfiguration topiaConfiguration = topiaConfigurationBuilder.forTest(getClass(), name); + BeanTopiaConfiguration beanTopiaConfiguration = topiaConfigurationBuilder.copyOf(topiaConfiguration); beanTopiaConfiguration.addDeclaredService("replication", TopiaReplicationServiceImpl.class, Collections.<String, String>emptyMap()); return new TopiaItLegacyTopiaApplicationContext(beanTopiaConfiguration); } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 88376837f07bbc48adc7020a790828517a10827f Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Jan 26 18:45:15 2015 +0100 fix dialect detection for H2 compatibility mode --- .../persistence/internal/HibernateProvider.java | 50 ++++++++++++++++------ 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java index b90b94f..6a15209 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java @@ -155,39 +155,65 @@ public class HibernateProvider { public static String getHibernateDialect(TopiaConfiguration topiaConfiguration) { String hibernateDialect = topiaConfiguration.getHibernateExtraConfiguration().get(AvailableSettings.DIALECT); if (hibernateDialect == null) { - hibernateDialect = guessHibernateDialect(topiaConfiguration.getJdbcConnectionUrl(), topiaConfiguration.getJdbcDriverClass().getName()); + hibernateDialect = guessHibernateDialect(topiaConfiguration.getJdbcConnectionUrl()); } return hibernateDialect; } - public static String guessHibernateDialect(String jdbcConnectionUrl, String jdbcDriverClassName) { + public static String guessHibernateDialect(String jdbcConnectionUrl) { JdbcConfigurationBuilder jdbcConfigurationBuilder = new JdbcConfigurationBuilder(); String guessedHibernateDialect = null; - if (jdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl)) { + + // DB2 + if (jdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=DB2")) { guessedHibernateDialect = DB2Dialect.class.getName(); - } else if (jdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl)) { + + // Derby + } else if (jdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Derby")) { guessedHibernateDialect = DerbyDialect.class.getName(); - } else if (jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl)) { - guessedHibernateDialect = H2Dialect.class.getName(); - } else if (jdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl)) { + + // HSQLDB + } else if (jdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=HSQLDB")) { guessedHibernateDialect = HSQLDialect.class.getName(); + + // MySQL } else if (jdbcConfigurationBuilder.isMysqlUrl(jdbcConnectionUrl) || jdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl)) { + || jdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MySQL")) { guessedHibernateDialect = MySQL5Dialect.class.getName(); - } else if (jdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl)) { + + // Oracle + } else if (jdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Oracle")) { guessedHibernateDialect = Oracle10gDialect.class.getName(); - } else if (jdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl)) { + + // PostgreSQL + } else if (jdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=PostgreSQL")) { guessedHibernateDialect = PostgreSQL9Dialect.class.getName(); + + // MS SQLServer } else if (jdbcConfigurationBuilder.isJtdsUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl)) { + || jdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MSSQLServer")) { guessedHibernateDialect = SQLServer2012Dialect.class.getName(); + + // SQLite } else if (jdbcConfigurationBuilder.isSqliteUrl(jdbcConnectionUrl) || jdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { guessedHibernateDialect = null; + + // H2 + } else if (jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl)) { + guessedHibernateDialect = H2Dialect.class.getName(); + } else { if (log.isWarnEnabled()) { - log.warn("unable to guess Hibernate dialect for JDBC URL " + jdbcConnectionUrl + " and JDBC driver " + jdbcDriverClassName + ". Please, submit a patch!"); + log.warn("unable to guess Hibernate dialect for JDBC URL " + jdbcConnectionUrl + ". Please, submit a patch!"); } } return guessedHibernateDialect; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
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 4fe77ed34caa6f2ab94c11848f362bbe54c12043 Author: Brendan Le Ny <bleny@codelutin.com> Date: Wed Jan 28 17:31:56 2015 +0100 log properties before starting hibernate provider --- .../java/org/nuiton/topia/persistence/internal/HibernateProvider.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java index 6a15209..f864975 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/HibernateProvider.java @@ -146,6 +146,10 @@ public class HibernateProvider { // user specific configuration properties.putAll(topiaConfiguration.getHibernateExtraConfiguration()); + if (log.isInfoEnabled()) { + log.info("will start hibernate with configuration " + properties); + } + newHibernateConfiguration.setProperties(properties); return newHibernateConfiguration; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm