From: <fg...@us...> - 2009-02-17 09:02:58
|
Revision: 1012 http://openutils.svn.sourceforge.net/openutils/?rev=1012&view=rev Author: fgiust Date: 2009-02-17 09:02:53 +0000 (Tue, 17 Feb 2009) Log Message: ----------- automatic switch to *identity operations for ms sqlserver databases Modified Paths: -------------- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java trunk/openutils-testing/src/site/changes/changes.xml Modified: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java 2009-02-17 08:50:04 UTC (rev 1011) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java 2009-02-17 09:02:53 UTC (rev 1012) @@ -77,7 +77,9 @@ Class< ? extends DatabaseOperation> truncateOperation() default org.dbunit.operation.DeleteAllOperation.class; /** - * The database operation that will be used to load datasets. Defaults to org.dbunit.operation.InsertOperation + * The database operation that will be used to load datasets. Defaults to org.dbunit.operation.InsertOperation. For + * Sql Server databases the default is automatically set to MsSqlIndentityInsertOperation (allow writing of identity + * columns). */ Class< ? extends DatabaseOperation> insertOperation() default org.dbunit.operation.InsertOperation.class; Modified: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java 2009-02-17 08:50:04 UTC (rev 1011) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitTestContext.java 2009-02-17 09:02:53 UTC (rev 1012) @@ -15,6 +15,10 @@ */ package it.openutils.testing; +import it.openutils.testing.dbunit.CleanInsertOperation; +import it.openutils.testing.dbunit.MsSqlIndentityCleanInsertOperation; +import it.openutils.testing.dbunit.MsSqlIndentityInsertOperation; + import java.io.IOException; import java.net.URL; import java.sql.SQLException; @@ -146,6 +150,23 @@ } DatabaseOperation dbOperation = getDatabaseOperation(dbUnitExecution.insertOperation()); + String dbtype = connection.getConnection().getMetaData().getDatabaseProductName(); + + // default + if (InsertOperation.class.equals(dbOperation.getClass())) + { + if ("Microsoft SQL Server".equals(dbtype)) + { + dbOperation = new MsSqlIndentityInsertOperation(); + } + } + else if (CleanInsertOperation.class.equals(dbOperation.getClass())) + { + if ("Microsoft SQL Server".equals(dbtype)) + { + dbOperation = new MsSqlIndentityCleanInsertOperation(); + } + } for (String datasetFile : datasets) { importDataSet(createDataset(datasetFile), connection, tableFilter, dataSourceName, dbOperation); Modified: trunk/openutils-testing/src/site/changes/changes.xml =================================================================== --- trunk/openutils-testing/src/site/changes/changes.xml 2009-02-17 08:50:04 UTC (rev 1011) +++ trunk/openutils-testing/src/site/changes/changes.xml 2009-02-17 09:02:53 UTC (rev 1012) @@ -8,7 +8,10 @@ <author email="fgiust(at)users.sourceforge.net">Fabrizio Giustina</author> </properties> <body> - <release version="2.1" date="2008-04-27" description="2.1"> + <release version="2.1.1" date="2009-02-17" description="2.1.1"> + <action type="add" dev="fgiust"> Detection of ms sqlserver databases and automatic disabling of identities + (switch from CleanInsertOperation to MsSqlIndentityCleanInsertOperation and from InsertOperation to IndentityCleanInsertOperation).</action> + </release> <release version="2.1" date="2008-04-27" description="2.1"> <action type="update" dev="fgiust">Legacy base test classes (DbUnitTestCase, GenericsDbUnitTestCase) have been dropped. Stick with 2.0.x if you are still use them or upgrade to 2.1 for a forced migration</action> <action type="update" dev="fgiust">Updated spring, slf4j and commons-lang dependencies</action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |