branch develop updated (f49fa82 -> 31d2f93)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git from f49fa82 [jgitflow-maven-plugin]Updating develop poms back to pre merge state new b5c7069 Big connections leak :( (Fixes #4137) new 31d2f93 remove deprecated hiernate logs in tests 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 31d2f930539fb174545123936cbdc0ac5fc27b11 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:47:25 2017 +0100 remove deprecated hiernate logs in tests commit b5c7069dce466121db79febf3a8dd9e0439f0c1e Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:47:12 2017 +0100 Big connections leak :( (Fixes #4137) Summary of changes: topia-it/src/test/resources/log4j.properties | 2 + .../internal/AbstractTopiaApplicationContext.java | 23 +++-- .../persistence/internal/HibernateProvider.java | 32 +++---- .../src/test/resources/log4j.properties | 2 +- .../topia/migration/TopiaMigrationEngine.java | 97 ++-------------------- .../src/test/resources/log4j.properties | 1 + .../src/test/resources/log4j.properties | 1 + 7 files changed, 47 insertions(+), 111 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 develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit b5c7069dce466121db79febf3a8dd9e0439f0c1e Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:47:12 2017 +0100 Big connections leak :( (Fixes #4137) --- .../internal/AbstractTopiaApplicationContext.java | 23 +++-- .../persistence/internal/HibernateProvider.java | 32 +++---- .../topia/migration/TopiaMigrationEngine.java | 97 ++-------------------- 3 files changed, 42 insertions(+), 110 deletions(-) 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 66c2960..d3c7133 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 @@ -31,6 +31,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.HibernateException; +import org.hibernate.SessionFactory; import org.hibernate.boot.Metadata; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; @@ -364,9 +365,14 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence // AThimel 14/06/14 getHibernateConfiguration() may create the schema, prefer using newHibernateConfiguration() which doesn't Configuration configuration = getHibernateProvider().newHibernateConfiguration(); configuration.getProperties().put(AvailableSettings.HBM2DDL_AUTO, "none"); - Metadata metaData = getHibernateProvider().newMetaData(configuration); - boolean result = TopiaUtil.isSchemaEmpty(configuration, metaData); - return result; + SessionFactory sessionFactory = hibernateProvider.newSessionFactory(configuration); + try { + Metadata metaData = getHibernateProvider().newMetaData(configuration, sessionFactory); + boolean result = TopiaUtil.isSchemaEmpty(configuration, metaData); + return result; + } finally { + sessionFactory.close(); + } } @Override @@ -394,9 +400,14 @@ public abstract class AbstractTopiaApplicationContext<K extends TopiaPersistence topiaFiresSupport.firePreCreateSchema(this); Configuration configuration = getHibernateProvider().newHibernateConfiguration(); configuration.getProperties().remove(AvailableSettings.HBM2DDL_AUTO); - Metadata metadata = getHibernateProvider().newMetaData(configuration); - new SchemaExport().execute(targetTypes, SchemaExport.Action.CREATE, metadata); - topiaFiresSupport.firePostCreateSchema(this); + SessionFactory sessionFactory = getHibernateProvider().newSessionFactory(configuration); + try { + Metadata metadata = getHibernateProvider().newMetaData(configuration, sessionFactory); + new SchemaExport().execute(targetTypes, SchemaExport.Action.CREATE, metadata); + topiaFiresSupport.firePostCreateSchema(this); + } finally { + sessionFactory.close(); + } } catch (HibernateException eee) { throw new TopiaException(String.format("Could not create schema for reason: %s", eee.getMessage()), eee); } 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 bc1667f..c0d5ed9 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 @@ -213,45 +213,45 @@ public class HibernateProvider { // DB2 if (jdbcConfigurationBuilder.isDb2Url(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=DB2")) { + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=DB2")) { guessedHibernateDialect = DB2Dialect.class.getName(); // Derby } else if (jdbcConfigurationBuilder.isDerbyUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Derby")) { + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Derby")) { guessedHibernateDialect = DerbyDialect.class.getName(); // HSQLDB } else if (jdbcConfigurationBuilder.isHsqlDbUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=HSQLDB")) { + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=HSQLDB")) { guessedHibernateDialect = HSQLDialect.class.getName(); // MySQL } else if (jdbcConfigurationBuilder.isMysqlUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MySQL")) { + || jdbcConfigurationBuilder.isMariaDbUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isGoogleAppEngineUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MySQL")) { guessedHibernateDialect = MySQL5Dialect.class.getName(); // Oracle } else if (jdbcConfigurationBuilder.isOracleUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Oracle")) { + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=Oracle")) { guessedHibernateDialect = Oracle10gDialect.class.getName(); // PostgreSQL } else if (jdbcConfigurationBuilder.isPostgreSqlUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=PostgreSQL")) { + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=PostgreSQL")) { guessedHibernateDialect = PostgreSQL9Dialect.class.getName(); // MS SQLServer } else if (jdbcConfigurationBuilder.isJtdsUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MSSQLServer")) { + || jdbcConfigurationBuilder.isSqlServerUrl(jdbcConnectionUrl) + || jdbcConfigurationBuilder.isH2Url(jdbcConnectionUrl) && jdbcConnectionUrl.contains("MODE=MSSQLServer")) { guessedHibernateDialect = SQLServer2012Dialect.class.getName(); // SQLite } else if (jdbcConfigurationBuilder.isSqliteUrl(jdbcConnectionUrl) - || jdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { + || jdbcConfigurationBuilder.isSqlDroidUrl(jdbcConnectionUrl)) { guessedHibernateDialect = null; // H2 @@ -397,18 +397,18 @@ public class HibernateProvider { public Metadata getMetaData() { if (metaData == null) { - metaData = newMetaData(getHibernateConfiguration()); + metaData = newMetaData(getHibernateConfiguration(), getSessionFactory()); } return metaData; } - public Metadata newMetaData(Configuration configuration) { - return newMetaData(configuration, (Set) entityClasses); + public Metadata newMetaData(Configuration configuration, SessionFactory sessionFactory) { + return newMetaData(configuration, sessionFactory, (Set) entityClasses); } - public Metadata newMetaData(Configuration configuration, Collection<Class<?>> entityClasses) { + public Metadata newMetaData(Configuration configuration, SessionFactory sessionFactory, Collection<Class<?>> entityClasses) { - StandardServiceRegistry standardServiceRegistry = getStandardServiceRegistry(newSessionFactory(configuration)); + StandardServiceRegistry standardServiceRegistry = getStandardServiceRegistry(sessionFactory); MetadataSources sources = new MetadataSources(standardServiceRegistry); for (Class<?> persistanceClass : entityClasses) { String hbmXmlFile = persistanceClass.getName().replace('.', '/') + ".hbm.xml"; 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 b951d03..dc44058 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,6 +30,7 @@ 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.SessionFactory; import org.hibernate.boot.Metadata; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; @@ -130,62 +131,9 @@ public class TopiaMigrationEngine implements TopiaMigrationService { */ protected boolean showProgression; + protected SessionFactory sessionFactory; protected Metadata metaData; -// /** -// * delegate context listener. -// */ -// protected final TopiaSchemaListener contextListener; -// -// /** -// * delgate transaction listener -// */ -// protected final TopiaTransactionVetoable transactionVetoable; - - public TopiaMigrationEngine() { - - // comment everything, should be done in a common way in topia -// contextListener = new TopiaContextAdapter() { -// -// @Override -// public void postCreateSchema(TopiaContextEvent event) { -// if (log.isDebugEnabled()) { -// log.debug("postCreateSchema event called : will save version in database"); -// } -// saveApplicationVersion(); -// } -// -// @Override -// public void postUpdateSchema(TopiaContextEvent event) { -// if (log.isDebugEnabled()) { -// log.debug("postUpdateSchema event called : will save version in database"); -// } -// saveApplicationVersion(); -// } -// -// @Override -// public void postRestoreSchema(TopiaContextEvent event) { -// if (log.isDebugEnabled()) { -// log.debug("postRestoreSchema event detected, redo, schema migration"); -// } -// runSchemaMigration(); -// } -// }; -// -// transactionVetoable = new TopiaTransactionVetoable() { -// @Override -// public void beginTransaction(TopiaTransactionEvent event) { -// -// TopiaPersistenceContext context = event.getSource(); -// -// // add topia context listener -// context.getTopiaFiresSupport().addTopiaSchemaListener(contextListener); -// -// } -// }; - - } - //-------------------------------------------------------------------------- //-- TopiaService implementation //-------------------------------------------------------------------------- @@ -235,24 +183,15 @@ public class TopiaMigrationEngine implements TopiaMigrationService { HibernateProvider hibernateProvider = ((AbstractTopiaApplicationContext) applicationContext).getHibernateProvider(); - metaData = hibernateProvider.newMetaData(versionConfiguration, Collections.<Class<?>>singleton(TMSVersion.class)); + + sessionFactory = hibernateProvider.newSessionFactory(versionConfiguration); + + metaData = hibernateProvider.newMetaData(versionConfiguration,sessionFactory, Collections.<Class<?>>singleton(TMSVersion.class)); if (applicationContext.getConfiguration().isInitSchema() && TopiaUtil.isSchemaEmpty(versionConfiguration, metaData)) { TMSVersionHibernateDao.createTMSSchema(metaData); } -// if (!migrateOnInit) { -// -// // Lazy migration run, registering listeners -// if (log.isDebugEnabled()) { -// log.debug("No migration on init. Registering TopiaSchemaListener and TopiaTransactionVetoable to let " + -// "migration run when necessary"); -// } -// topiaApplicationContext.addTopiaSchemaListener(contextListener); -// topiaApplicationContext.addTopiaTransactionVetoable(transactionVetoable); -// -// } - init = true; if (log.isDebugEnabled()) { @@ -461,26 +400,6 @@ public class TopiaMigrationEngine implements TopiaMigrationService { log.debug("Detected version = " + dbVersion); } -// boolean createTable = !versionTableExist; -// // update version even if database has not been migrated -// // only case that database doesn't exist match this -// if (createTable) { -// // si la base n'etait pas versionnee, la table version n'existe pas -// // creation -// if (log.isDebugEnabled()) { -// log.debug("Adding tms_version table"); -// } -// -// // creer le schema en base -// // dans la configuration versionConfiguration, il n'y a que la table version -// TMSVersionHibernateDao.createTMSSchema(versionConfiguration); -// -// if (log.isDebugEnabled()) { -// log.debug("Table for " + TMSVersion.class.getSimpleName() + " created"); -// } -// } - - TopiaUtil.runInSession(versionConfiguration, new Function<Session, TMSVersion>() { @Override @@ -652,7 +571,9 @@ public class TopiaMigrationEngine implements TopiaMigrationService { @Override public void close() { - // nothing to do + if (sessionFactory!=null) { + sessionFactory.close(); + } } } -- 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 develop in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit 31d2f930539fb174545123936cbdc0ac5fc27b11 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 18 19:47:25 2017 +0100 remove deprecated hiernate logs in tests --- topia-it/src/test/resources/log4j.properties | 2 ++ topia-service-flyway/src/test/resources/log4j.properties | 2 +- topia-service-migration/src/test/resources/log4j.properties | 1 + topia-service-replication/src/test/resources/log4j.properties | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/topia-it/src/test/resources/log4j.properties b/topia-it/src/test/resources/log4j.properties index e764078..6debfb4 100644 --- a/topia-it/src/test/resources/log4j.properties +++ b/topia-it/src/test/resources/log4j.properties @@ -33,3 +33,5 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n log4j.logger.org.nuiton.topia=INFO #log4j.logger.org.nuiton.topia.it.legacy.topiatest=DEBUG log4j.logger.org.nuiton.topia.persistence.util=INFO +log4j.logger.org.hibernate.orm.deprecation=ERROR + diff --git a/topia-service-flyway/src/test/resources/log4j.properties b/topia-service-flyway/src/test/resources/log4j.properties index 8bf849c..7828f98 100644 --- a/topia-service-flyway/src/test/resources/log4j.properties +++ b/topia-service-flyway/src/test/resources/log4j.properties @@ -29,5 +29,5 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n # package level log4j.logger.org.nuiton.topia=TRACE #log4j.logger.org.nuiton.topia.migration=DEBUG - +log4j.logger.org.hibernate.orm.deprecation=ERROR #log4j.logger.org.flywaydb.core.internal.dbsupport.SqlScript=DEBUG diff --git a/topia-service-migration/src/test/resources/log4j.properties b/topia-service-migration/src/test/resources/log4j.properties index b747372..84f12e0 100644 --- a/topia-service-migration/src/test/resources/log4j.properties +++ b/topia-service-migration/src/test/resources/log4j.properties @@ -32,3 +32,4 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n # package level log4j.logger.org.nuiton.topia=INFO #log4j.logger.org.nuiton.topia.migration=DEBUG +log4j.logger.org.hibernate.orm.deprecation=ERROR \ No newline at end of file diff --git a/topia-service-replication/src/test/resources/log4j.properties b/topia-service-replication/src/test/resources/log4j.properties index db1b488..3ad45ec 100644 --- a/topia-service-replication/src/test/resources/log4j.properties +++ b/topia-service-replication/src/test/resources/log4j.properties @@ -33,3 +33,4 @@ log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n log4j.logger.org.nuiton.topia=INFO #log4j.logger.org.nuiton.topia.persistence.util=DEBUG #log4j.logger.org.nuiton.topia.replication=DEBUG +log4j.logger.org.hibernate.orm.deprecation=ERROR \ No newline at end of file -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm