branch feature/2892 updated (3a3b569 -> 3e5ee7d)
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 3a3b569 Convention on builders new 2da54fd Use interface AvailableSettings where possible instead of a Hibernate subclass new 3e5ee7d Deprecate TopiaH2Util and move API to JdbcH2Helper The 2 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 3e5ee7d6bd377387435d72430f6edcc9cc8b0e44 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 30 15:31:55 2014 +0100 Deprecate TopiaH2Util and move API to JdbcH2Helper commit 2da54fdfc63ccf1195d0e714aa242df3bff43eac Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 30 15:13:47 2014 +0100 Use interface AvailableSettings where possible instead of a Hibernate subclass Summary of changes: .../TopiaConnectionProviderHardCoded.java | 27 +++++----- .../persistence/TopiaConfigurationBuilder.java | 7 ++- .../persistence/internal/HibernateProvider.java | 15 +++--- .../internal/TopiaConnectionProvider.java | 15 +++--- .../topia/persistence/jdbc/JdbcH2Helper.java | 59 ++++++++++++++++++++++ .../nuiton/topia/persistence/util/TopiaH2Util.java | 3 +- .../nuiton/topia/persistence/util/TopiaUtil.java | 8 +-- .../topia/migration/TopiaMigrationEngine.java | 14 ++--- 8 files changed, 104 insertions(+), 44 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 2da54fdfc63ccf1195d0e714aa242df3bff43eac Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 30 15:13:47 2014 +0100 Use interface AvailableSettings where possible instead of a Hibernate subclass --- .../TopiaConnectionProviderHardCoded.java | 27 +++++++++++----------- .../persistence/TopiaConfigurationBuilder.java | 7 +++--- .../persistence/internal/HibernateProvider.java | 15 ++++++------ .../internal/TopiaConnectionProvider.java | 15 ++++++------ .../nuiton/topia/persistence/util/TopiaUtil.java | 8 +++---- .../topia/migration/TopiaMigrationEngine.java | 14 +++++------ 6 files changed, 43 insertions(+), 43 deletions(-) diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java index 7c2f6ea..73d25c3 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/framework/TopiaConnectionProviderHardCoded.java @@ -24,17 +24,10 @@ package org.nuiton.topia.it.legacy.framework; * #L% */ -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; +import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Environment; import org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; @@ -44,6 +37,14 @@ import org.hibernate.service.UnknownUnwrapTypeException; import org.hibernate.service.spi.Configurable; import org.hibernate.service.spi.Stoppable; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Properties; + /** * Customized connection provider. * @@ -86,17 +87,17 @@ public class TopiaConnectionProviderHardCoded implements ConnectionProvider, Con @Override public void configure(Map configurationValues) throws HibernateException { - poolSize = ConfigurationHelper.getInt(Environment.POOL_SIZE, configurationValues, 20); //default pool size 20 + poolSize = ConfigurationHelper.getInt(AvailableSettings.POOL_SIZE, configurationValues, 20); //default pool size 20 if (log.isDebugEnabled()) { log.debug("Connection pool size: " + poolSize); } - autocommit = ConfigurationHelper.getBoolean(Environment.AUTOCOMMIT, configurationValues); + autocommit = ConfigurationHelper.getBoolean(AvailableSettings.AUTOCOMMIT, configurationValues); if (log.isDebugEnabled()) { log.debug("autocommit mode: " + autocommit); } - isolation = ConfigurationHelper.getInteger(Environment.ISOLATION, configurationValues); + isolation = ConfigurationHelper.getInteger(AvailableSettings.ISOLATION, configurationValues); if (isolation != null) { if (log.isDebugEnabled()) { log.debug("JDBC isolation level: " + @@ -104,12 +105,12 @@ public class TopiaConnectionProviderHardCoded implements ConnectionProvider, Con } } - String driverClass = ConfigurationHelper.getString(Environment.DRIVER, configurationValues); + String driverClass = ConfigurationHelper.getString(AvailableSettings.DRIVER, configurationValues); if (driverClass == null) { if (log.isWarnEnabled()) { log.warn("no JDBC Driver class was specified by property " + - Environment.DRIVER); + AvailableSettings.DRIVER); } } else { try { 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 d28308c..985c4bb 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 @@ -8,7 +8,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.cfg.AvailableSettings; -import org.hibernate.cfg.Environment; import org.nuiton.topia.persistence.jdbc.JdbcConfiguration; import org.nuiton.topia.persistence.jdbc.JdbcConfigurationBuilder; import org.nuiton.util.beans.Binder; @@ -28,7 +27,7 @@ public class TopiaConfigurationBuilder { protected static final String TOPIA_SERVICE_CONFIGURATION_PREFIX = "topia.service."; - protected static final String CONFIG_DEFAULT_SCHEMA = Environment.DEFAULT_SCHEMA; + protected static final String CONFIG_DEFAULT_SCHEMA = AvailableSettings.DEFAULT_SCHEMA; protected static final String CONFIG_USER = AvailableSettings.USER; @@ -79,8 +78,8 @@ public class TopiaConfigurationBuilder { } } Map<String, String> hibernateExtraConfiguration = topiaConfiguration.getHibernateExtraConfiguration(); - if (hibernateExtraConfiguration.containsKey(Environment.HBM2DDL_AUTO)) { - throw new TopiaMisconfigurationException("you must not use " + Environment.HBM2DDL_AUTO + if (hibernateExtraConfiguration.containsKey(AvailableSettings.HBM2DDL_AUTO)) { + throw new TopiaMisconfigurationException("you must not use " + AvailableSettings.HBM2DDL_AUTO + " configuration directive, if you want Hibernate to update the schema, use " + HibernateTopiaMigrationService.class.getName(), topiaConfiguration); } 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 31dbbb3..05170d9 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,6 @@ import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.dialect.H2Dialect; import org.hibernate.dialect.Oracle10gDialect; import org.hibernate.dialect.PostgreSQL9Dialect; @@ -117,13 +116,13 @@ public class HibernateProvider { Properties properties = new Properties(); // JDBC - properties.put(Environment.URL, topiaConfiguration.getJdbcConnectionUrl()); - properties.put(Environment.DRIVER, topiaConfiguration.getJdbcDriverClass().getName()); - properties.put(Environment.USER, topiaConfiguration.getJdbcConnectionUser()); - properties.put(Environment.PASS, topiaConfiguration.getJdbcConnectionPassword()); + properties.put(AvailableSettings.URL, topiaConfiguration.getJdbcConnectionUrl()); + properties.put(AvailableSettings.DRIVER, topiaConfiguration.getJdbcDriverClass().getName()); + properties.put(AvailableSettings.USER, topiaConfiguration.getJdbcConnectionUser()); + properties.put(AvailableSettings.PASS, topiaConfiguration.getJdbcConnectionPassword()); // dialect - properties.put(Environment.DIALECT, getHibernateDialect(topiaConfiguration)); + properties.put(AvailableSettings.DIALECT, getHibernateDialect(topiaConfiguration)); // Connection pool if (topiaConfiguration.isConnectionPoolingEnabled()) { @@ -131,7 +130,7 @@ public class HibernateProvider { properties.put(AvailableSettings.C3P0_MAX_SIZE, topiaConfiguration.getConnectionPoolMaxSize()); } - properties.put(Environment.HBM2DDL_AUTO, "validate"); + properties.put(AvailableSettings.HBM2DDL_AUTO, "validate"); // TODO brendan 27/11/14 check if C3P0 in classpath ? @@ -145,7 +144,7 @@ public class HibernateProvider { } public static String getHibernateDialect(TopiaConfiguration topiaConfiguration) { - String hibernateDialect = topiaConfiguration.getHibernateExtraConfiguration().get(Environment.DIALECT); + String hibernateDialect = topiaConfiguration.getHibernateExtraConfiguration().get(AvailableSettings.DIALECT); if (hibernateDialect == null) { hibernateDialect = guessHibernateDialect(topiaConfiguration.getJdbcConnectionUrl(), topiaConfiguration.getJdbcDriverClass().getName()); } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java index 6532300..0c344b3 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/TopiaConnectionProvider.java @@ -27,6 +27,7 @@ package org.nuiton.topia.persistence.internal; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; +import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Environment; import org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; @@ -122,17 +123,17 @@ public class TopiaConnectionProvider implements ConnectionProvider, Configurable @Override public void configure(Map configurationValues) throws HibernateException { - poolSize = ConfigurationHelper.getInt(Environment.POOL_SIZE, configurationValues, 20); //default pool size 20 + poolSize = ConfigurationHelper.getInt(AvailableSettings.POOL_SIZE, configurationValues, 20); //default pool size 20 if (log.isDebugEnabled()) { log.debug("Connection pool size: " + poolSize); } - autocommit = ConfigurationHelper.getBoolean(Environment.AUTOCOMMIT, configurationValues); + autocommit = ConfigurationHelper.getBoolean(AvailableSettings.AUTOCOMMIT, configurationValues); if (log.isDebugEnabled()) { log.debug("autocommit mode: " + autocommit); } - isolation = ConfigurationHelper.getInteger(Environment.ISOLATION, configurationValues); + isolation = ConfigurationHelper.getInteger(AvailableSettings.ISOLATION, configurationValues); if (isolation != null) { if (log.isDebugEnabled()) { log.debug("JDBC isolation level: " + @@ -140,12 +141,12 @@ public class TopiaConnectionProvider implements ConnectionProvider, Configurable } } - String driverClass = ConfigurationHelper.getString(Environment.DRIVER, configurationValues); + String driverClass = ConfigurationHelper.getString(AvailableSettings.DRIVER, configurationValues); if (driverClass == null) { if (log.isWarnEnabled()) { log.warn("no JDBC Driver class was specified by property " + - Environment.DRIVER); + AvailableSettings.DRIVER); } } else { try { @@ -162,9 +163,9 @@ public class TopiaConnectionProvider implements ConnectionProvider, Configurable } } - url = (String) configurationValues.get(Environment.URL); + url = (String) configurationValues.get(AvailableSettings.URL); if (url == null) { - String msg = "JDBC URL was not specified by property " + Environment.URL; + String msg = "JDBC URL was not specified by property " + AvailableSettings.URL; if (log.isErrorEnabled()) { log.error(msg); } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java index ef86846..27f86a0 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java @@ -34,8 +34,8 @@ import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.hibernate.dialect.Dialect; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.mapping.PersistentClass; @@ -314,10 +314,10 @@ public class TopiaUtil { public static void warnOnAutomaticSchemaOperationRisk(Configuration configuration) { if (log.isWarnEnabled()) { - String hbm2ddl = configuration.getProperties().getProperty(Environment.HBM2DDL_AUTO); + String hbm2ddl = configuration.getProperties().getProperty(AvailableSettings.HBM2DDL_AUTO); if (ImmutableSet.of("update", "create", "create-drop").contains(hbm2ddl)) { log.warn(String.format("Be careful, you are about to let Hibernate automatically create or update " + - "your database schema. [%s=%s]", Environment.HBM2DDL_AUTO, hbm2ddl)); + "your database schema. [%s=%s]", AvailableSettings.HBM2DDL_AUTO, hbm2ddl)); } } @@ -480,7 +480,7 @@ public class TopiaUtil { * @return schema name */ public static String getSchemaName(Configuration config) { - return config.getProperty(Environment.DEFAULT_SCHEMA); + return config.getProperty(AvailableSettings.DEFAULT_SCHEMA); } public static Map<String, Object> convertPropertiesArrayToMap(Object... propertyNamesAndValues) throws IllegalArgumentException { diff --git a/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java b/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java index 3dd89bf..cdfca09 100644 --- a/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java +++ b/topia-service-migration/src/main/java/org/nuiton/topia/migration/TopiaMigrationEngine.java @@ -30,8 +30,8 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Session; +import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; -import org.hibernate.cfg.Environment; import org.nuiton.topia.migration.mappings.TMSVersion; import org.nuiton.topia.migration.mappings.TMSVersionHibernateDao; import org.nuiton.topia.persistence.TopiaApplicationContext; @@ -601,7 +601,7 @@ public class TopiaMigrationEngine implements TopiaMigrationService { // Get a new Configuration instance (not initialized) Configuration applicationHibernateConfiguration = hibernateProvider.newHibernateConfiguration(); - applicationHibernateConfiguration.getProperties().remove(Environment.HBM2DDL_AUTO); // Make sure schema is not created by Hibernate + applicationHibernateConfiguration.getProperties().remove(AvailableSettings.HBM2DDL_AUTO); // Make sure schema is not created by Hibernate applicationHibernateConfiguration.buildMappings(); boolean result = TopiaUtil.isSchemaEmpty(applicationHibernateConfiguration); @@ -631,11 +631,11 @@ public class TopiaMigrationEngine implements TopiaMigrationService { Properties prop = new Properties(); - prop.put(Environment.URL, topiaConfiguration.getJdbcConnectionUrl()); - prop.put(Environment.USER, topiaConfiguration.getJdbcConnectionUser()); - prop.put(Environment.PASS, topiaConfiguration.getJdbcConnectionPassword()); - prop.put(Environment.DRIVER, topiaConfiguration.getJdbcDriverClass().getName()); - prop.put(Environment.DIALECT, HibernateProvider.getHibernateDialect(topiaConfiguration)); + prop.put(AvailableSettings.URL, topiaConfiguration.getJdbcConnectionUrl()); + prop.put(AvailableSettings.USER, topiaConfiguration.getJdbcConnectionUser()); + prop.put(AvailableSettings.PASS, topiaConfiguration.getJdbcConnectionPassword()); + prop.put(AvailableSettings.DRIVER, topiaConfiguration.getJdbcDriverClass().getName()); + prop.put(AvailableSettings.DIALECT, HibernateProvider.getHibernateDialect(topiaConfiguration)); Configuration result = new Configuration(); result.setProperties(prop); -- 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 3e5ee7d6bd377387435d72430f6edcc9cc8b0e44 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 30 15:31:55 2014 +0100 Deprecate TopiaH2Util and move API to JdbcH2Helper --- .../topia/persistence/jdbc/JdbcH2Helper.java | 59 ++++++++++++++++++++++ .../nuiton/topia/persistence/util/TopiaH2Util.java | 3 +- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java index 1eabbe6..e4d1daf 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/jdbc/JdbcH2Helper.java @@ -1,8 +1,17 @@ package org.nuiton.topia.persistence.jdbc; +import org.apache.commons.io.IOUtils; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.zip.GZIPInputStream; public class JdbcH2Helper extends JdbcHelper { @@ -26,4 +35,54 @@ public class JdbcH2Helper extends JdbcHelper { } } + /** + * Backup database in gzip compressed file. + * + * @param file file to write backup + * @param compress if true then use gzip to compress file + */ + public void backup(File file, boolean compress) { + String options = ""; + if (compress) { + options += " COMPRESSION GZIP"; + } + runUpdate("SCRIPT TO '" + file.getAbsolutePath() + "'" + options); + } + + /** + * Read database from gzip compressed file + * + * @param file the source file to use for restore + */ + public void restore(File file) throws FileNotFoundException { + String options = ""; + InputStream in = null; + try { + in = new BufferedInputStream(new FileInputStream(file)); + in.mark(2); + // read header to see if is compressed file + int b = in.read(); + // redundant cast : int magic = ((int) in.read() << 8) | b; + int magic = in.read() << 8 | b; + in.reset(); + if (magic == GZIPInputStream.GZIP_MAGIC) { + options += " COMPRESSION GZIP"; + } + in.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + IOUtils.closeQuietly(in); + } + runUpdate("RUNSCRIPT FROM '" + file.getAbsolutePath() + "'" + options); + } + + public void clear(boolean dropDatabase) { + String sql = "DROP ALL OBJECTS"; + if (dropDatabase) { + sql += " DELETE FILES"; + } + runUpdate(sql); + } + } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java index 323703e..53af068 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaH2Util.java @@ -36,8 +36,9 @@ import java.util.zip.GZIPInputStream; /** * @author Arnaud Thimel (Code Lutin) + * @deprecated use {@link org.nuiton.topia.persistence.jdbc.JdbcH2Helper} out of the hibernate session */ -// TODO brendan 16/12/14 move +@Deprecated public class TopiaH2Util { protected TopiaFiresSupport firesSupport; -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm