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 5c6e6d8189b54d2a5dd50597b94ac6d9ba0d5f47 Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Jan 26 12:00:44 2015 +0100 Implements guessHibernateDialect --- .../persistence/internal/HibernateProvider.java | 29 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 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 05170d9..6a8d4b2 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 @@ -31,7 +31,11 @@ import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; +import org.hibernate.dialect.DB2Dialect; +import org.hibernate.dialect.DerbyDialect; import org.hibernate.dialect.H2Dialect; +import org.hibernate.dialect.HSQLDialect; +import org.hibernate.dialect.MySQL5Dialect; import org.hibernate.dialect.Oracle10gDialect; import org.hibernate.dialect.PostgreSQL9Dialect; import org.hibernate.dialect.SQLServer2012Dialect; @@ -46,6 +50,7 @@ import org.hibernate.service.spi.Stoppable; import org.nuiton.topia.persistence.TopiaConfiguration; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.internal.support.TopiaHibernateEventListener; +import org.nuiton.topia.persistence.jdbc.JdbcConfigurationBuilder; import org.nuiton.topia.persistence.support.TopiaServiceSupport; import org.nuiton.topia.persistence.util.TopiaUtil; @@ -153,14 +158,28 @@ public class HibernateProvider { public static String guessHibernateDialect(String jdbcConnectionUrl, String jdbcDriverClassName) { String guessedHibernateDialect = null; - if (jdbcConnectionUrl.startsWith("jdbc:postgresql:") || jdbcDriverClassName.equals("org.postgresql.Driver")) { - guessedHibernateDialect = PostgreSQL9Dialect.class.getName(); - } else if (jdbcConnectionUrl.startsWith("jdbc:h2:") || jdbcDriverClassName.equals("org.h2.Driver")) { + if (JdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl)) { + guessedHibernateDialect = DB2Dialect.class.getName(); + } else if (JdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl)) { + guessedHibernateDialect = DerbyDialect.class.getName(); + } else if (JdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl)) { guessedHibernateDialect = H2Dialect.class.getName(); - } else if (jdbcConnectionUrl.startsWith("jdbc:oracle:") || jdbcDriverClassName.equals("oracle.jdbc.driver.OracleDriver")) { + } else if (JdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl)) { + guessedHibernateDialect = HSQLDialect.class.getName(); + } else if (JdbcConfigurationBuilder.isMysqlUrl(jdbcConnectionUrl) + || JdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) + || JdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl)) { + guessedHibernateDialect = MySQL5Dialect.class.getName(); + } else if (JdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl)) { guessedHibernateDialect = Oracle10gDialect.class.getName(); - } else if (jdbcConnectionUrl.startsWith("jdbc:jtds:sqlserver:") || jdbcDriverClassName.equals("net.sourceforge.jtds.jdbc.Driver")) { + } else if (JdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl)) { + guessedHibernateDialect = PostgreSQL9Dialect.class.getName(); + } else if (JdbcConfigurationBuilder.isJtdsUrl(jdbcConnectionUrl) + || JdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl)) { guessedHibernateDialect = SQLServer2012Dialect.class.getName(); + } else if (JdbcConfigurationBuilder.isSqliteUrl(jdbcConnectionUrl) + || JdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { + guessedHibernateDialect = null; } else { if (log.isWarnEnabled()) { log.warn("unable to guess Hibernate dialect for JDBC URL " + jdbcConnectionUrl + " and JDBC driver " + jdbcDriverClassName + ". Please, submit a patch!"); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.