branch feature/2892 updated (87b6e04 -> f2169a5)
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 87b6e04 refs #2892 Generate ApplicationContext contructor based on TopiaConfiguration new f2169a5 fix build except migration engine test The 1 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 f2169a5464e13b2dbc8b225fa2a369c5be60fabf Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Dec 15 18:22:49 2014 +0100 fix build except migration engine test Summary of changes: .../nuiton/topia/it/TopiaConfigurationHelper.java | 126 ----------- .../org/nuiton/topia/it/TopiaSchemaHelper.java | 8 +- .../src/main/resources/TopiaContextImpl.properties | 39 ---- .../nuiton/topia/it/legacy/AbstractLegacyTest.java | 2 - .../org/nuiton/topia/it/legacy/TestHelper.java | 173 -------------- .../legacy/TopiaApplicationContextCacheTest.java | 206 ----------------- .../topia/it/legacy/TopiaItLegacyDatabase.java | 23 +- .../topia/it/legacy/TopiaJpaSupportTest.java | 11 +- .../it/legacy/evo3396/FetchPropertiesTest.java | 17 +- .../framework/TopiaConnectionProviderTest.java | 178 +++++++-------- .../framework/TopiaContextReplicateTest.java | 30 +-- .../topia/it/legacy/framework/TopiaUtilTest.java | 27 ++- .../topia/it/legacy/generator/TopiaTestCase.java | 4 +- .../persistence/EntityVisitorExportXmlTest.java | 4 +- .../topia/it/legacy/persistence/NaturalIdTest.java | 10 +- .../test/ano1882/DAOAbstractTransformerTest.java | 2 +- .../topia/it/legacy/topiatest/CascadeSaveTest.java | 2 +- .../nuiton/topia/it/legacy/topiatest/EnumTest.java | 4 +- .../topiatest/deletetest/DeleteEntityTest.java | 6 +- .../topia/it/mapping/AbstractMappingTest.java | 23 +- .../topia/it/mapping/TopiaItMappingDatabase.java | 101 --------- .../test1/BiDirectionalOneToManyRelationTest.java | 2 +- ...ectionalOneToManyRelationWithRoleNamedTest.java | 2 +- .../mapping/test1/SimpleOneToManyRelationTest.java | 2 +- .../SimpleOneToManyRelationWithRoleNamedTest.java | 2 +- .../test11/EntityWithBasicUniqueFieldsTest.java | 2 +- .../mapping/test11/SimpleManyToManyUniqueTest.java | 2 +- .../SimpleManyToManyWithRoleNamedUniqueTest.java | 2 +- .../mapping/test11/SimpleOneToManyUniqueTest.java | 2 +- .../SimpleOneToManyWithRoleNamedUniqueTest.java | 2 +- .../test12/EntityWithBasicNotNullFieldsTest.java | 2 +- .../it/mapping/test13/EntityWithNaturalIdTest.java | 2 +- .../mapping/test14/BidiAssociationClassTest.java | 2 +- .../test14/ManyToManyAssociationClassTest.java | 2 +- .../test14/OneToManyAssociationClassTest.java | 2 +- .../topia/it/mapping/test17/FixAno2342Test.java | 2 +- .../topia/it/mapping/test17/FixAno3280Test.java | 41 +++- .../test2/BiDirectionalManyToOneRelationTest.java | 2 +- ...ectionalManyToOneRelationWithRoleNamedTest.java | 2 +- .../mapping/test2/SimpleManyToOneRelationTest.java | 2 +- .../SimpleManyToOneRelationWithRoleNamedTest.java | 2 +- .../test3/BiDirectionalManyToManyRelationTest.java | 2 +- ...ctionalManyToManyRelationWithRoleNamedTest.java | 2 +- .../test3/SimpleManyToManyRelationTest.java | 2 +- .../SimpleManyToManyRelationWithRoleNamedTest.java | 2 +- .../it/mapping/test4/ElementCollectionTest.java | 2 +- .../BiDirectionalOneToManyCompositionTest.java | 2 +- .../it/mapping/test5/OneToManyCompositionTest.java | 2 +- .../mapping/test6/SimpleOneToManyIndexedTest.java | 2 +- .../SimpleOneToManyWithRoleNamedIndexedTest.java | 2 +- .../mapping/test7/SimpleOneToManyOrderByTest.java | 2 +- .../mapping/test7/SimpleOneToManyOrderedTest.java | 2 +- .../persistence/internal/EntityListenerTest.java | 14 +- .../topia/persistence/internal/TopiaDaoTest.java | 2 +- .../internal/TopiaSchemaCreationTest.java | 251 -------------------- .../topia/junit/AbstractDatabaseResource.java | 116 +--------- .../nuiton/topia/junit/ConfigurationHelper.java | 93 -------- .../topia/persistence/BeanTopiaConfiguration.java | 169 ++++++++++++++ .../persistence/TopiaConfigurationBuilder.java | 252 +++++---------------- .../internal/support/TopiaServiceSupportImpl.java | 8 +- .../persistence/TopiaConfigurationBuilderTest.java | 3 + .../topia/migration/TopiaMigrationEngineTest.java | 218 ++++++++---------- .../AbstractTopiaReplicationServiceTest.java | 15 +- .../replication/TopiaReplicationOperationTest.java | 52 +---- .../TopiaReplicationServiceImplAllTest.java | 57 +---- .../TopiaReplicationServiceImplTest.java | 59 +---- 66 files changed, 621 insertions(+), 1785 deletions(-) delete mode 100644 topia-it/src/main/java/org/nuiton/topia/it/TopiaConfigurationHelper.java delete mode 100644 topia-it/src/main/resources/TopiaContextImpl.properties delete mode 100644 topia-it/src/test/java/org/nuiton/topia/it/legacy/TestHelper.java delete mode 100644 topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaApplicationContextCacheTest.java delete mode 100644 topia-it/src/test/java/org/nuiton/topia/it/mapping/TopiaItMappingDatabase.java delete mode 100644 topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaSchemaCreationTest.java delete mode 100644 topia-junit/src/main/java/org/nuiton/topia/junit/ConfigurationHelper.java create mode 100644 topia-persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java -- 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 f2169a5464e13b2dbc8b225fa2a369c5be60fabf Author: Brendan Le Ny <bleny@codelutin.com> Date: Mon Dec 15 18:22:49 2014 +0100 fix build except migration engine test --- .../nuiton/topia/it/TopiaConfigurationHelper.java | 126 ----------- .../org/nuiton/topia/it/TopiaSchemaHelper.java | 8 +- .../src/main/resources/TopiaContextImpl.properties | 39 ---- .../nuiton/topia/it/legacy/AbstractLegacyTest.java | 2 - .../org/nuiton/topia/it/legacy/TestHelper.java | 173 -------------- .../legacy/TopiaApplicationContextCacheTest.java | 206 ----------------- .../topia/it/legacy/TopiaItLegacyDatabase.java | 23 +- .../topia/it/legacy/TopiaJpaSupportTest.java | 11 +- .../it/legacy/evo3396/FetchPropertiesTest.java | 17 +- .../framework/TopiaConnectionProviderTest.java | 178 +++++++-------- .../framework/TopiaContextReplicateTest.java | 30 +-- .../topia/it/legacy/framework/TopiaUtilTest.java | 27 ++- .../topia/it/legacy/generator/TopiaTestCase.java | 4 +- .../persistence/EntityVisitorExportXmlTest.java | 4 +- .../topia/it/legacy/persistence/NaturalIdTest.java | 10 +- .../test/ano1882/DAOAbstractTransformerTest.java | 2 +- .../topia/it/legacy/topiatest/CascadeSaveTest.java | 2 +- .../nuiton/topia/it/legacy/topiatest/EnumTest.java | 4 +- .../topiatest/deletetest/DeleteEntityTest.java | 6 +- .../topia/it/mapping/AbstractMappingTest.java | 23 +- .../topia/it/mapping/TopiaItMappingDatabase.java | 101 --------- .../test1/BiDirectionalOneToManyRelationTest.java | 2 +- ...ectionalOneToManyRelationWithRoleNamedTest.java | 2 +- .../mapping/test1/SimpleOneToManyRelationTest.java | 2 +- .../SimpleOneToManyRelationWithRoleNamedTest.java | 2 +- .../test11/EntityWithBasicUniqueFieldsTest.java | 2 +- .../mapping/test11/SimpleManyToManyUniqueTest.java | 2 +- .../SimpleManyToManyWithRoleNamedUniqueTest.java | 2 +- .../mapping/test11/SimpleOneToManyUniqueTest.java | 2 +- .../SimpleOneToManyWithRoleNamedUniqueTest.java | 2 +- .../test12/EntityWithBasicNotNullFieldsTest.java | 2 +- .../it/mapping/test13/EntityWithNaturalIdTest.java | 2 +- .../mapping/test14/BidiAssociationClassTest.java | 2 +- .../test14/ManyToManyAssociationClassTest.java | 2 +- .../test14/OneToManyAssociationClassTest.java | 2 +- .../topia/it/mapping/test17/FixAno2342Test.java | 2 +- .../topia/it/mapping/test17/FixAno3280Test.java | 41 +++- .../test2/BiDirectionalManyToOneRelationTest.java | 2 +- ...ectionalManyToOneRelationWithRoleNamedTest.java | 2 +- .../mapping/test2/SimpleManyToOneRelationTest.java | 2 +- .../SimpleManyToOneRelationWithRoleNamedTest.java | 2 +- .../test3/BiDirectionalManyToManyRelationTest.java | 2 +- ...ctionalManyToManyRelationWithRoleNamedTest.java | 2 +- .../test3/SimpleManyToManyRelationTest.java | 2 +- .../SimpleManyToManyRelationWithRoleNamedTest.java | 2 +- .../it/mapping/test4/ElementCollectionTest.java | 2 +- .../BiDirectionalOneToManyCompositionTest.java | 2 +- .../it/mapping/test5/OneToManyCompositionTest.java | 2 +- .../mapping/test6/SimpleOneToManyIndexedTest.java | 2 +- .../SimpleOneToManyWithRoleNamedIndexedTest.java | 2 +- .../mapping/test7/SimpleOneToManyOrderByTest.java | 2 +- .../mapping/test7/SimpleOneToManyOrderedTest.java | 2 +- .../persistence/internal/EntityListenerTest.java | 14 +- .../topia/persistence/internal/TopiaDaoTest.java | 2 +- .../internal/TopiaSchemaCreationTest.java | 251 -------------------- .../topia/junit/AbstractDatabaseResource.java | 116 +--------- .../nuiton/topia/junit/ConfigurationHelper.java | 93 -------- .../topia/persistence/BeanTopiaConfiguration.java | 169 ++++++++++++++ .../persistence/TopiaConfigurationBuilder.java | 252 +++++---------------- .../internal/support/TopiaServiceSupportImpl.java | 8 +- .../persistence/TopiaConfigurationBuilderTest.java | 3 + .../topia/migration/TopiaMigrationEngineTest.java | 218 ++++++++---------- .../AbstractTopiaReplicationServiceTest.java | 15 +- .../replication/TopiaReplicationOperationTest.java | 52 +---- .../TopiaReplicationServiceImplAllTest.java | 57 +---- .../TopiaReplicationServiceImplTest.java | 59 +---- 66 files changed, 621 insertions(+), 1785 deletions(-) diff --git a/topia-it/src/main/java/org/nuiton/topia/it/TopiaConfigurationHelper.java b/topia-it/src/main/java/org/nuiton/topia/it/TopiaConfigurationHelper.java deleted file mode 100644 index 6c3659f..0000000 --- a/topia-it/src/main/java/org/nuiton/topia/it/TopiaConfigurationHelper.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.nuiton.topia.it; - -/* - * #%L - * ToPIA :: IT - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.hibernate.cfg.Environment; -import org.nuiton.topia.it.legacy.TopiaItLegacyEntityEnum; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import org.nuiton.topia.junit.ConfigurationHelper; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -/** - * Created on 11/22/13. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.0 - */ -public class TopiaConfigurationHelper extends ConfigurationHelper { - - /** Logger. */ - private static final Log log = LogFactory.getLog(TopiaConfigurationHelper.class); - - public static final String DEFAULT_CONFIGURATION_LOCATION = "/TopiaContextImpl.properties"; - -// public static AbstractTopiaApplicationContext initTopiaContext(File testDirectory, -// String dbname) -// throws IOException, TopiaNotFoundException { -// -// -// AbstractTopiaApplicationContext topiaContext = initTopiaContext( -// testDirectory, -// DEFAULT_CONFIGURATION_LOCATION, -// dbname -// ); -// return topiaContext; -// } -// -// public static AbstractTopiaApplicationContext initTopiaContext(File testDirectory, -// String dbPropertiesPath, -// String dbname) -// throws IOException, TopiaNotFoundException { -// -// Properties configuration = initTopiaContextConfiguration( -// testDirectory, -// dbPropertiesPath, -// dbname); -// return TopiaContextFactory.getContext(configuration); -// } - - public static Properties initTopiaContextConfiguration(File testDirectory, - String dbPropertiesPath, - String dbname) - throws IOException { - - Properties configuration = loadHibernateConfiguration(dbPropertiesPath); - - // make sure we always use a different directory - - String dbPath = getDbName(testDirectory, dbname); - - if (log.isInfoEnabled()) { - log.info("dbPath = " + dbPath); - } - configuration.setProperty( - Environment.URL, -// "hibernate.connection.url", - "jdbc:h2:file:" + dbPath); - - return configuration; - } - - public static Properties loadHibernateConfiguration(String dbPropertiesPath) throws IOException { - InputStream stream = TopiaConfigurationHelper.class.getResourceAsStream(dbPropertiesPath); - - Properties configuration = new Properties(); - - configuration.load(stream); - configuration.setProperty( - TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, - TopiaItLegacyEntityEnum.getImplementationClassesAsString()); - return configuration; - } - - public static String getDbName(File testDirectory, String dbname) { - return new File(testDirectory, - dbname + '_' + System.nanoTime()).getAbsolutePath(); - } - - public static Properties initTopiaContextConfiguration(File testDirectory, - String dbname) - throws IOException { - - return initTopiaContextConfiguration( - testDirectory, - DEFAULT_CONFIGURATION_LOCATION, - dbname - ); - } -} diff --git a/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java b/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java index d6e91c9..cdb1ee4 100644 --- a/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java +++ b/topia-it/src/main/java/org/nuiton/topia/it/TopiaSchemaHelper.java @@ -27,10 +27,12 @@ package org.nuiton.topia.it; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaConfigurationConstants; +import org.nuiton.topia.persistence.TopiaException; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; +import java.sql.SQLException; import java.sql.Statement; import java.util.Map; @@ -76,7 +78,7 @@ public class TopiaSchemaHelper { * @throws Exception if could not create schema * @since 3.0 */ - public static void createSchema(Map<String, String> config, String schemaName) throws Exception { + public static void createSchema(Map<String, String> config, String schemaName) { Connection connection = null; CallableStatement callableStatement = null; try { @@ -87,6 +89,8 @@ public class TopiaSchemaHelper { config.get(TopiaConfigurationConstants.CONFIG_PASS)); callableStatement = connection.prepareCall("create schema " + schemaName); callableStatement.execute(); + } catch (SQLException e) { + throw new TopiaException(e); } finally { closeQuietly(callableStatement); closeQuietly(connection); @@ -99,7 +103,7 @@ public class TopiaSchemaHelper { * @param config database connection configuration * @throws Exception if could not create schemas on database */ - public static void createMappingDataBaseSchemas(Map<String, String> config) throws Exception { + public static void createMappingDataBaseSchemas(Map<String, String> config) { createSchema(config, "A"); createSchema(config, "B"); diff --git a/topia-it/src/main/resources/TopiaContextImpl.properties b/topia-it/src/main/resources/TopiaContextImpl.properties deleted file mode 100644 index b1be55c..0000000 --- a/topia-it/src/main/resources/TopiaContextImpl.properties +++ /dev/null @@ -1,39 +0,0 @@ -### -# #%L -# ToPIA :: IT -# $Id$ -# $HeadURL$ -# %% -# Copyright (C) 2004 - 2014 CodeLutin -# %% -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Lesser Public License for more details. -# -# You should have received a copy of the GNU General Lesser Public -# License along with this program. If not, see -# <http://www.gnu.org/licenses/lgpl-3.0.html>. -# #L% -### -# Proprietes par defaut pour une base de donnees de type H2 -hibernate.hbm2ddl.auto=update -hibernate.show_sql=false - -hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.username=sa -hibernate.connection.password= -hibernate.connection.driver_class=org.h2.Driver -# tchemit 2010-11-28 : comment this line, each test must define his own db path -#hibernate.connection.url=jdbc:h2:file:target/surefire-workdir/h2data - -# AThimel 16/12/2013 : Uncomment the next line to tests the ToPIA connection provider -#hibernate.connection.provider_class=org.nuiton.topia.persistence.internal.TopiaConnectionProvider - -topia.persistence.initSchema=false - diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/AbstractLegacyTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/AbstractLegacyTest.java index 4945194..aadf8d7 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/AbstractLegacyTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/AbstractLegacyTest.java @@ -23,8 +23,6 @@ package org.nuiton.topia.it.legacy; */ import org.junit.Rule; -import org.nuiton.topia.it.mapping.TopiaItMappingDatabase; -import org.nuiton.topia.it.mapping.TopiaItMappingTopiaPersistenceContext; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaException; diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TestHelper.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TestHelper.java deleted file mode 100644 index 0eae0a6..0000000 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TestHelper.java +++ /dev/null @@ -1,173 +0,0 @@ -package org.nuiton.topia.it.legacy; - -/* - * #%L - * ToPIA :: IT - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.apache.commons.io.FileUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.hibernate.cfg.Environment; -import org.junit.Ignore; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaApplicationContextCache; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import org.nuiton.topia.persistence.TopiaNotFoundException; -import org.nuiton.util.FileUtil; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import com.google.common.base.Function; - -/** - * Helper for all topia tests. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 2.5 - */ -@Ignore -// this is not a test :) -public class TestHelper { - - private static final Log log = LogFactory.getLog(TestHelper.class); - - protected static File testBasedir; - - protected static File targetdir; - - protected static File dirDatabase; - - public static final String DEFAULT_CONFIGURATION_LOCATION = "/TopiaContextImpl.properties"; - - public static File getTestWorkdir() { - if (testBasedir == null) { - String base = System.getProperty("java.io.tmpdir"); - if (base == null || base.isEmpty()) { - base = new File("").getAbsolutePath(); - } - testBasedir = new File(base); - log.info("basedir for test " + testBasedir); - } - return testBasedir; - } - - public static File getTestBasedir(Class<?> testClass) throws IOException { - File dir = getTestWorkdir(); - File result = new File(dir, testClass.getName()); - if (result.exists()) { - - // when calling this method (always in a BeforeClass method), we wants - // to clean the directory, this is a new build - FileUtils.deleteDirectory(result); - } - - // always create the directory - FileUtil.createDirectoryIfNecessary(result); - return result; - } - - protected static final Function<Properties,TopiaApplicationContext> CREATE_TOPIA_TEST_CONTEXT = new Function<Properties, TopiaApplicationContext>() { - @Override - public TopiaApplicationContext apply(Properties input) { - return new TopiaItLegacyTopiaApplicationContext(input); - } - }; - - public static TopiaApplicationContext initTopiaContext(File testDirectory, - String dbname) - throws IOException, TopiaNotFoundException { - - - TopiaApplicationContext topiaContext = initTopiaContext( - testDirectory, - DEFAULT_CONFIGURATION_LOCATION, - dbname - ); - return topiaContext; - } - - public static TopiaApplicationContext initTopiaContext(File testDirectory, - String dbPropertiesPath, - String dbname) - throws IOException, TopiaNotFoundException { - - Properties configuration = initTopiaContextConfiguration( - testDirectory, - dbPropertiesPath, - dbname); - return TopiaApplicationContextCache.getContext(configuration, CREATE_TOPIA_TEST_CONTEXT); - } - - public static Properties initTopiaContextConfiguration(File testDirectory, - String dbPropertiesPath, - String dbname) - throws IOException { - - Properties configuration = loadHibernateConfiguration(dbPropertiesPath); - - // make sure we always use a different directory - - String dbPath = getDbName(testDirectory, dbname); - - if (log.isInfoEnabled()) { - log.info("dbPath = " + dbPath); - } - configuration.setProperty( - Environment.URL, -// "hibernate.connection.url", - "jdbc:h2:file:" + dbPath); - - return configuration; - } - - public static Properties loadHibernateConfiguration(String dbPropertiesPath) throws IOException { - InputStream stream = TestHelper.class.getResourceAsStream(dbPropertiesPath); - - Properties configuration = new Properties(); - - configuration.load(stream); - configuration.setProperty( - TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, - TopiaItLegacyEntityEnum.getImplementationClassesAsString()); - return configuration; - } - - public static String getDbName(File testDirectory, String dbname) { - return new File(testDirectory, - dbname + '_' + System.nanoTime()).getAbsolutePath(); - } - - public static Properties initTopiaContextConfiguration(File testDirectory, - String dbname) - throws IOException { - - return initTopiaContextConfiguration( - testDirectory, - DEFAULT_CONFIGURATION_LOCATION, - dbname - ); - } -} diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaApplicationContextCacheTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaApplicationContextCacheTest.java deleted file mode 100644 index 3169f16..0000000 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaApplicationContextCacheTest.java +++ /dev/null @@ -1,206 +0,0 @@ -package org.nuiton.topia.it.legacy; - -/* - * #%L - * ToPIA :: IT - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import com.google.common.base.Function; -import org.apache.commons.lang3.reflect.FieldUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.topia.junit.ConfigurationHelper; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaApplicationContextCache; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * Created: 8 mai 2010 - * - * @author fdesbois <fdesbois@codelutin.com> - */ -public class TopiaApplicationContextCacheTest { - - private static final Log log = - LogFactory.getLog(TopiaApplicationContextCacheTest.class); - - protected static final Function<Properties,TopiaApplicationContext> CREATE_TOPIA_TEST_CONTEXT = new Function<Properties, TopiaApplicationContext>() { - @Override - public TopiaApplicationContext apply(Properties input) { - return new TopiaItLegacyTopiaApplicationContext(input); - } - }; - - protected static Map<Properties, TopiaApplicationContext> contextCache; - - protected static File testBasedir; - - protected Properties properties; - - @BeforeClass - public static void init() throws IOException, IllegalAccessException { - - testBasedir = ConfigurationHelper.getTestSpecificDirectory(TopiaApplicationContextCacheTest.class, "dummy"); - Field field = FieldUtils.getField(TopiaApplicationContextCache.class, "contextCache", true); - contextCache = (Map<Properties, TopiaApplicationContext>) field.get(null); - } - - @Before - public void setUp() throws Exception { - properties = new Properties(); - properties.setProperty("prop1", "value1"); - properties.setProperty("prop2", "value2"); - properties.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "false"); - contextCache.clear(); - } - - @Test - public void testGetRegisteredContextUrls() throws Exception { - log.debug("## testGetRegisteredContextUrls"); - - /** PREPARE DATA **/ - String databaseName = "h2data-testGetContextByProperties"; - File dbDirectory = new File(testBasedir, databaseName); - String url = "jdbc:h2:file:" + dbDirectory; - properties.setProperty("hibernate.connection.url", url); - - TopiaItLegacyTopiaApplicationContext test = new TopiaItLegacyTopiaApplicationContext(properties); - contextCache.put(properties, test); - - /** EXEC METHOD **/ - List<String> result = TopiaApplicationContextCache.getRegisteredContextUrls(); - Assert.assertEquals(1, result.size()); - Assert.assertEquals(url, result.get(0)); - } - - @Test - public void testRemoveContext() throws Exception { - log.debug("## testRemoveContext"); - - /** PREPARE DATA **/ - TopiaItLegacyTopiaApplicationContext test = new TopiaItLegacyTopiaApplicationContext(properties); - contextCache.put(properties, test); - - /** EXEC METHOD **/ - TopiaApplicationContextCache.removeContext(test); - Assert.assertEquals(0, contextCache.size()); - } - - //@Test - - public void testGetContext() throws Exception { - // TODO-fdesbois-20100508 : only used TopiaUtil.getProperties, need tests for this method - } - - @Test - public void testGetContextByProperties() throws Exception { - log.debug("## testGetContextByProperties"); - - /** PREPARE DATA **/ - Properties propertiesParent = new Properties(properties); - propertiesParent.setProperty("prop3", "value3"); - - Properties propertiesAll = new Properties(); - propertiesAll.setProperty("prop1", "value1"); - propertiesAll.setProperty("prop2", "value2"); - propertiesAll.setProperty("prop3", "value3"); - propertiesAll.setProperty(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "false"); - - /** EXEC METHOD **/ - - log.info("test 0 : add null properties"); - try { - TopiaApplicationContextCache.getContext(null, CREATE_TOPIA_TEST_CONTEXT); - } catch (Exception eee) { - Assert.assertEquals(NullPointerException.class, eee.getClass()); - } - - log.info("test 1 : add new properties, will instantiate a new" + - " TopiaContext"); - TopiaApplicationContext test1 = TopiaApplicationContextCache.getContext(propertiesParent, CREATE_TOPIA_TEST_CONTEXT); - Assert.assertNotNull(test1); - Assert.assertEquals(1, contextCache.size()); - - log.info("test 2 : with same properties, will retrieve existing" + - " TopiaContext"); - TopiaApplicationContext test2 = TopiaApplicationContextCache.getContext(propertiesParent, CREATE_TOPIA_TEST_CONTEXT); - Assert.assertEquals(test1, test2); - Assert.assertEquals(1, contextCache.size()); - - log.info("test 3 : use other properties, will instantiate a different" + - "TopiaContext"); - TopiaApplicationContext test3 = TopiaApplicationContextCache.getContext(properties, CREATE_TOPIA_TEST_CONTEXT); - log.debug("cache size : " + contextCache.size()); - log.debug("result : " + test1); - log.debug("result3 : " + test3); - Assert.assertNotSame(test1, test3); - Assert.assertEquals(2, contextCache.size()); - - log.info("test 4 : use other properties but equivalent to existing " + - "TopiaContext"); - // Test flating of properties - TopiaApplicationContext test4 = TopiaApplicationContextCache.getContext(propertiesAll, CREATE_TOPIA_TEST_CONTEXT); - Assert.assertEquals(test1, test4); - Assert.assertEquals(2, contextCache.size()); - - log.info("test5a : reinstantiate new TopiaContext after one is closed."); - // TEST - // Strange behavior the closed flag of context stay true if - // hibernateFactory is not loaded from real properties -// test1.close(); -// Assert.assertTrue(test1.isClosed()); - - // Add properties for Hibernate to have real opened topiaContext - String databaseName = "h2data-testGetContextByPropertie"; - File f = new File(testBasedir, databaseName); - - properties.setProperty("hibernate.connection.username", "sa"); - properties.setProperty("hibernate.connection.password", ""); - properties.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); - properties.setProperty("hibernate.connection.url", - "jdbc:h2:file:" + f.getAbsolutePath()); - - - TopiaApplicationContext test5 = TopiaApplicationContextCache.getContext(properties, CREATE_TOPIA_TEST_CONTEXT); - Assert.assertNotSame(test1, test5); - Assert.assertEquals(3, contextCache.size()); - - log.info("test5b : beginTransaction to properly close the context"); - test5.newPersistenceContext(); - test5.close(); - - TopiaApplicationContext test5b = TopiaApplicationContextCache.getContext(properties, CREATE_TOPIA_TEST_CONTEXT); - Assert.assertNotSame(test5, test5b); - Assert.assertEquals(3, contextCache.size()); - } -} diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaItLegacyDatabase.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaItLegacyDatabase.java index 01759be..2b7accd 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaItLegacyDatabase.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaItLegacyDatabase.java @@ -25,8 +25,7 @@ package org.nuiton.topia.it.legacy; */ import org.nuiton.topia.junit.AbstractDatabaseResource; - -import java.util.Properties; +import org.nuiton.topia.persistence.TopiaConfiguration; /** * Put this class as a Rule in test to obtain a new isolated db for each test. @@ -55,25 +54,9 @@ import java.util.Properties; */ public class TopiaItLegacyDatabase extends AbstractDatabaseResource<TopiaItLegacyTopiaPersistenceContext, TopiaItLegacyTopiaApplicationContext> { - public static final String DEFAULT_CONFIGURATION_LOCATION = "/TopiaContextImpl.properties"; - - public TopiaItLegacyDatabase() { - this(DEFAULT_CONFIGURATION_LOCATION); - } - - public TopiaItLegacyDatabase(String configurationPath) { - super(configurationPath); - } - @Override - protected TopiaItLegacyTopiaApplicationContext createApplicationContext(Properties dbConfiguration) { - return new TopiaItLegacyTopiaApplicationContext(dbConfiguration); - } - - @Override - protected String getImplementationClassesAsString() { - return TopiaItLegacyEntityEnum.getImplementationClassesAsString(); + protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + return new TopiaItLegacyTopiaApplicationContext(topiaConfiguration); } } - diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaJpaSupportTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaJpaSupportTest.java index 48250df..f1ac6f3 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaJpaSupportTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/TopiaJpaSupportTest.java @@ -24,27 +24,26 @@ package org.nuiton.topia.it.legacy; * #L% */ +import com.google.common.collect.Maps; import org.apache.commons.lang3.reflect.FieldUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.topia.persistence.support.TopiaJpaSupport; import org.nuiton.topia.it.legacy.topiatest.Address; import org.nuiton.topia.it.legacy.topiatest.AddressTopiaDao; import org.nuiton.topia.it.legacy.topiatest.Gender; import org.nuiton.topia.it.legacy.topiatest.Personne; import org.nuiton.topia.it.legacy.topiatest.PersonneTopiaDao; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.internal.AbstractTopiaPersistenceContext; +import org.nuiton.topia.persistence.support.TopiaJpaSupport; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; -import com.google.common.collect.Maps; - /** * Tests the TopiaContext#find|findAll|findUnique methods * @@ -67,7 +66,7 @@ public class TopiaJpaSupportTest { @Before public void createCompanies() throws TopiaException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { - persistenceContext = db.beginTransaction(); + persistenceContext = db.newPersistenceContext(); Field field = FieldUtils.getField(AbstractTopiaPersistenceContext.class, "jpaSupport", true); jpaSupport = (TopiaJpaSupport) field.get(persistenceContext); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/evo3396/FetchPropertiesTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/evo3396/FetchPropertiesTest.java index 7eafb1c..61220c6 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/evo3396/FetchPropertiesTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/evo3396/FetchPropertiesTest.java @@ -22,10 +22,9 @@ package org.nuiton.topia.it.legacy.evo3396; * #L% */ -import java.util.Arrays; -import java.util.List; -import java.util.Set; - +import com.google.common.base.Function; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; import org.hibernate.LazyInitializationException; import org.junit.Assert; @@ -44,9 +43,9 @@ import org.nuiton.topia.persistence.TopiaException; import org.nuiton.util.pagination.PaginationParameter; import org.nuiton.util.pagination.PaginationResult; -import com.google.common.base.Function; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; +import java.util.Arrays; +import java.util.List; +import java.util.Set; /** * This test is about "addFetch" evolution http://nuiton.org/issues/3396 @@ -76,7 +75,7 @@ public class FetchPropertiesTest extends AbstractLegacyTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); companyDao = getDao(tx, Company.class); departmentDao = getDao(tx, Department.class); @@ -293,7 +292,7 @@ public class FetchPropertiesTest extends AbstractLegacyTest { } } - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); companyDao = getDao(tx, Company.class); PaginationResult<Company> companies2 = companyDao 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 0ed93fb..b6aa977 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,23 +24,7 @@ package org.nuiton.topia.it.legacy.framework; * #L% */ -import java.io.File; -import java.util.Locale; -import java.util.Properties; - -import org.junit.Assert; -import org.junit.Rule; -import org.junit.Test; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.internal.TopiaConnectionProvider; -import org.nuiton.topia.it.legacy.TopiaItLegacyDatabase; -import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaPersistenceContext; -import org.nuiton.topia.it.legacy.test.entities.Person; -import org.nuiton.topia.it.legacy.test.entities.PersonTopiaDao; -import org.nuiton.topia.it.legacy.topiatest.Personne; - -import static org.junit.Assert.assertNotNull; /** * To test the {@link TopiaConnectionProvider} and make sure all connections @@ -51,90 +35,90 @@ import static org.junit.Assert.assertNotNull; */ public class TopiaConnectionProviderTest { -// private static final Log log = -// LogFactory.getLog(TopiaConnectionProviderTest.class); - +//// private static final Log log = +//// LogFactory.getLog(TopiaConnectionProviderTest.class); +// public static final String TEST_URL = "testURL"; - - @Rule - public final TopiaItLegacyDatabase db = - new TopiaItLegacyDatabase("/TopiaConnectionProviderHardcoded.properties") { - - @Override - protected void onDbConfigurationCreate(Properties configuration, - File testdir, - String dbPath) { - - Assert.assertFalse(testdir.exists()); - - String dbPathFake = new File(testdir, "fake" + File.separator + "db").getAbsolutePath(); - - Assert.assertFalse(new File(dbPathFake).getParentFile().exists()); - - configuration.setProperty("dbPath", dbPath); - configuration.setProperty("dbPathFake", dbPathFake); - - // give the path where connection provider will create db - configuration.setProperty(TEST_URL, - "jdbc:h2:file:" + dbPath); - - // give a fake db path (we will make sure it is never create after hibernate usage). - configuration.setProperty(TopiaConfigurationConstants.CONFIG_URL, - "jdbc:h2:file:" + dbPathFake); - } - }; - - @Test - public void testWithHardcoded() throws Exception { - -// Properties dbProperties = TestHelper.loadHibernateConfiguration( -// "/TopiaConnectionProviderHardcoded.properties"); // -// File directory = new File(TestHelper.getDbName(testBasedir, "testWithHardcoded")); - - String dbPath = (String) db.getDbConfiguration().get("dbPath"); - String dbPathFake = (String) db.getDbConfiguration().get("dbPathFake"); - -// new File(directory, "real" + File.separator + "db").getAbsolutePath(); -// Assert.assertFalse(new File(dbPath).getParentFile().exists()); - -// String dbPathFake = new File(directory, "fake" + File.separator + "db").getAbsolutePath(); - +// @Rule +// public final TopiaItLegacyDatabase db = +// new TopiaItLegacyDatabase("/TopiaConnectionProviderHardcoded.properties") { +// +// @Override +// protected void onDbConfigurationCreate(Properties configuration, +// File testdir, +// String dbPath) { +// +// Assert.assertFalse(testdir.exists()); +// +// String dbPathFake = new File(testdir, "fake" + File.separator + "db").getAbsolutePath(); +// +// Assert.assertFalse(new File(dbPathFake).getParentFile().exists()); +// +// configuration.setProperty("dbPath", dbPath); +// configuration.setProperty("dbPathFake", dbPathFake); +// +// // give the path where connection provider will create db +// configuration.setProperty(TEST_URL, +// "jdbc:h2:file:" + dbPath); +// +// // give a fake db path (we will make sure it is never create after hibernate usage). +// configuration.setProperty(TopiaConfigurationConstants.CONFIG_URL, +// "jdbc:h2:file:" + dbPathFake); +// } +// }; +// +// @Test +// public void testWithHardcoded() throws Exception { +// +//// Properties dbProperties = TestHelper.loadHibernateConfiguration( +//// "/TopiaConnectionProviderHardcoded.properties"); +//// +//// File directory = new File(TestHelper.getDbName(testBasedir, "testWithHardcoded")); +// +// String dbPath = (String) db.getDbConfiguration().get("dbPath"); +// String dbPathFake = (String) db.getDbConfiguration().get("dbPathFake"); +// +//// new File(directory, "real" + File.separator + "db").getAbsolutePath(); +//// Assert.assertFalse(new File(dbPath).getParentFile().exists()); +// +//// String dbPathFake = new File(directory, "fake" + File.separator + "db").getAbsolutePath(); +// +//// Assert.assertFalse(new File(dbPathFake).getParentFile().exists()); +// +//// // give the path where connection provider will create db +//// dbProperties.setProperty(TEST_URL, "jdbc:h2:file:" + dbPath); +//// +//// // give a fake db path (we will make sure it is never create after hibernate usage). +//// dbProperties.setProperty(Environment.URL, "jdbc:h2:file:" + dbPathFake); +//// +//// root = TopiaContextFactory.getContext(dbProperties); +// +// Locale.setDefault(Locale.FRANCE); +// +// doStuffOnDb(); +// +// // the db file must have been created +// Assert.assertTrue(new File(dbPath).getParentFile().exists()); +// +// // make sure the fake db path was never used // Assert.assertFalse(new File(dbPathFake).getParentFile().exists()); - -// // give the path where connection provider will create db -// dbProperties.setProperty(TEST_URL, "jdbc:h2:file:" + dbPath); +// } // -// // give a fake db path (we will make sure it is never create after hibernate usage). -// dbProperties.setProperty(Environment.URL, "jdbc:h2:file:" + dbPathFake); +// private void doStuffOnDb() throws TopiaException { +// TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); // -// root = TopiaContextFactory.getContext(dbProperties); - - Locale.setDefault(Locale.FRANCE); - - doStuffOnDb(); - - // the db file must have been created - Assert.assertTrue(new File(dbPath).getParentFile().exists()); - - // make sure the fake db path was never used - Assert.assertFalse(new File(dbPathFake).getParentFile().exists()); - } - - private void doStuffOnDb() throws TopiaException { - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); - - try { - PersonTopiaDao dao = transaction.getPersonDao(); - - Person personne = dao.create(Personne.PROPERTY_NAME, "Jack Bauer"); - transaction.commit(); - String idPersonne = personne.getTopiaId(); - assertNotNull(idPersonne); - - transaction.commit(); - } finally { - transaction.close(); - } - } +// try { +// PersonTopiaDao dao = transaction.getPersonDao(); +// +// Person personne = dao.create(Personne.PROPERTY_NAME, "Jack Bauer"); +// transaction.commit(); +// String idPersonne = personne.getTopiaId(); +// assertNotNull(idPersonne); +// +// transaction.commit(); +// } finally { +// transaction.close(); +// } +// } } 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 457928d..0216417 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 @@ -24,19 +24,19 @@ package org.nuiton.topia.it.legacy.framework; * #L% */ -import java.io.File; -import java.util.Properties; - import org.junit.Assert; import org.junit.Rule; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; import org.nuiton.topia.it.legacy.TopiaItLegacyDatabase; +import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaPersistenceContext; import org.nuiton.topia.it.legacy.test.entities.Person; import org.nuiton.topia.it.legacy.test.entities.PersonTopiaDao; 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. @@ -51,10 +51,11 @@ public class TopiaContextReplicateTest { new TopiaItLegacyDatabase() { @Override - protected void onDbConfigurationCreate(Properties configuration, File testDir, String dbPath) { - configuration.setProperty( - TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath + "-source"); - + protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + BeanTopiaConfiguration configuration = + TopiaConfigurationBuilder.copyOf(topiaConfiguration); + configuration.setJdbcConnectionUrl(topiaConfiguration.getJdbcConnectionUrl() + "-source"); + return super.createApplicationContext(configuration); } }; @@ -63,10 +64,11 @@ public class TopiaContextReplicateTest { new TopiaItLegacyDatabase() { @Override - protected void onDbConfigurationCreate(Properties configuration, File testDir, String dbPath) { - configuration.setProperty( - TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath + "-target"); - + protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + BeanTopiaConfiguration configuration = + TopiaConfigurationBuilder.copyOf(topiaConfiguration); + configuration.setJdbcConnectionUrl(topiaConfiguration.getJdbcConnectionUrl() + "-target"); + return super.createApplicationContext(configuration); } }; @@ -96,7 +98,7 @@ public class TopiaContextReplicateTest { Person personSource, personTarget; Pet petSource, petTarget; - txSource = dbSource.beginTransaction(); + txSource = dbSource.newPersistenceContext(); daoSource = txSource.getPersonDao(); petDAOSource = txSource.getPetDao(); @@ -123,7 +125,7 @@ public class TopiaContextReplicateTest { Assert.assertEquals(1, personSource.sizePet()); Assert.assertEquals(petSource, personSource.getPet().iterator().next()); - txTarget = dbTarget.beginTransaction(); + txTarget = dbTarget.newPersistenceContext(); txSource.replicateEntity(txTarget, petSource); txSource.replicateEntity(txTarget, personSource); 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 4832fb9..3a275c6 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 @@ -24,16 +24,20 @@ package org.nuiton.topia.it.legacy.framework; * #L% */ -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import org.hibernate.cfg.Configuration; import org.junit.Rule; import org.junit.Test; import org.nuiton.topia.it.legacy.TopiaItLegacyDatabase; -import org.nuiton.topia.persistence.util.TopiaUtil; +import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; 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; +import java.util.regex.Pattern; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -51,7 +55,15 @@ public class TopiaUtilTest { protected static final String PERSON_ID2 = "org.nuiton.topia.it.legacy.topiatest.Personne#1226701039001#0.6502325993664999"; @Rule - public final TopiaItLegacyDatabase db = new TopiaItLegacyDatabase(); + public final TopiaItLegacyDatabase db = new TopiaItLegacyDatabase() { + + @Override + protected TopiaItLegacyTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + BeanTopiaConfiguration configuration = TopiaConfigurationBuilder.copyOf(topiaConfiguration); + configuration.setInitSchema(false); + return super.createApplicationContext(configuration); + } + }; @Test public void testGetTopiaIdPattern() throws Exception { @@ -88,14 +100,15 @@ public class TopiaUtilTest { @Test(expected = IllegalArgumentException.class) public void testIsSchemaExistFailed() throws Exception { - TopiaUtil.isSchemaExist(db.getHibernateCfg(), "fake"); + Configuration hibernateCfg = db.getApplicationContext().getHibernateProvider().getHibernateConfiguration(); + TopiaUtil.isSchemaExist(hibernateCfg, "fake"); } @Test public void testIsSchemaExist() throws Exception { String personClassName = PersonImpl.class.getName(); - Configuration hibernateCfg = db.getHibernateCfg(); + Configuration hibernateCfg = db.getApplicationContext().getHibernateProvider().getHibernateConfiguration(); // First, test before DB is created, the table should not exist assertFalse(TopiaUtil.isSchemaExist(hibernateCfg, personClassName)); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/generator/TopiaTestCase.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/generator/TopiaTestCase.java index 5372cbe..7987489 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/generator/TopiaTestCase.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/generator/TopiaTestCase.java @@ -115,7 +115,7 @@ public class TopiaTestCase { } // try { - TopiaItLegacyTopiaPersistenceContext newContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext newContext = db.newPersistenceContext(); CompanyTopiaDao companyDAO = newContext.getCompanyDao(); DepartmentTopiaDao departmentDAO = newContext.getDepartmentDao(); @@ -146,7 +146,7 @@ public class TopiaTestCase { companyDAO.update(company); newContext.commit(); - newContext = db.beginTransaction(); + newContext = db.newPersistenceContext(); companyDAO = newContext.getCompanyDao(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java index 170f5e3..60fc6a6 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/EntityVisitorExportXmlTest.java @@ -66,7 +66,7 @@ public class EntityVisitorExportXmlTest { @Before public void setUp() throws TopiaException { - TopiaItLegacyTopiaPersistenceContext newContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext newContext = db.newPersistenceContext(); try { // company CompanyTopiaDao companyDAO = newContext.getCompanyDao(); @@ -112,7 +112,7 @@ public class EntityVisitorExportXmlTest { @Test public void testExportXMLDepth() throws TopiaException { - TopiaItLegacyTopiaPersistenceContext context = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext context = db.newPersistenceContext(); CompanyTopiaDao companyDAO = context.getCompanyDao(); Company clCompany = companyDAO.forNameEquals("CodeLutin").findAnyOrNull(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/NaturalIdTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/NaturalIdTest.java index e57cbe9..3998880 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/NaturalIdTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/persistence/NaturalIdTest.java @@ -54,7 +54,7 @@ public class NaturalIdTest { @Test public void testCreateSucessfull() throws Exception { log.debug("Test naturalId : create succesfull"); - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); NaturalizedEntityTopiaDao dao = persistenceContext.getNaturalizedEntityDao(); @@ -75,7 +75,7 @@ public class NaturalIdTest { @Test public void testCreateFailed() throws Exception { log.debug("Test naturalId : create failed"); - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); NaturalizedEntityTopiaDao dao = persistenceContext.getNaturalizedEntityDao(); @@ -101,7 +101,7 @@ public class NaturalIdTest { public void testUpdateFailed() throws Exception { log.debug("Test naturalId : update failed"); - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); NaturalizedEntityTopiaDao dao = persistenceContext.getNaturalizedEntityDao(); @@ -123,7 +123,7 @@ public class NaturalIdTest { @Test public void testFindByNaturalId() throws Exception { log.debug("Test naturalId : findByNaturalId"); - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); NaturalizedEntityTopiaDao dao = @@ -141,7 +141,7 @@ public class NaturalIdTest { @Test public void testExistNaturalId() throws Exception { log.debug("Test naturalId : existNaturalId"); - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); NaturalizedEntityTopiaDao dao = diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/test/ano1882/DAOAbstractTransformerTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/test/ano1882/DAOAbstractTransformerTest.java index 1b5df7e..8508394 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/test/ano1882/DAOAbstractTransformerTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/test/ano1882/DAOAbstractTransformerTest.java @@ -38,7 +38,7 @@ public class DAOAbstractTransformerTest { @Test public void testAno1882() throws Exception { - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); FrenchCompanyTopiaDao dao = transaction.getFrenchCompanyDao(); SIRETTopiaDao siretDAO = transaction.getSIRETDao(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/CascadeSaveTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/CascadeSaveTest.java index 22d7447..b5366b4 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/CascadeSaveTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/CascadeSaveTest.java @@ -47,7 +47,7 @@ public class CascadeSaveTest { @Test public void testSaveCascade() { - TopiaItLegacyTopiaPersistenceContext persistenceContext = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext persistenceContext = db.newPersistenceContext(); CompanyTopiaDao companyDao = persistenceContext.getCompanyDao(); DepartmentTopiaDao departmentDao = persistenceContext.getDepartmentDao(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/EnumTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/EnumTest.java index f8bebce..8541da5 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/EnumTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/EnumTest.java @@ -50,7 +50,7 @@ public class EnumTest { */ @Test public void storeEntityWithEnumValue() throws TopiaException { - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); PersonneTopiaDao dao = transaction.getPersonneDao(); Personne personne = new PersonneImpl(); @@ -61,7 +61,7 @@ public class EnumTest { transaction.commit(); transaction.close(); - transaction = db.beginTransaction(); + transaction = db.newPersistenceContext(); dao = transaction.getPersonneDao(); dao.forTopiaIdEquals(topiaId).findUnique(); Assert.assertEquals(Gender.FEMALE, personne.getGender()); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/deletetest/DeleteEntityTest.java b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/deletetest/DeleteEntityTest.java index 31a9780..4193617 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/deletetest/DeleteEntityTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/legacy/topiatest/deletetest/DeleteEntityTest.java @@ -66,7 +66,7 @@ public class DeleteEntityTest { public void testDeleteEntityWithInheritance() throws TopiaException { log.debug("START TEST : testDeleteEntityWithInheritance"); - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); log.debug("DAO : PersonneDAO"); PersonneTopiaDao dao = transaction.getPersonneDao(); @@ -117,7 +117,7 @@ public class DeleteEntityTest { public void testDeleteEntityWithManyToManyRelation() throws TopiaException { log.debug("START TEST : testDeleteEntityWithManyToManyRelation"); - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); PersonneTopiaDao dao = transaction.getPersonneDao(); @@ -168,7 +168,7 @@ public class DeleteEntityTest { public void testIsPersisted() { log.debug("START TEST : testIsPersisted"); - TopiaItLegacyTopiaPersistenceContext transaction = db.beginTransaction(); + TopiaItLegacyTopiaPersistenceContext transaction = db.newPersistenceContext(); PersonneTopiaDao dao = transaction.getPersonneDao(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/AbstractMappingTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/AbstractMappingTest.java index e19b0e5..0acf2fc 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/AbstractMappingTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/AbstractMappingTest.java @@ -26,12 +26,17 @@ package org.nuiton.topia.it.mapping; */ import org.junit.Rule; - - +import org.nuiton.topia.it.TopiaSchemaHelper; +import org.nuiton.topia.junit.AbstractDatabaseResource; +import org.nuiton.topia.persistence.TopiaConfiguration; +import org.nuiton.topia.persistence.TopiaConfigurationConstants; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaException; +import java.util.HashMap; +import java.util.Map; + /** * Base test for all tests using the {@code mapping} model. @@ -42,7 +47,19 @@ import org.nuiton.topia.persistence.TopiaException; public abstract class AbstractMappingTest { @Rule - public final TopiaItMappingDatabase db = new TopiaItMappingDatabase(); + public final AbstractDatabaseResource<TopiaItMappingTopiaPersistenceContext, TopiaItMappingTopiaApplicationContext> db = + new AbstractDatabaseResource<TopiaItMappingTopiaPersistenceContext, TopiaItMappingTopiaApplicationContext>() { + + @Override + protected TopiaItMappingTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + Map<String, String> map = new HashMap<String, String>(); + map.put(TopiaConfigurationConstants.CONFIG_URL, topiaConfiguration.getJdbcConnectionUrl()); + map.put(TopiaConfigurationConstants.CONFIG_USER, topiaConfiguration.getJdbcConnectionUser()); + map.put(TopiaConfigurationConstants.CONFIG_PASS, topiaConfiguration.getJdbcConnectionPassword()); + TopiaSchemaHelper.createMappingDataBaseSchemas(map); + return new TopiaItMappingTopiaApplicationContext(topiaConfiguration); + } + }; protected <E extends TopiaEntity, D extends TopiaDao<E>> D getDao( TopiaItMappingTopiaPersistenceContext tx, Class<E> entityType) throws TopiaException { diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/TopiaItMappingDatabase.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/TopiaItMappingDatabase.java deleted file mode 100644 index 9154443..0000000 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/TopiaItMappingDatabase.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.nuiton.topia.it.mapping; - -/* - * #%L - * ToPIA :: IT - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.h2.Driver; -import org.nuiton.topia.it.TopiaSchemaHelper; -import org.nuiton.topia.junit.AbstractDatabaseResource; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import org.nuiton.topia.persistence.TopiaException; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -/** - * Concrete topia database for {@code mapping} model. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.0 - */ -public class TopiaItMappingDatabase extends AbstractDatabaseResource<TopiaItMappingTopiaPersistenceContext, TopiaItMappingTopiaApplicationContext> { - - public static final String DEFAULT_CONFIGURATION_LOCATION = "/TopiaContextImpl.properties"; - - public TopiaItMappingDatabase() { - this(DEFAULT_CONFIGURATION_LOCATION); - } - - public TopiaItMappingDatabase(String configurationPath) { - super(configurationPath); - } - - @Override - protected TopiaItMappingTopiaApplicationContext createApplicationContext(Properties dbConfiguration) { - try { - Map<String, String> map = new HashMap<String, String>(); - map.put(TopiaConfigurationConstants.CONFIG_URL, dbConfiguration.getProperty(TopiaConfigurationConstants.CONFIG_URL)); - map.put(TopiaConfigurationConstants.CONFIG_USER, dbConfiguration.getProperty(TopiaConfigurationConstants.CONFIG_USER)); - map.put(TopiaConfigurationConstants.CONFIG_PASS, dbConfiguration.getProperty(TopiaConfigurationConstants.CONFIG_PASS)); - TopiaSchemaHelper.createMappingDataBaseSchemas(map); - } catch (Exception e) { - throw new TopiaException("Could not create schemas...", e); - } - return new TopiaItMappingTopiaApplicationContext(dbConfiguration); - } - - @Override - protected String getImplementationClassesAsString() { - return TopiaItMappingEntityEnum.getImplementationClassesAsString(); - } - - /** - * Tests if a given table exists. WARNING : this may not work is the tableName is not exactly the same. - * <p/> - * This method is designed for H2 only. - */ - public boolean isTableExist(String schema, String tableName) throws SQLException { - Connection connection = null; - try { - DriverManager.registerDriver(new Driver()); - connection = DriverManager.getConnection( - getDbConfiguration().getProperty(TopiaConfigurationConstants.CONFIG_URL), - getDbConfiguration().getProperty(TopiaConfigurationConstants.CONFIG_USER), - getDbConfiguration().getProperty(TopiaConfigurationConstants.CONFIG_PASS)); - ResultSet rset = connection.getMetaData().getTables(null, schema, tableName.toUpperCase(), null); - boolean result = rset.next(); - return result; - } finally { - if (connection != null && !connection.isClosed()) { - connection.close(); - } - } - } - -} diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationTest.java index 5b348d3..98858ca 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationTest.java @@ -49,7 +49,7 @@ public class BiDirectionalOneToManyRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A12.class); bDAO = getDao(tx, B12.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationWithRoleNamedTest.java index a7c1a3c..8b2b379 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/BiDirectionalOneToManyRelationWithRoleNamedTest.java @@ -50,7 +50,7 @@ public class BiDirectionalOneToManyRelationWithRoleNamedTest extends AbstractMap @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A13.class); bDAO = getDao(tx, B13.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java index 488ef38..1d66094 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationTest.java @@ -50,7 +50,7 @@ public class SimpleOneToManyRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A1.class); bDAO = getDao(tx, B1.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java index 7c672f9..fa23389 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test1/SimpleOneToManyRelationWithRoleNamedTest.java @@ -50,7 +50,7 @@ public class SimpleOneToManyRelationWithRoleNamedTest extends AbstractMappingTes @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11.class); bDAO = getDao(tx, B11.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/EntityWithBasicUniqueFieldsTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/EntityWithBasicUniqueFieldsTest.java index 8f0c352..d6d4b2e 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/EntityWithBasicUniqueFieldsTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/EntityWithBasicUniqueFieldsTest.java @@ -48,7 +48,7 @@ public class EntityWithBasicUniqueFieldsTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11E.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyUniqueTest.java index abe1ee9..d5a4d12 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyUniqueTest.java @@ -53,7 +53,7 @@ public class SimpleManyToManyUniqueTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11C.class); bDAO = getDao(tx, B11C.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java index 6c17d81..30d9956 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleManyToManyWithRoleNamedUniqueTest.java @@ -54,7 +54,7 @@ public class SimpleManyToManyWithRoleNamedUniqueTest extends AbstractMappingTest @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11D.class); bDAO = getDao(tx, B11D.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java index 0d2b3fe..895ae65 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyUniqueTest.java @@ -53,7 +53,7 @@ public class SimpleOneToManyUniqueTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11A.class); bDAO = getDao(tx, B11A.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java index f19a9e2..0645271 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test11/SimpleOneToManyWithRoleNamedUniqueTest.java @@ -54,7 +54,7 @@ public class SimpleOneToManyWithRoleNamedUniqueTest extends AbstractMappingTest @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A11B.class); bDAO = getDao(tx, B11B.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test12/EntityWithBasicNotNullFieldsTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test12/EntityWithBasicNotNullFieldsTest.java index 09addee..6216d83 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test12/EntityWithBasicNotNullFieldsTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test12/EntityWithBasicNotNullFieldsTest.java @@ -50,7 +50,7 @@ public class EntityWithBasicNotNullFieldsTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A12A.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test13/EntityWithNaturalIdTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test13/EntityWithNaturalIdTest.java index 7a9584c..2cf9339 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test13/EntityWithNaturalIdTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test13/EntityWithNaturalIdTest.java @@ -50,7 +50,7 @@ public class EntityWithNaturalIdTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A13A.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/BidiAssociationClassTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/BidiAssociationClassTest.java index da3081b..773ee58 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/BidiAssociationClassTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/BidiAssociationClassTest.java @@ -51,7 +51,7 @@ public class BidiAssociationClassTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A14A.class); bDAO = getDao(tx, B14A.class); assocDAO = getDao(tx, Assoc14A.class); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/ManyToManyAssociationClassTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/ManyToManyAssociationClassTest.java index 63e80c2..87583a3 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/ManyToManyAssociationClassTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/ManyToManyAssociationClassTest.java @@ -51,7 +51,7 @@ public class ManyToManyAssociationClassTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A14D.class); bDAO = getDao(tx, B14D.class); assocDAO = getDao(tx, Assoc14D.class); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/OneToManyAssociationClassTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/OneToManyAssociationClassTest.java index eb047e4..7ca5265 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/OneToManyAssociationClassTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test14/OneToManyAssociationClassTest.java @@ -50,7 +50,7 @@ public class OneToManyAssociationClassTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A14C.class); bDAO = getDao(tx, B14C.class); assocDAO = getDao(tx, Assoc14C.class); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno2342Test.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno2342Test.java index f37070c..0edd70a 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno2342Test.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno2342Test.java @@ -40,7 +40,7 @@ public class FixAno2342Test extends AbstractMappingTest { @Test public void testColumnsExists() { - TopiaItMappingTopiaPersistenceContext tx = db.beginTransaction(); + TopiaItMappingTopiaPersistenceContext tx = db.newPersistenceContext(); TopiaSqlSupport sqlSupport = tx.getSqlSupport(); diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno3280Test.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno3280Test.java index 8807373..f513c8c 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno3280Test.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test17/FixAno3280Test.java @@ -24,10 +24,15 @@ package org.nuiton.topia.it.mapping.test17; * #L% */ +import org.h2.Driver; import org.junit.Assert; import org.junit.Test; import org.nuiton.topia.it.mapping.AbstractMappingTest; +import org.nuiton.topia.persistence.TopiaConfiguration; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; import java.sql.SQLException; /** @@ -41,17 +46,37 @@ public class FixAno3280Test extends AbstractMappingTest { @Test public void testTablesExists() throws SQLException { - Assert.assertFalse("Should not have found table A.A", db.isTableExist("A", "A")); - Assert.assertFalse("Should not have found table B.B", db.isTableExist("B", "B")); - Assert.assertFalse("Should not have found table B.BB17", db.isTableExist("B", "BB17")); + Assert.assertTrue("Could not find table A.A", isTableExist("A", "A")); + Assert.assertTrue("Could not find table B.B", isTableExist("B", "B")); + Assert.assertTrue("Could not find table B.BB17", isTableExist("B", "BB17")); - // create db + } - db.beginTransaction(); + /** + * Tests if a given table exists. WARNING : this may not work is the tableName is not exactly the same. + * <p/> + * This method is designed for H2 only. + */ + // TODO brendan 12/12/14 move this generic code somewhere + public boolean isTableExist(String schema, String tableName) throws SQLException { - Assert.assertTrue("Could not find table A.A", db.isTableExist("A", "A")); - Assert.assertTrue("Could not find table B.B", db.isTableExist("B", "B")); - Assert.assertTrue("Could not find table B.BB17", db.isTableExist("B", "BB17")); + TopiaConfiguration configuration = db.getApplicationContext().getConfiguration(); + Connection connection = null; + try { + DriverManager.registerDriver(new Driver()); + connection = DriverManager.getConnection( + configuration.getJdbcConnectionUrl(), + configuration.getJdbcConnectionUser(), + configuration.getJdbcConnectionPassword()); + ResultSet rset = connection.getMetaData().getTables(null, schema, tableName.toUpperCase(), null); + boolean result = rset.next(); + return result; + } finally { + if (connection != null && !connection.isClosed()) { + connection.close(); + } + } } + } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationTest.java index 6f82c8e..616d375 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationTest.java @@ -50,7 +50,7 @@ public class BiDirectionalManyToOneRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A22.class); bDAO = getDao(tx, B22.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationWithRoleNamedTest.java index b771537..2faae15 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/BiDirectionalManyToOneRelationWithRoleNamedTest.java @@ -51,7 +51,7 @@ public class BiDirectionalManyToOneRelationWithRoleNamedTest extends AbstractMap @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A23.class); bDAO = getDao(tx, B23.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationTest.java index 14dba00..261fc54 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationTest.java @@ -50,7 +50,7 @@ public class SimpleManyToOneRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A2.class); bDAO = getDao(tx, B2.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationWithRoleNamedTest.java index 86dd640..3f7c6e1 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test2/SimpleManyToOneRelationWithRoleNamedTest.java @@ -50,7 +50,7 @@ public class SimpleManyToOneRelationWithRoleNamedTest extends AbstractMappingTes @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A21.class); bDAO = getDao(tx, B21.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationTest.java index c40e34c..7efcb3c 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationTest.java @@ -50,7 +50,7 @@ public class BiDirectionalManyToManyRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A32.class); bDAO = getDao(tx, B32.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationWithRoleNamedTest.java index 4979b7e..73a2551 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/BiDirectionalManyToManyRelationWithRoleNamedTest.java @@ -50,7 +50,7 @@ public class BiDirectionalManyToManyRelationWithRoleNamedTest extends AbstractMa @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A33.class); bDAO = getDao(tx, B33.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationTest.java index 482de71..a22a37f 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationTest.java @@ -50,7 +50,7 @@ public class SimpleManyToManyRelationTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A3.class); bDAO = getDao(tx, B3.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationWithRoleNamedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationWithRoleNamedTest.java index f9007af..3728ae0 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationWithRoleNamedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test3/SimpleManyToManyRelationWithRoleNamedTest.java @@ -50,7 +50,7 @@ public class SimpleManyToManyRelationWithRoleNamedTest extends AbstractMappingTe @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A31.class); bDAO = getDao(tx, B31.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test4/ElementCollectionTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test4/ElementCollectionTest.java index 4a40726..34ffd72 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test4/ElementCollectionTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test4/ElementCollectionTest.java @@ -54,7 +54,7 @@ public class ElementCollectionTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A4.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/BiDirectionalOneToManyCompositionTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/BiDirectionalOneToManyCompositionTest.java index 874f75c..461950f 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/BiDirectionalOneToManyCompositionTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/BiDirectionalOneToManyCompositionTest.java @@ -50,7 +50,7 @@ public class BiDirectionalOneToManyCompositionTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A51.class); bDAO = getDao(tx, B51.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java index f706539..27c3beb 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test5/OneToManyCompositionTest.java @@ -50,7 +50,7 @@ public class OneToManyCompositionTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A5.class); bDAO = getDao(tx, B5.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java index 0e5e072..fae0310 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyIndexedTest.java @@ -53,7 +53,7 @@ public class SimpleOneToManyIndexedTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A6.class); bDAO = getDao(tx, B6.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java index 86fbc49..f732a85 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test6/SimpleOneToManyWithRoleNamedIndexedTest.java @@ -53,7 +53,7 @@ public class SimpleOneToManyWithRoleNamedIndexedTest extends AbstractMappingTest @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A61.class); bDAO = getDao(tx, B61.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java index 0764225..a46254a 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderByTest.java @@ -55,7 +55,7 @@ public class SimpleOneToManyOrderByTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A71.class); bDAO = getDao(tx, B71.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java index 04200bf..cc11f4c 100644 --- a/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/it/mapping/test7/SimpleOneToManyOrderedTest.java @@ -53,7 +53,7 @@ public class SimpleOneToManyOrderedTest extends AbstractMappingTest { @Before public void before() throws TopiaException { - tx = db.beginTransaction(); + tx = db.newPersistenceContext(); aDAO = getDao(tx, A7.class); bDAO = getDao(tx, B7.class); } diff --git a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/EntityListenerTest.java b/topia-it/src/test/java/org/nuiton/topia/persistence/internal/EntityListenerTest.java index b1a5fe9..ce110ee 100644 --- a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/EntityListenerTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/persistence/internal/EntityListenerTest.java @@ -24,10 +24,8 @@ package org.nuiton.topia.persistence.internal; * #L% */ -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.util.Set; - +import com.google.common.collect.Sets; +import org.junit.Assert; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -40,9 +38,9 @@ import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.event.TopiaEntityEvent; import org.nuiton.topia.persistence.event.TopiaEntityListener; -import com.google.common.collect.Sets; - -import org.junit.Assert; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.Set; /** * @author Arnaud Thimel (Code Lutin) @@ -59,7 +57,7 @@ public class EntityListenerTest { @Before public void setup() throws TopiaException { - context = db.beginTransaction(); + context = db.newPersistenceContext(); dao = context.getPersonDao(); } diff --git a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaDaoTest.java b/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaDaoTest.java index 32d9387..e2ace0b 100644 --- a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaDaoTest.java +++ b/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaDaoTest.java @@ -69,7 +69,7 @@ public class TopiaDaoTest { @Before public void setup() throws TopiaException { - context = db.beginTransaction(); + context = db.newPersistenceContext(); dao = context.getPersonDao(); } diff --git a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaSchemaCreationTest.java b/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaSchemaCreationTest.java deleted file mode 100644 index b17b99c..0000000 --- a/topia-it/src/test/java/org/nuiton/topia/persistence/internal/TopiaSchemaCreationTest.java +++ /dev/null @@ -1,251 +0,0 @@ -package org.nuiton.topia.persistence.internal; - -/* - * #%L - * ToPIA :: IT - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import com.google.common.collect.Maps; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.h2.Driver; -import org.hibernate.HibernateException; -import org.hibernate.dialect.H2Dialect; -import org.junit.Assert; -import org.junit.Test; -import org.nuiton.topia.it.TopiaSchemaHelper; -import org.nuiton.topia.it.mapping.TopiaItMappingTopiaApplicationContext; -import org.nuiton.topia.it.mapping.TopiaItMappingTopiaPersistenceContext; -import org.nuiton.topia.junit.ConfigurationHelper; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; - -import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.util.Map; - -/** - * @author Arnaud Thimel (Code Lutin) - */ -public class TopiaSchemaCreationTest { - - private static final Log log = LogFactory.getLog(TopiaSchemaCreationTest.class); - - /** - * Tests if a given table exists. WARNING : this may not work is the tableName is not exactly the same. - * - * This method is designed for H2 only. - */ - protected boolean isTableExist(Map<String, String> config, String schema, String tableName) throws Exception { - Connection connection = null; - try { - DriverManager.registerDriver(new Driver()); - connection = DriverManager.getConnection( - config.get(TopiaConfigurationConstants.CONFIG_URL), - config.get(TopiaConfigurationConstants.CONFIG_USER), - config.get(TopiaConfigurationConstants.CONFIG_PASS)); - ResultSet rset = connection.getMetaData().getTables(null, schema, tableName.toUpperCase(), null); - boolean result = rset.next(); - return result; - } finally { - if (connection != null && !connection.isClosed()) { - connection.close(); - } - } - } - - @Test - public void testInitSchemaByTopia() throws Exception { - - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaSchemaCreationTest.class, "testInitSchemaByTopia"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "true"); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - Assert.assertFalse(isTableExist(config, "A", "a")); - - TopiaSchemaHelper.createMappingDataBaseSchemas(config); - - // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertTrue(isTableExist(config, null, "a6")); - Assert.assertTrue(isTableExist(config, "A", "a")); - - TopiaItMappingTopiaPersistenceContext context = applicationContext.newPersistenceContext(); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertTrue(isTableExist(config, null, "a6")); - Assert.assertTrue(isTableExist(config, "A", "a")); - - context.close(); - applicationContext.close(); - } - - @Test - public void testInitSchemaByHibernate() throws Exception { - - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaSchemaCreationTest.class, "testInitSchemaByHibernate"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "update"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "false"); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - Assert.assertFalse(isTableExist(config, "a", "a")); - - TopiaSchemaHelper.createMappingDataBaseSchemas(config); - - // new application context will init database schema because of hibernate.hbm2ddl.auto=update - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - TopiaItMappingTopiaPersistenceContext context = applicationContext.newPersistenceContext(); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertTrue(isTableExist(config, null, "a6")); - Assert.assertTrue(isTableExist(config, "A", "a")); - - context.close(); - applicationContext.close(); - - - { // Try to validate schema - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - - // new application context will init database schema because of hibernate.hbm2ddl.auto=update - TopiaItMappingTopiaApplicationContext applicationContext2 = new TopiaItMappingTopiaApplicationContext(config); - - TopiaItMappingTopiaPersistenceContext context2 = applicationContext2.newPersistenceContext(); - - context2.close(); - applicationContext2.close(); - } - } - - @Test - public void testInitSchemaDisabled() throws Exception { - - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaSchemaCreationTest.class, "testInitSchemaDisabled"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); -// config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "false"); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - // Database schema won't be created because of topia.persistence.initSchema=false and hibernate.hbm2ddl.auto=none - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - TopiaItMappingTopiaPersistenceContext context = applicationContext.newPersistenceContext(); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - context.close(); - applicationContext.close(); - } - - @Test - public void testInitSchemaFailsBecauseOfValidate() throws Exception { - - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaSchemaCreationTest.class, "testInitSchemaFailsBecauseOfValidate"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "false"); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - // Database schema won't be created because of topia.persistence.initSchema=false and hibernate.hbm2ddl.auto=validate - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - try { - TopiaItMappingTopiaPersistenceContext context = applicationContext.newPersistenceContext(); - Assert.fail("Should have failed because of hibernate.hbm2ddl.auto=validate"); - } catch (HibernateException he) { - // Expected behavior - } - - Assert.assertFalse(isTableExist(config, null, "tms_version")); - Assert.assertFalse(isTableExist(config, null, "a6")); - - applicationContext.close(); - } - -} 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 c543625..f3439f1 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 @@ -24,22 +24,14 @@ package org.nuiton.topia.junit; * #L% */ -import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.hibernate.cfg.Configuration; import org.junit.rules.TestWatcher; import org.junit.runner.Description; -import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import org.nuiton.topia.persistence.internal.AbstractTopiaApplicationContext; -import org.nuiton.topia.persistence.internal.HibernateProvider; -import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.TopiaConfiguration; +import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.TopiaPersistenceContext; - -import java.io.File; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.util.Properties; +import org.nuiton.topia.persistence.internal.AbstractTopiaApplicationContext; /** * Put this class as a Rule in test to obtain a new isolated db for each test. @@ -73,117 +65,33 @@ public abstract class AbstractDatabaseResource<PersistenceContext extends TopiaP /** Logger. */ private static final Log log = LogFactory.getLog(AbstractDatabaseResource.class); - private File testBasedir; - - private Properties dbConfiguration; - - private ApplicationContext applicationContext; + protected ApplicationContext applicationContext; - private Configuration hibernateCfg; - - private final String configurationPath; - - protected abstract ApplicationContext createApplicationContext(Properties dbConfiguration); - - protected abstract String getImplementationClassesAsString(); - - public AbstractDatabaseResource(String configurationPath) { - this.configurationPath = configurationPath; - } + protected abstract ApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration); @Override protected void starting(Description description) { - - // get test directory - testBasedir = ConfigurationHelper.getTestSpecificDirectory( - description.getTestClass(), - description.getMethodName()); - - if (log.isDebugEnabled()) { - log.debug("testBasedir = " + testBasedir); - } - - // create the root context - try { - - dbConfiguration = new Properties(); - InputStream stream = - getClass().getResourceAsStream(configurationPath); - - try { - dbConfiguration.load(stream); - } finally { - stream.close(); - } - dbConfiguration.setProperty( - TopiaConfigurationConstants.CONFIG_PERSISTENCE_CLASSES, - getImplementationClassesAsString()); - - // make sure we always use a different directory - - String dbPath = new File(testBasedir, "db").getAbsolutePath(); - - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - dbConfiguration.setProperty( - TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - - onDbConfigurationCreate(dbConfiguration, testBasedir, dbPath); - - applicationContext = createApplicationContext(dbConfiguration); - - Field field = FieldUtils.getField(AbstractTopiaApplicationContext.class, "hibernateProvider", true); - HibernateProvider hibernateProvider = (HibernateProvider) field.get(applicationContext); - hibernateCfg = hibernateProvider.getHibernateConfiguration(); - - } catch (Exception e) { - throw new IllegalStateException( - "Could not start db at " + testBasedir, e); - } + TopiaConfiguration topiaConfiguration = + TopiaConfigurationBuilder.forTest( + description.getTestClass(), + description.getMethodName()); + applicationContext = createApplicationContext(topiaConfiguration); } @Override public void finished(Description description) { - if (applicationContext != null && !applicationContext.isClosed()) { - try { - applicationContext.close(); - } catch (TopiaException e) { - if (log.isErrorEnabled()) { - log.error("Could not close topia root context", e); - } - } + applicationContext.close(); } applicationContext = null; - dbConfiguration = null; - hibernateCfg = null; - } - - public File getTestBasedir() { - return testBasedir; - } - - public Properties getDbConfiguration() { - return dbConfiguration; } public ApplicationContext getApplicationContext() { return applicationContext; } - public Configuration getHibernateCfg() { - return hibernateCfg; - } - - public PersistenceContext beginTransaction() throws TopiaException { + public PersistenceContext newPersistenceContext() { return applicationContext.newPersistenceContext(); } - protected void onDbConfigurationCreate(Properties configuration, - File testDir, - String dbPath) { - - } - } diff --git a/topia-junit/src/main/java/org/nuiton/topia/junit/ConfigurationHelper.java b/topia-junit/src/main/java/org/nuiton/topia/junit/ConfigurationHelper.java deleted file mode 100644 index 8afbe3b..0000000 --- a/topia-junit/src/main/java/org/nuiton/topia/junit/ConfigurationHelper.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.nuiton.topia.junit; - -/* - * #%L - * ToPIA :: JUnit - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2004 - 2014 CodeLutin - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ - -import org.apache.commons.io.FileUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.util.FileUtil; - -import java.io.File; -import java.io.IOException; - -/** - * Created on 11/22/13. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.0 - */ -public class ConfigurationHelper { - - /** A time-stamp, allow to make multiple build and keep the tests data. */ - public static final String TIMESTAMP = String.valueOf(System.nanoTime()); - - private static final Log log = LogFactory.getLog(ConfigurationHelper.class); - - public static File getTestWorkdir() { - File result; - String base = System.getProperty("java.io.tmpdir"); - if (base == null || base.isEmpty()) { - base = new File("").getAbsolutePath(); - if (log.isWarnEnabled()) { - log.warn("'\"java.io.tmpdir\" not defined"); - } - } - result = new File(base); - if (log.isDebugEnabled()) { - log.debug("basedir for test " + result); - } - return result; - } - - public static File getTestBasedir(Class<?> testClass) throws IOException { - File dir = getTestWorkdir(); - File result = new File(dir, testClass.getName()); - if (result.exists()) { - - // when calling this method (always in a BeforeClass method), we wants - // to clean the directory, this is a new build - FileUtils.deleteDirectory(result); - } - - // always create the directory - FileUtil.createDirectoryIfNecessary(result); - return result; - } - - public static File getTestSpecificDirectory(Class<?> testClassName, - String methodName) { - - File tempDirFile = getTestWorkdir(); - - // create the directory to store database data - String dataBasePath = testClassName.getName() - + File.separator // a directory with the test class name - + methodName// a sub-directory with the method name - + '_' - + TIMESTAMP; // and a timestamp - File databaseFile = new File(tempDirFile, dataBasePath); - return databaseFile; - } -} diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java new file mode 100644 index 0000000..c9a0af4 --- /dev/null +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/BeanTopiaConfiguration.java @@ -0,0 +1,169 @@ +package org.nuiton.topia.persistence; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class BeanTopiaConfiguration implements TopiaConfiguration { + + protected String topiaIdFactoryClassName; + + protected String schemaName; + + protected String jdbcDriverClassName; + + protected String jdbcConnectionUrl; + + protected String jdbcConnectionUser; + + protected String jdbcConnectionPassword; + + protected Map<String, String> hibernateExtraConfiguration = + new LinkedHashMap<String, String>(); + + protected boolean connectionPoolingEnabled; + + protected Integer connectionPoolMinSize; + + protected boolean initSchema = true; + + protected Map<String, Class<? extends TopiaService>> declaredServices = + new LinkedHashMap<String, Class<? extends TopiaService>>(); + + protected Map<String, Map<String, String>> declaredServicesConfiguration = + new LinkedHashMap<String, Map<String, String>>(); + + protected Integer connectionPoolMaxSize; + + @Override + public String getTopiaIdFactoryClassName() { + return topiaIdFactoryClassName; + } + + public void setTopiaIdFactoryClassName(String topiaIdFactoryClassName) { + this.topiaIdFactoryClassName = topiaIdFactoryClassName; + } + + @Override + public String getSchemaName() { + return schemaName; + } + + public void setSchemaName(String schemaName) { + this.schemaName = schemaName; + } + + @Override + public String getJdbcDriverClassName() { + return jdbcDriverClassName; + } + + public void setJdbcDriverClassName(String jdbcDriverClassName) { + this.jdbcDriverClassName = jdbcDriverClassName; + } + + @Override + public String getJdbcConnectionUrl() { + return jdbcConnectionUrl; + } + + public void setJdbcConnectionUrl(String jdbcConnectionUrl) { + this.jdbcConnectionUrl = jdbcConnectionUrl; + } + + @Override + public String getJdbcConnectionUser() { + return jdbcConnectionUser; + } + + public void setJdbcConnectionUser(String jdbcConnectionUser) { + this.jdbcConnectionUser = jdbcConnectionUser; + } + + @Override + public String getJdbcConnectionPassword() { + return jdbcConnectionPassword; + } + + public void setJdbcConnectionPassword(String jdbcConnectionPassword) { + this.jdbcConnectionPassword = jdbcConnectionPassword; + } + + @Override + public Map<String, String> getHibernateExtraConfiguration() { + return hibernateExtraConfiguration; + } + + public void setHibernateExtraConfiguration(Map<String, String> hibernateExtraConfiguration) { + this.hibernateExtraConfiguration = hibernateExtraConfiguration; + } + + @Override + public boolean isConnectionPoolingEnabled() { + return connectionPoolingEnabled; + } + + public void setConnectionPoolingEnabled(boolean connectionPoolingEnabled) { + this.connectionPoolingEnabled = connectionPoolingEnabled; + } + + @Override + public Integer getConnectionPoolMinSize() { + return connectionPoolMinSize; + } + + public void setConnectionPoolMinSize(Integer connectionPoolMinSize) { + this.connectionPoolMinSize = connectionPoolMinSize; + } + + @Override + public boolean isInitSchema() { + return initSchema; + } + + public void setInitSchema(boolean initSchema) { + this.initSchema = initSchema; + } + + @Override + public Map<String, Class<? extends TopiaService>> getDeclaredServices() { + return declaredServices; + } + + public void setDeclaredServices(Map<String, Class<? extends TopiaService>> declaredServices) { + this.declaredServices = declaredServices; + } + + @Override + public Map<String, Map<String, String>> getDeclaredServicesConfiguration() { + return declaredServicesConfiguration; + } + + public void setDeclaredServicesConfiguration(Map<String, Map<String, String>> declaredServicesConfiguration) { + this.declaredServicesConfiguration = declaredServicesConfiguration; + } + + @Override + public Integer getConnectionPoolMaxSize() { + return connectionPoolMaxSize; + } + + public void setConnectionPoolMaxSize(Integer connectionPoolMaxSize) { + this.connectionPoolMaxSize = connectionPoolMaxSize; + } + + public void addDeclaredService(String serviceName, String serviceClassName, Map<String, String> serviceConfiguration) { + try { + Class<?> aClass = Class.forName(serviceClassName); + Class<? extends TopiaService> serviceClass = (Class<? extends TopiaService>) aClass; + addDeclaredService(serviceName, serviceClass, serviceConfiguration); + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException(serviceClassName + " cannot be found in classpath"); + } + } + + public void addDeclaredService(String serviceName, Class<? extends TopiaService> serviceClassName, Map<String, String> serviceConfiguration) { + declaredServices.put(serviceName, serviceClassName); + declaredServicesConfiguration.put(serviceName, serviceConfiguration); + } + +} 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 bb43a50..8b05765 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 @@ -1,15 +1,24 @@ package org.nuiton.topia.persistence; +import com.google.common.base.Preconditions; +import com.google.common.base.StandardSystemProperty; import com.google.common.io.Files; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.FileUtil; +import org.nuiton.util.beans.Binder; +import org.nuiton.util.beans.BinderFactory; import java.io.File; +import java.io.IOException; import java.util.Collections; -import java.util.LinkedHashMap; import java.util.Map; public class TopiaConfigurationBuilder { + private static final Log log = LogFactory.getLog(TopiaConfigurationBuilder.class); + /** * Do nothing but throws {@link TopiaMisconfigurationException} if there is a problem in * given configuration. @@ -81,241 +90,102 @@ public class TopiaConfigurationBuilder { } public static ConfigureConnectionPoolingStep forDatabase(String jdbcConnectionUrl, String jdbcConnectionUser, String jdbcConnectionPassword, String jdbcDriverClassName) { - TopiaConfigurationBean topiaConfigurationBean = new TopiaConfigurationBean(); - topiaConfigurationBean.setJdbcConnectionUrl(jdbcConnectionUrl); - topiaConfigurationBean.setJdbcConnectionUser(jdbcConnectionUser); - topiaConfigurationBean.setJdbcConnectionPassword(jdbcConnectionPassword); - topiaConfigurationBean.setJdbcDriverClassName(jdbcDriverClassName); - return new ConfigureConnectionPoolingStep(topiaConfigurationBean); + BeanTopiaConfiguration beanTopiaConfiguration = new BeanTopiaConfiguration(); + beanTopiaConfiguration.setJdbcConnectionUrl(jdbcConnectionUrl); + beanTopiaConfiguration.setJdbcConnectionUser(jdbcConnectionUser); + beanTopiaConfiguration.setJdbcConnectionPassword(jdbcConnectionPassword); + beanTopiaConfiguration.setJdbcDriverClassName(jdbcDriverClassName); + return new ConfigureConnectionPoolingStep(beanTopiaConfiguration); } - protected static class TopiaConfigurationBean implements TopiaConfiguration { - - protected String topiaIdFactoryClassName; - - protected String schemaName; - - protected String jdbcDriverClassName; - - protected String jdbcConnectionUrl; - - protected String jdbcConnectionUser; - - protected String jdbcConnectionPassword; - - protected Map<String, String> hibernateExtraConfiguration = - new LinkedHashMap<String, String>(); - - protected boolean connectionPoolingEnabled; - - protected Integer connectionPoolMinSize; - - protected boolean initSchema; - - protected Map<String, Class<? extends TopiaService>> declaredServices = - new LinkedHashMap<String, Class<? extends TopiaService>>(); - - protected Map<String, Map<String, String>> declaredServicesConfiguration = - new LinkedHashMap<String, Map<String, String>>(); - - protected Integer connectionPoolMaxSize; - - @Override - public String getTopiaIdFactoryClassName() { - return topiaIdFactoryClassName; - } - - public void setTopiaIdFactoryClassName(String topiaIdFactoryClassName) { - this.topiaIdFactoryClassName = topiaIdFactoryClassName; - } - - @Override - public String getSchemaName() { - return schemaName; - } - - public void setSchemaName(String schemaName) { - this.schemaName = schemaName; - } - - @Override - public String getJdbcDriverClassName() { - return jdbcDriverClassName; - } - - public void setJdbcDriverClassName(String jdbcDriverClassName) { - this.jdbcDriverClassName = jdbcDriverClassName; - } - - @Override - public String getJdbcConnectionUrl() { - return jdbcConnectionUrl; - } - - public void setJdbcConnectionUrl(String jdbcConnectionUrl) { - this.jdbcConnectionUrl = jdbcConnectionUrl; - } - - @Override - public String getJdbcConnectionUser() { - return jdbcConnectionUser; - } - - public void setJdbcConnectionUser(String jdbcConnectionUser) { - this.jdbcConnectionUser = jdbcConnectionUser; - } - - @Override - public String getJdbcConnectionPassword() { - return jdbcConnectionPassword; - } - - public void setJdbcConnectionPassword(String jdbcConnectionPassword) { - this.jdbcConnectionPassword = jdbcConnectionPassword; - } - - @Override - public Map<String, String> getHibernateExtraConfiguration() { - return hibernateExtraConfiguration; - } - - public void setHibernateExtraConfiguration(Map<String, String> hibernateExtraConfiguration) { - this.hibernateExtraConfiguration = hibernateExtraConfiguration; - } - - @Override - public boolean isConnectionPoolingEnabled() { - return connectionPoolingEnabled; - } + protected static final String TIMESTAMP = String.valueOf(System.nanoTime()); - public void setConnectionPoolingEnabled(boolean connectionPoolingEnabled) { - this.connectionPoolingEnabled = connectionPoolingEnabled; - } - - @Override - public Integer getConnectionPoolMinSize() { - return connectionPoolMinSize; - } - - public void setConnectionPoolMinSize(Integer connectionPoolMinSize) { - this.connectionPoolMinSize = connectionPoolMinSize; - } - - @Override - public boolean isInitSchema() { - return initSchema; - } - - public void setInitSchema(boolean initSchema) { - this.initSchema = initSchema; - } - - @Override - public Map<String, Class<? extends TopiaService>> getDeclaredServices() { - return declaredServices; - } - - public void setDeclaredServices(Map<String, Class<? extends TopiaService>> declaredServices) { - this.declaredServices = declaredServices; - } - - @Override - public Map<String, Map<String, String>> getDeclaredServicesConfiguration() { - return declaredServicesConfiguration; - } - - public void setDeclaredServicesConfiguration(Map<String, Map<String, String>> declaredServicesConfiguration) { - this.declaredServicesConfiguration = declaredServicesConfiguration; - } - - @Override - public Integer getConnectionPoolMaxSize() { - return connectionPoolMaxSize; - } - - public void setConnectionPoolMaxSize(Integer connectionPoolMaxSize) { - this.connectionPoolMaxSize = connectionPoolMaxSize; - } - - public void addDeclaredService(String serviceName, String serviceClassName, Map<String, String> serviceConfiguration) { - try { - Class<?> aClass = Class.forName(serviceClassName); - Class<? extends TopiaService> serviceClass = (Class<? extends TopiaService>) aClass; - addDeclaredService(serviceName, serviceClass, serviceConfiguration); - } catch (ClassNotFoundException e) { - throw new IllegalArgumentException(serviceClassName + " cannot be found in classpath"); - } + public static BeanTopiaConfiguration forTest(Class<?> testClass, String methodName) { + String javaIoTmpDir = StandardSystemProperty.JAVA_IO_TMPDIR.value(); + Preconditions.checkState(StringUtils.isNotBlank(javaIoTmpDir)); + File result = new File(javaIoTmpDir); + try { + FileUtil.createDirectoryIfNecessary(result); + } catch (IOException e) { + throw new TopiaException(e); } - - public void addDeclaredService(String serviceName, Class<? extends TopiaService> serviceClassName, Map<String, String> serviceConfiguration) { - declaredServices.put(serviceName, serviceClassName); - declaredServicesConfiguration.put(serviceName, serviceConfiguration); + File file = new File(result, TIMESTAMP + File.separator + testClass.getName() + File.separator + methodName + File.separator + "h2"); + BeanTopiaConfiguration configuration = forH2Database(file).doNotUseConnectionPooling().dontTouchTheSchema().build(); + if (log.isDebugEnabled()) { + log.debug("will store H2 tests data in " + file.getAbsolutePath()); } + return copyOf(configuration); + } + public static BeanTopiaConfiguration copyOf(TopiaConfiguration topiaConfiguration) { + BeanTopiaConfiguration copy = new BeanTopiaConfiguration(); + Binder<TopiaConfiguration, BeanTopiaConfiguration> binder = BinderFactory.newBinder(TopiaConfiguration.class, BeanTopiaConfiguration.class); + binder.copy(topiaConfiguration, copy); + return copy; } protected static class ConfigureConnectionPoolingStep { - protected TopiaConfigurationBean topiaConfigurationBean; + protected BeanTopiaConfiguration beanTopiaConfiguration; - public ConfigureConnectionPoolingStep(TopiaConfigurationBean topiaConfigurationBean) { - this.topiaConfigurationBean = topiaConfigurationBean; + public ConfigureConnectionPoolingStep(BeanTopiaConfiguration beanTopiaConfiguration) { + this.beanTopiaConfiguration = beanTopiaConfiguration; } public ConfigureInitSchemaStep doNotUseConnectionPooling() { - topiaConfigurationBean.setConnectionPoolingEnabled(false); - return new ConfigureInitSchemaStep(topiaConfigurationBean); + beanTopiaConfiguration.setConnectionPoolingEnabled(false); + return new ConfigureInitSchemaStep(beanTopiaConfiguration); } public ConfigureInitSchemaStep useConnectionPooling(int connectionPoolMinSize, int connectionPoolMaxSize) { - topiaConfigurationBean.setConnectionPoolingEnabled(true); - topiaConfigurationBean.setConnectionPoolMinSize(connectionPoolMinSize); - topiaConfigurationBean.setConnectionPoolMaxSize(connectionPoolMaxSize); - return new ConfigureInitSchemaStep(topiaConfigurationBean); + beanTopiaConfiguration.setConnectionPoolingEnabled(true); + beanTopiaConfiguration.setConnectionPoolMinSize(connectionPoolMinSize); + beanTopiaConfiguration.setConnectionPoolMaxSize(connectionPoolMaxSize); + return new ConfigureInitSchemaStep(beanTopiaConfiguration); } } protected static class ConfigureInitSchemaStep { - protected TopiaConfigurationBean topiaConfigurationBean; + protected BeanTopiaConfiguration beanTopiaConfiguration; - public ConfigureInitSchemaStep(TopiaConfigurationBean topiaConfigurationBean) { - this.topiaConfigurationBean = topiaConfigurationBean; + public ConfigureInitSchemaStep(BeanTopiaConfiguration beanTopiaConfiguration) { + this.beanTopiaConfiguration = beanTopiaConfiguration; } public BuildStep dontTouchTheSchema() { - return new BuildStep(topiaConfigurationBean); + return new BuildStep(beanTopiaConfiguration); } public BuildStep useHibernateUpdate() { - topiaConfigurationBean.addDeclaredService("migration", org.nuiton.topia.persistence.HibernateTopiaMigrationService.class, Collections.<String, String>emptyMap()); - return new BuildStep(topiaConfigurationBean); + beanTopiaConfiguration.addDeclaredService("migration", org.nuiton.topia.persistence.HibernateTopiaMigrationService.class, Collections.<String, String>emptyMap()); + return new BuildStep(beanTopiaConfiguration); } public BuildStep useFlyway() { - topiaConfigurationBean.addDeclaredService("migration", "org.nuiton.topia.flyway.TopiaFlywayServiceImpl", Collections.<String, String>emptyMap()); - return new BuildStep(topiaConfigurationBean); + beanTopiaConfiguration.addDeclaredService("migration", "org.nuiton.topia.flyway.TopiaFlywayServiceImpl", Collections.<String, String>emptyMap()); + return new BuildStep(beanTopiaConfiguration); } public BuildStep useLiquibase() { - topiaConfigurationBean.addDeclaredService("migration", "org.nuiton.topia.flyway.TopiaLiquibaseServiceImpl", Collections.<String, String>emptyMap()); - return new BuildStep(topiaConfigurationBean); + beanTopiaConfiguration.addDeclaredService("migration", "org.nuiton.topia.flyway.TopiaLiquibaseServiceImpl", Collections.<String, String>emptyMap()); + return new BuildStep(beanTopiaConfiguration); } } protected static class BuildStep { - protected TopiaConfigurationBean topiaConfigurationBean; + protected BeanTopiaConfiguration beanTopiaConfiguration; - public BuildStep(TopiaConfigurationBean topiaConfigurationBean) { - this.topiaConfigurationBean = topiaConfigurationBean; + public BuildStep(BeanTopiaConfiguration beanTopiaConfiguration) { + this.beanTopiaConfiguration = beanTopiaConfiguration; } - public TopiaConfigurationBean build() { - check(topiaConfigurationBean); - return topiaConfigurationBean; + public BeanTopiaConfiguration build() { + check(beanTopiaConfiguration); + return beanTopiaConfiguration; } } } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaServiceSupportImpl.java b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaServiceSupportImpl.java index df187cc..72ce9fc 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaServiceSupportImpl.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/persistence/internal/support/TopiaServiceSupportImpl.java @@ -84,9 +84,6 @@ public class TopiaServiceSupportImpl implements TopiaServiceSupport { Map<String, Class<? extends TopiaService>> declaredServices = topiaConfiguration.getDeclaredServices(); - Map<String, Map<String, String>> declaredServicesConfiguration = - topiaConfiguration.getDeclaredServicesConfiguration(); - // the services: name → instance Map<String, TopiaService> services = new HashMap<String, TopiaService>(); @@ -113,13 +110,14 @@ public class TopiaServiceSupportImpl implements TopiaServiceSupport { } // the services configurations (key is the name of the service) - Map<String, Map<String, String>> servicesConfigurations = new HashMap<String, Map<String, String>>(); + Map<String, Map<String, String>> declaredServicesConfiguration = + topiaConfiguration.getDeclaredServicesConfiguration(); // now all the services are instantiated and and the configuration are known, call init on all services for (Map.Entry<String, TopiaService> entry : services.entrySet()) { String serviceName = entry.getKey(); TopiaService topiaService = entry.getValue(); - Map<String, String> serviceConfiguration = servicesConfigurations.get(serviceName); + Map<String, String> serviceConfiguration = declaredServicesConfiguration.get(serviceName); if (serviceConfiguration == null) { serviceConfiguration = Collections.emptyMap(); } 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 2843aab..8e6ece6 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 @@ -1,5 +1,6 @@ package org.nuiton.topia.persistence; +import org.junit.Assert; import org.junit.Test; public class TopiaConfigurationBuilderTest { @@ -13,5 +14,7 @@ public class TopiaConfigurationBuilderTest { .useHibernateUpdate() .build(); + Assert.assertTrue("any generated topia configuration must have initSchema to true", topiaConfiguration.isInitSchema()); + } } \ No newline at end of file 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 b3eeca3..b36d312 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 @@ -24,52 +24,65 @@ package org.nuiton.topia.migration; * #L% */ -import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.Map; - +import com.google.common.collect.ImmutableMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.h2.Driver; import org.hibernate.HibernateException; -import org.hibernate.dialect.H2Dialect; import org.junit.Assert; +import org.junit.Rule; import org.junit.Test; import org.nuiton.topia.it.TopiaSchemaHelper; import org.nuiton.topia.it.mapping.TopiaItMappingTopiaApplicationContext; import org.nuiton.topia.it.mapping.TopiaItMappingTopiaPersistenceContext; -import org.nuiton.topia.junit.ConfigurationHelper; +import org.nuiton.topia.junit.AbstractDatabaseResource; +import org.nuiton.topia.persistence.BeanTopiaConfiguration; +import org.nuiton.topia.persistence.TopiaConfiguration; +import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.TopiaConfigurationConstants; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; /** * @author Arnaud Thimel (Code Lutin) */ public class TopiaMigrationEngineTest { - - - private static final Log log = LogFactory.getLog(TopiaMigrationEngineTest.class); + @Rule + public final AbstractDatabaseResource<TopiaItMappingTopiaPersistenceContext, TopiaItMappingTopiaApplicationContext> db = + new AbstractDatabaseResource<TopiaItMappingTopiaPersistenceContext, TopiaItMappingTopiaApplicationContext>() { + + @Override + protected TopiaItMappingTopiaApplicationContext createApplicationContext(TopiaConfiguration topiaConfiguration) { + Map<String, String> map = new HashMap<String, String>(); + map.put(TopiaConfigurationConstants.CONFIG_URL, topiaConfiguration.getJdbcConnectionUrl()); + map.put(TopiaConfigurationConstants.CONFIG_USER, topiaConfiguration.getJdbcConnectionUser()); + map.put(TopiaConfigurationConstants.CONFIG_PASS, topiaConfiguration.getJdbcConnectionPassword()); + TopiaSchemaHelper.createMappingDataBaseSchemas(map); + return new TopiaItMappingTopiaApplicationContext(topiaConfiguration); + } + }; + /** * Tests if a given table exists. WARNING : this may not work is the tableName is not exactly the same. * * This method is designed for H2 only. */ - protected boolean isTableExist(Map<String, String> config, String tableName) throws Exception { + protected boolean isTableExist(TopiaConfiguration topiaConfiguration, String tableName) throws Exception { Connection connection = null; try { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( - config.get(TopiaConfigurationConstants.CONFIG_URL), - config.get(TopiaConfigurationConstants.CONFIG_USER), - config.get(TopiaConfigurationConstants.CONFIG_PASS)); + topiaConfiguration.getJdbcConnectionUrl(), + topiaConfiguration.getJdbcConnectionUser(), + topiaConfiguration.getJdbcConnectionPassword()); ResultSet rset = connection.getMetaData().getTables(null, null, tableName.toUpperCase(), null); boolean result = rset.next(); return result; @@ -80,14 +93,14 @@ public class TopiaMigrationEngineTest { } } - protected String runSelectOnString(Map<String, String> config, String sql) throws Exception { + protected String runSelectOnString(TopiaConfiguration topiaConfiguration, String sql) throws Exception { Connection connection = null; try { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( - config.get(TopiaConfigurationConstants.CONFIG_URL), - config.get(TopiaConfigurationConstants.CONFIG_USER), - config.get(TopiaConfigurationConstants.CONFIG_PASS)); + topiaConfiguration.getJdbcConnectionUrl(), + topiaConfiguration.getJdbcConnectionUser(), + topiaConfiguration.getJdbcConnectionPassword()); PreparedStatement preparedStatement = connection.prepareStatement(sql); ResultSet resultSet = preparedStatement.executeQuery(); @@ -102,14 +115,14 @@ public class TopiaMigrationEngineTest { } } - protected int runUpdate(Map<String, String> config, String sql) throws Exception { + protected int runUpdate(TopiaConfiguration topiaConfiguration, String sql) throws Exception { Connection connection = null; try { DriverManager.registerDriver(new Driver()); connection = DriverManager.getConnection( - config.get(TopiaConfigurationConstants.CONFIG_URL), - config.get(TopiaConfigurationConstants.CONFIG_USER), - config.get(TopiaConfigurationConstants.CONFIG_PASS)); + topiaConfiguration.getJdbcConnectionUrl(), + topiaConfiguration.getJdbcConnectionUser(), + topiaConfiguration.getJdbcConnectionPassword()); PreparedStatement preparedStatement = connection.prepareStatement(sql); int result = preparedStatement.executeUpdate(); return result; @@ -120,73 +133,60 @@ public class TopiaMigrationEngineTest { } } - protected String readVersion(Map<String, String> config) throws Exception { - return runSelectOnString(config, "SELECT VERSION FROM TMS_VERSION"); + protected String readVersion(TopiaConfiguration topiaConfiguration) throws Exception { + return runSelectOnString(topiaConfiguration, "SELECT VERSION FROM TMS_VERSION"); } - @Test - public void testTMSTableCreatedOnInit() throws Exception { - - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaMigrationEngineTest.class, "testTMSTableCreatedOnInit"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "true"); - - config.put("topia.service.migration", TopiaMigrationEngine.class.getName()); - config.put("topia.service.migration.callback", TestMigrationCallbackCreateWhateverTable.class.getName()); - - Assert.assertFalse(isTableExist(config, "tms_version")); - Assert.assertFalse(isTableExist(config, "a6")); - - TopiaSchemaHelper.createMappingDataBaseSchemas(config); - - // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); - - Assert.assertTrue(isTableExist(config, "tms_version")); - Assert.assertTrue(isTableExist(config, "a6")); - - applicationContext.close(); - - // Schema has been created, TMSVersion should contains the model's version - String actual = readVersion(config); - Assert.assertEquals(applicationContext.getModelVersion(), actual); - - } +// @Test +// public void testTMSTableCreatedOnInit() throws Exception { +// +// File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaMigrationEngineTest.class, "testTMSTableCreatedOnInit"); +// +// String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); +// if (log.isDebugEnabled()) { +// log.debug("dbPath = " + dbPath); +// } +// +// Map<String, String> config = Maps.newHashMap(); +// config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); +// config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); +// config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); +// config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); +// config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); +// config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); +// config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "true"); +// +// config.put("topia.service.migration", TopiaMigrationEngine.class.getName()); +// config.put("topia.service.migration.callback", TestMigrationCallbackCreateWhateverTable.class.getName()); +// +// Assert.assertFalse(isTableExist(config, "tms_version")); +// Assert.assertFalse(isTableExist(config, "a6")); +// +// TopiaSchemaHelper.createMappingDataBaseSchemas(config); +// +// // new application context will init database schema because of topia.persistence.initSchema=true +// TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(config); +// +// Assert.assertTrue(isTableExist(config, "tms_version")); +// Assert.assertTrue(isTableExist(config, "a6")); +// +// applicationContext.close(); +// +// // Schema has been created, TMSVersion should contains the model's version +// String actual = readVersion(config); +// Assert.assertEquals(applicationContext.getModelVersion(), actual); +// +// } @Test public void testMigrationHasRan() throws Exception { - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaMigrationEngineTest.class, "testMigrationHasRan"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "true"); + TopiaItMappingTopiaApplicationContext applicationContext = db.getApplicationContext(); + BeanTopiaConfiguration config = TopiaConfigurationBuilder.copyOf(applicationContext.getConfiguration()); - config.put("topia.service.migration", TopiaMigrationEngine.class.getName()); - config.put("topia.service.migration.callback", TestMigrationCallbackCreateWhateverTable.class.getName()); + config.addDeclaredService("migration", TopiaMigrationEngine.class, ImmutableMap.of(TopiaMigrationService.MIGRATION_CALLBACK, TestMigrationCallbackCreateWhateverTable.class.getName())); - TopiaSchemaHelper.createMappingDataBaseSchemas(config); + //TopiaSchemaHelper.createMappingDataBaseSchemas(config); { // Create database @@ -194,7 +194,7 @@ public class TopiaMigrationEngineTest { Assert.assertFalse(isTableExist(config, "a6")); // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(ImmutableMap.copyOf(config)); + applicationContext = new TopiaItMappingTopiaApplicationContext(config); Assert.assertTrue(isTableExist(config, "tms_version")); Assert.assertTrue(isTableExist(config, "a6")); @@ -220,7 +220,7 @@ public class TopiaMigrationEngineTest { Assert.assertFalse(isTableExist(config, "whatever")); // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(ImmutableMap.copyOf(config)); + applicationContext = new TopiaItMappingTopiaApplicationContext(config); Assert.assertTrue(isTableExist(config, "tms_version")); Assert.assertTrue(isTableExist(config, "a6")); @@ -239,47 +239,26 @@ public class TopiaMigrationEngineTest { @Test public void testValidateAfterMigration() throws Exception { - File testSpecificDirectory = ConfigurationHelper.getTestSpecificDirectory(TopiaMigrationEngineTest.class, "testValidateAfterMigration"); - - String dbPath = new File(testSpecificDirectory, "db").getAbsolutePath(); - if (log.isDebugEnabled()) { - log.debug("dbPath = " + dbPath); - } - - Map<String, String> config = Maps.newHashMap(); - config.put(TopiaConfigurationConstants.CONFIG_DRIVER, Driver.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_DIALECT, H2Dialect.class.getName()); - config.put(TopiaConfigurationConstants.CONFIG_USER, "sa"); - config.put(TopiaConfigurationConstants.CONFIG_PASS, ""); - config.put(TopiaConfigurationConstants.CONFIG_URL, "jdbc:h2:file:" + dbPath); - config.put(TopiaConfigurationConstants.CONFIG_HBM2DDL_AUTO, "validate"); - config.put(TopiaConfigurationConstants.CONFIG_PERSISTENCE_INIT_SCHEMA, "true"); - TopiaSchemaHelper.createMappingDataBaseSchemas(config); - - { // Create database - - // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(ImmutableMap.copyOf(config)); - - Assert.assertFalse(isTableExist(config, "tms_version")); - Assert.assertTrue(isTableExist(config, "a6")); + // new application context will init database schema because of topia.persistence.initSchema=true + TopiaItMappingTopiaApplicationContext applicationContext = db.getApplicationContext(); + BeanTopiaConfiguration config = TopiaConfigurationBuilder.copyOf(applicationContext.getConfiguration()); - applicationContext.close(); + Assert.assertFalse(isTableExist(config, "tms_version")); + Assert.assertTrue(isTableExist(config, "a6")); - } + applicationContext.close(); // Drop a column runUpdate(config, "ALTER TABLE B71 DROP COLUMN name"); // Declare some dummy migration service (does nothing) - config.put("topia.service.migration", TopiaMigrationEngine.class.getName()); - config.put("topia.service.migration.callback", TestMigrationCallbackDoNothing.class.getName()); + config.addDeclaredService("migration", TopiaMigrationEngine.class, ImmutableMap.of(TopiaMigrationService.MIGRATION_CALLBACK, TestMigrationCallbackDoNothing.class.getName())); { // Start again context, will fail because of validation // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(ImmutableMap.copyOf(config)); + applicationContext = new TopiaItMappingTopiaApplicationContext(config); // Schema has been created, TMSVersion should contains the model's version String actual = readVersion(config); @@ -292,7 +271,7 @@ public class TopiaMigrationEngineTest { persistenceContext.close(); Assert.fail("Validation should have failed"); } catch (HibernateException he) { - Assert.assertEquals("Missing column: name in DB.PUBLIC.B71", he.getMessage()); + Assert.assertEquals("Missing column: name in H2.PUBLIC.B71", he.getMessage()); } applicationContext.close(); @@ -300,8 +279,7 @@ public class TopiaMigrationEngineTest { } // Declare the migration service - config.put("topia.service.migration", TopiaMigrationEngine.class.getName()); - config.put("topia.service.migration.callback", TestMigrationCallbackAddB71NameColumn.class.getName()); + config.addDeclaredService("migration", TopiaMigrationEngine.class.getName(), ImmutableMap.of(TopiaMigrationService.MIGRATION_CALLBACK, TestMigrationCallbackAddB71NameColumn.class.getName())); runUpdate(config, "UPDATE TMS_VERSION SET VERSION='1.0.4'"); Assert.assertEquals("1.0.4", readVersion(config)); @@ -309,7 +287,7 @@ public class TopiaMigrationEngineTest { { // Start again with migration service, will create the tms_version table // new application context will init database schema because of topia.persistence.initSchema=true - TopiaItMappingTopiaApplicationContext applicationContext = new TopiaItMappingTopiaApplicationContext(ImmutableMap.copyOf(config)); + applicationContext = new TopiaItMappingTopiaApplicationContext(config); Assert.assertTrue(isTableExist(config, "tms_version")); Assert.assertTrue(isTableExist(config, "a6")); 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 70d02a6..cd181f0 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 @@ -28,7 +28,10 @@ import com.google.common.base.Function; import org.apache.commons.logging.Log; import org.junit.Assert; import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; +import org.nuiton.topia.persistence.BeanTopiaConfiguration; import org.nuiton.topia.persistence.TopiaApplicationContext; +import org.nuiton.topia.persistence.TopiaConfiguration; +import org.nuiton.topia.persistence.TopiaConfigurationBuilder; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaDaoSupplier; import org.nuiton.topia.persistence.TopiaEntity; @@ -81,6 +84,13 @@ 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); + beanTopiaConfiguration.addDeclaredService("replication", TopiaReplicationServiceImpl.class, Collections.<String, String>emptyMap()); + return new TopiaItLegacyTopiaApplicationContext(beanTopiaConfiguration); + } + protected static final Function<Properties,TopiaApplicationContext> CREATE_TOPIA_TEST_APPLICATION_CONTEXT = new Function<Properties, TopiaApplicationContext>() { @Override public TopiaApplicationContext apply(Properties input) { @@ -127,7 +137,10 @@ public abstract class AbstractTopiaReplicationServiceTest extends Assert { return service.getModelBuilder(); } - protected abstract TopiaApplicationContext createDb2(String name) throws Exception; + protected TopiaApplicationContext createDb2(String name) { + TopiaItLegacyTopiaApplicationContext db2 = newTopiaItLegacyTopiaApplicationContext(name); + return db2; + } protected abstract TopiaApplicationContext createDb(String name) throws Exception; diff --git a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java index 259e783..cf24fdb 100644 --- a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java +++ b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationOperationTest.java @@ -29,20 +29,18 @@ import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaApplicationContextCache; -import org.nuiton.topia.persistence.TopiaPersistenceContext; -import org.nuiton.topia.it.TopiaConfigurationHelper; import org.nuiton.topia.it.legacy.TopiaItLegacyEntityEnum; +import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; import org.nuiton.topia.it.legacy.test.entities.Person; import org.nuiton.topia.it.legacy.test.entities.PersonImpl; import org.nuiton.topia.it.legacy.test.entities.Pet; import org.nuiton.topia.it.legacy.test.entities.PetImpl; import org.nuiton.topia.it.legacy.test.entities.Race; import org.nuiton.topia.it.legacy.test.entities.RaceImpl; +import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.TopiaEntityEnum; +import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.replication.model.ReplicationOperationPhase; import org.nuiton.topia.replication.operation.DettachAssociation; import org.nuiton.topia.replication.operation.Duplicate; @@ -50,10 +48,6 @@ import org.nuiton.topia.replication.operation.FakeOperation; import org.nuiton.topia.replication.operation.UncreatableOperation; import org.nuiton.topia.replication.operation.UnregistredOperation; -import java.io.File; -import java.io.IOException; -import java.util.Properties; - /** * TopiaReplicationServiceImplTest on model TopiaTest * <p/> @@ -85,14 +79,6 @@ public class TopiaReplicationOperationTest extends AbstractTopiaReplicationServi protected static Race race, race2; - protected static File tesDir; - - @BeforeClass - public static void beforeClass() throws IOException { - tesDir = TopiaConfigurationHelper.getTestBasedir(TopiaReplicationOperationTest.class); - - } - @AfterClass public static void after() throws Exception { AbstractTopiaReplicationServiceTest.after(); @@ -280,11 +266,7 @@ public class TopiaReplicationOperationTest extends AbstractTopiaReplicationServi @Override protected TopiaApplicationContext createDb(String name) throws Exception { -// File localDB = new File(getTestDir(getClass()), "db_" + name); - - Properties config = getH2Properties(name); - - sourceContext = TopiaApplicationContextCache.getContext(config, CREATE_TOPIA_TEST_APPLICATION_CONTEXT); + TopiaItLegacyTopiaApplicationContext sourceContext = newTopiaItLegacyTopiaApplicationContext(name); TopiaPersistenceContext tx = sourceContext.newPersistenceContext(); @@ -298,7 +280,9 @@ public class TopiaReplicationOperationTest extends AbstractTopiaReplicationServi tx.commit(); tx.close(); + return sourceContext; + } @Override @@ -311,30 +295,6 @@ public class TopiaReplicationOperationTest extends AbstractTopiaReplicationServi return log; } - protected Properties getH2Properties(String dbName) throws IOException { - - Properties config = TopiaConfigurationHelper.initTopiaContextConfiguration(tesDir, dbName); - -// config.setProperty("hibernate.show_sql", "false"); -// config.setProperty("hibernate.hbm2ddl.auto", "create"); - - config.setProperty("topia.persistence.classes", entitiesList); -// config.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); -// config.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); -// config.setProperty("hibernate.connection.url", "jdbc:h2:file:" + f.getAbsolutePath() + ";create=true"); -// config.setProperty("hibernate.connection.username", "sa"); -// config.setProperty("hibernate.connection.password", ""); - - config.setProperty("topia.service.replication", TopiaReplicationServiceImpl.class.getName()); - - return config; - } - - @Override - protected TopiaApplicationContext createDb2(String name) throws Exception { - throw new UnsupportedOperationException("Not supported yet."); - } - @Override public void testDetectTypes() throws Exception { throw new UnsupportedOperationException("Not supported yet."); diff --git a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplAllTest.java b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplAllTest.java index cb3d512..98ba656 100644 --- a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplAllTest.java +++ b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplAllTest.java @@ -29,26 +29,20 @@ import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaApplicationContextCache; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.topia.persistence.TopiaPersistenceContext; -import org.nuiton.topia.it.TopiaConfigurationHelper; import org.nuiton.topia.it.legacy.TopiaItLegacyEntityEnum; +import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; import org.nuiton.topia.it.legacy.test.entities.Person; import org.nuiton.topia.it.legacy.test.entities.PersonImpl; import org.nuiton.topia.it.legacy.test.entities.Pet; import org.nuiton.topia.it.legacy.test.entities.PetImpl; import org.nuiton.topia.it.legacy.test.entities.Race; import org.nuiton.topia.it.legacy.test.entities.RaceImpl; +import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaEntityEnum; - -import java.io.File; -import java.io.IOException; -import java.util.Properties; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.TopiaPersistenceContext; /** * TopiaReplicationServiceImplTest on model TopiaTest @@ -80,13 +74,6 @@ public class TopiaReplicationServiceImplAllTest extends AbstractTopiaReplication protected static Race race, race2, race3; - protected static File tesDir; - - @BeforeClass - public static void beforeClass() throws IOException { - tesDir = TopiaConfigurationHelper.getTestBasedir(TopiaReplicationServiceImplAllTest.class); - } - @AfterClass public static void after() throws Exception { AbstractTopiaReplicationServiceTest.after(); @@ -227,11 +214,7 @@ public class TopiaReplicationServiceImplAllTest extends AbstractTopiaReplication @Override protected TopiaApplicationContext createDb(String name) throws Exception { -// File localDB = new File(getTestDir(getClass()), "db_" + name); - - Properties config = getH2Properties(name); - - sourceContext = TopiaApplicationContextCache.getContext(config, CREATE_TOPIA_TEST_APPLICATION_CONTEXT); + TopiaItLegacyTopiaApplicationContext sourceContext = newTopiaItLegacyTopiaApplicationContext(name); TopiaPersistenceContext tx = sourceContext.newPersistenceContext(); @@ -252,16 +235,6 @@ public class TopiaReplicationServiceImplAllTest extends AbstractTopiaReplication } @Override - protected TopiaApplicationContext createDb2(String name) throws Exception { - -// File localDB = new File(getTestDir(getClass()), "db_" + name); - - Properties config = getH2Properties(name); - - return TopiaApplicationContextCache.getContext(config, CREATE_TOPIA_TEST_APPLICATION_CONTEXT); - } - - @Override protected TopiaEntityEnum[] getContracts() { return contracts; } @@ -271,26 +244,6 @@ public class TopiaReplicationServiceImplAllTest extends AbstractTopiaReplication return log; } - protected Properties getH2Properties(String dbName) throws IOException { - - Properties config = TopiaConfigurationHelper.initTopiaContextConfiguration(tesDir, dbName); - -// config.setProperty("hibernate.show_sql", "false"); -// config.setProperty("hibernate.hbm2ddl.auto", "create"); - - config.setProperty("topia.persistence.classes", entitiesList); -// config.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); -// config.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); -// config.setProperty("hibernate.connection.url", "jdbc:h2:file:" + f.getAbsolutePath() + ";create=true"); -// config.setProperty("hibernate.connection.username", "sa"); -// config.setProperty("hibernate.connection.password", ""); - - config.setProperty("topia.service.replication", TopiaReplicationServiceImpl.class.getName()); - - return config; - } - - @Override protected void createModel(TopiaEntity entity) throws TopiaException { model = getModelBuilder().createModelForAll(getContracts()); diff --git a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java index 4459951..8f71cb1 100644 --- a/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java +++ b/topia-service-replication/src/test/java/org/nuiton/topia/replication/TopiaReplicationServiceImplTest.java @@ -29,21 +29,19 @@ import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; -import org.nuiton.topia.persistence.TopiaApplicationContext; -import org.nuiton.topia.persistence.TopiaApplicationContextCache; -import org.nuiton.topia.persistence.TopiaException; -import org.nuiton.topia.persistence.TopiaPersistenceContext; -import org.nuiton.topia.it.TopiaConfigurationHelper; import org.nuiton.topia.it.legacy.TopiaItLegacyEntityEnum; +import org.nuiton.topia.it.legacy.TopiaItLegacyTopiaApplicationContext; import org.nuiton.topia.it.legacy.test.entities.Person; import org.nuiton.topia.it.legacy.test.entities.PersonImpl; import org.nuiton.topia.it.legacy.test.entities.Pet; import org.nuiton.topia.it.legacy.test.entities.PetImpl; import org.nuiton.topia.it.legacy.test.entities.Race; import org.nuiton.topia.it.legacy.test.entities.RaceImpl; +import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.TopiaEntityEnum; +import org.nuiton.topia.persistence.TopiaException; +import org.nuiton.topia.persistence.TopiaPersistenceContext; import org.nuiton.topia.persistence.util.TopiaEntityIdsMap; import org.nuiton.topia.replication.model.ReplicationModel; import org.nuiton.topia.replication.operation.DettachAssociation; @@ -52,10 +50,6 @@ import org.nuiton.topia.replication.operation.FakeOperation; import org.nuiton.topia.replication.operation.UncreatableOperation; import org.nuiton.topia.replication.operation.UnregistredOperation; -import java.io.File; -import java.io.IOException; -import java.util.Properties; - /** * TopiaReplicationServiceImplTest on model TopiaTest * <p/> @@ -80,14 +74,6 @@ public class TopiaReplicationServiceImplTest extends AbstractTopiaReplicationSer protected static Race race, race2, race3; - protected static File tesDir; - - @BeforeClass - public static void beforeClass() throws IOException { - tesDir = TopiaConfigurationHelper.getTestBasedir( - TopiaReplicationServiceImplTest.class); - } - @AfterClass public static void after() throws Exception { AbstractTopiaReplicationServiceTest.after(); @@ -386,11 +372,7 @@ public class TopiaReplicationServiceImplTest extends AbstractTopiaReplicationSer @Override protected TopiaApplicationContext createDb(String name) throws Exception { -// File localDB = new File(getTestDir(getClass()), "db_" + name); - - Properties config = getH2Properties(name); - - sourceContext = TopiaApplicationContextCache.getContext(config, CREATE_TOPIA_TEST_APPLICATION_CONTEXT); + TopiaItLegacyTopiaApplicationContext sourceContext = newTopiaItLegacyTopiaApplicationContext(name); TopiaPersistenceContext tx = sourceContext.newPersistenceContext(); @@ -411,18 +393,6 @@ public class TopiaReplicationServiceImplTest extends AbstractTopiaReplicationSer } @Override - protected TopiaApplicationContext createDb2(String name) throws Exception { - -// File localDB = new File(getTestDir(getClass()), "db_" + name); -// -// log.info("db dir :\n" + localDB.getAbsolutePath()); - - Properties config = getH2Properties(name); - - return TopiaApplicationContextCache.getContext(config, CREATE_TOPIA_TEST_APPLICATION_CONTEXT); - } - - @Override protected TopiaEntityEnum[] getContracts() { return contracts; } @@ -432,25 +402,6 @@ public class TopiaReplicationServiceImplTest extends AbstractTopiaReplicationSer return log; } - protected Properties getH2Properties(String dbName) throws IOException { - - - Properties config = TopiaConfigurationHelper.initTopiaContextConfiguration(tesDir, dbName); - -// config.setProperty("hibernate.show_sql", "false"); -// config.setProperty("hibernate.hbm2ddl.auto", "create"); - - config.setProperty("topia.persistence.classes", entitiesList); -// config.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); -// config.setProperty("hibernate.connection.driver_class", "org.h2.Driver"); -// config.setProperty("hibernate.connection.url", "jdbc:h2:file:" + f.getAbsolutePath() + "/db;create=true"); -// config.setProperty("hibernate.connection.username", "sa"); -// config.setProperty("hibernate.connection.password", ""); - - config.setProperty("topia.service.replication", TopiaReplicationServiceImpl.class.getName()); - - return config; - } } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm