This is an automated email from the git hooks/post-receive script. New commit to branch feature/3666 in repository topia. See http://git.nuiton.org/topia.git commit 07436039f24e5f733a785be0725bc360a872cd99 Merge: 4ec9195 bb97226 Author: Eric Chatellier <eric.chatellier@gmail.com> Date: Sat Dec 5 23:06:54 2015 +0100 Fix migration service tests .../nuiton/topia/persistence/util/TopiaUtil.java | 25 ++++++++++++++-------- .../topia/migration/TopiaMigrationEngineTest.java | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --cc topia-persistence/src/main/java/org/nuiton/topia/persistence/util/TopiaUtil.java index 297b587,68a1107..e1eab79 --- 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 @@@ -15,11 -15,11 +15,17 @@@ import java.util.regex.Pattern import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; ++import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.Metadata; ++import org.hibernate.boot.SessionFactoryBuilder; ++import org.hibernate.boot.internal.SessionFactoryBuilderImpl; ++import org.hibernate.boot.registry.StandardServiceRegistry; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; ++import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.cfg.AvailableSettings; ++import org.hibernate.cfg.Configuration; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; @@@ -31,6 -31,6 +37,7 @@@ import org.hibernate.service.ServiceReg import org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl; import org.hibernate.tool.schema.extract.spi.DatabaseInformation; import org.hibernate.tool.schema.extract.spi.TableInformation; ++import org.nuiton.topia.persistence.SchemaValidationTopiaException; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaNotFoundException; @@@ -437,23 -435,23 +444,21 @@@ public class TopiaUtil /* * Builds a new instance of Hibernate SessionFactory according to the given Hibernate Configuration -- * @param hibernateConfiguration an initialized Hibernate Configuration ++ * @param metadata an initialized Hibernate metadata * @return an instance of SessionFactory * -- public static SessionFactory newSessionFactory(Configuration hibernateConfiguration) { -- -- Properties properties = hibernateConfiguration.getProperties(); ++ public static SessionFactory newSessionFactory(Metadata metadata) { // Use the next 2 lines if bootstrap customization is needed (classloader, autoclose, ...) // {@see org.hibernate.boot.registry.internal.BootstrapServiceRegistryImpl) // BootstrapServiceRegistry bootstrap = new BootstrapServiceRegistryBuilder().build(); // StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(bootstrap); -- StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); -- StandardServiceRegistry standardServiceRegistry = builder.applySettings(properties).build(); ++ //StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder(); ++ SessionFactoryBuilder builder = new SessionFactoryBuilderImpl((MetadataImplementor)metadata); SessionFactory result; try { -- result = hibernateConfiguration.buildSessionFactory(standardServiceRegistry); ++ result = builder.build(); } catch (HibernateException e) { SchemaValidationTopiaException.throwIfHibernateExceptionIsAboutSchemaValidation(e); throw e; @@@ -476,7 -474,7 +481,7 @@@ SessionFactory sessionFactory = null; Session session = null; try { -- sessionFactory = metadata.getSessionFactoryBuilder().build(); ++ sessionFactory = metadata.buildSessionFactory(); session = sessionFactory.openSession(); session.getTransaction().begin(); @@@ -497,9 -495,9 +502,11 @@@ if (session != null && session.isOpen()) { session.close(); } ++ /* FIXME echatellier 20151205 closing sessionFactory will close serviceRegistry because ++ * the current only child (sessionFactory) is closed, but this is not what we want if (sessionFactory != null && !sessionFactory.isClosed()) { sessionFactory.close(); -- } ++ }*/ } } diff --cc topia-service-migration/src/test/java/org/nuiton/topia/migration/TopiaMigrationEngineTest.java index bb3cfae,bb3cfae..bb28bb2 --- 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 @@@ -153,7 -153,7 +153,7 @@@ public class TopiaMigrationEngineTest persistenceContext.close(); Assert.fail("Validation should have failed"); } catch (SchemaValidationTopiaException e) { -- Assert.assertEquals("Missing column: name in H2.PUBLIC.B71", e.getMessage()); ++ Assert.assertEquals("Schema-validation: missing column [name] in table [b71]", e.getMessage()); } applicationContext.close(); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.