From: <fg...@us...> - 2008-01-09 22:33:43
|
Revision: 523 http://openutils.svn.sourceforge.net/openutils/?rev=523&view=rev Author: fgiust Date: 2008-01-09 14:33:43 -0800 (Wed, 09 Jan 2008) Log Message: ----------- support for multiple databases Modified Paths: -------------- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitConfiguration.java trunk/openutils-testing-testng/pom.xml trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java Added Paths: ----------- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java trunk/openutils-testing-testng/src/test/ trunk/openutils-testing-testng/src/test/java/ trunk/openutils-testing-testng/src/test/java/it/ trunk/openutils-testing-testng/src/test/java/it/openutils/ trunk/openutils-testing-testng/src/test/java/it/openutils/testing/ trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/ trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/MultipleDatasourceDbUnitTest.java trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/SingleDatasourceDbUnitTest.java trunk/openutils-testing-testng/src/test/resources/ trunk/openutils-testing-testng/src/test/resources/db1-load.xml trunk/openutils-testing-testng/src/test/resources/db2-load.xml trunk/openutils-testing-testng/src/test/resources/log4j.dtd trunk/openutils-testing-testng/src/test/resources/log4j.xml trunk/openutils-testing-testng/src/test/resources/spring-tests.xml Property Changed: ---------------- trunk/openutils-testing-testng/ Modified: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitConfiguration.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitConfiguration.java 2008-01-08 11:50:27 UTC (rev 522) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitConfiguration.java 2008-01-09 22:33:43 UTC (rev 523) @@ -18,17 +18,6 @@ @Documented public @interface DbUnitConfiguration { - /** - * The resource locations to use for loading dbunit dataset. - */ - String[] datasets() default {}; + DbUnitExecution[] dbUnitExecutions() default {}; - String dataSource() default ""; - - String schema() default ""; - - String excludedTables() default "(^\\$(.*))"; // oracle recycle bin - - boolean truncateAll() default true; - } \ No newline at end of file Added: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java =================================================================== --- trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java (rev 0) +++ trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,34 @@ +package it.openutils.testing; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + + +/** + * @author fgiust + * @version $Id: $ + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Inherited +@Documented +public @interface DbUnitExecution { + + /** + * The resource locations to use for loading dbunit dataset. + */ + String[] datasets() default {}; + + String dataSource() default ""; + + String schema() default ""; + + String excludedTables() default "(^\\$(.*))"; // oracle recycle bin + + boolean truncateAll() default true; + +} \ No newline at end of file Property changes on: trunk/openutils-testing/src/main/java/it/openutils/testing/DbUnitExecution.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Property changes on: trunk/openutils-testing-testng ___________________________________________________________________ Name: svn:ignore - .checkstyle target .settings .classpath .project + .checkstyle target .settings .classpath .project test-output temp-testng-customsuite.xml Modified: trunk/openutils-testing-testng/pom.xml =================================================================== --- trunk/openutils-testing-testng/pom.xml 2008-01-08 11:50:27 UTC (rev 522) +++ trunk/openutils-testing-testng/pom.xml 2008-01-09 22:33:43 UTC (rev 523) @@ -129,6 +129,44 @@ </exclusion> </exclusions> </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.2.2.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>commons-dbcp</groupId> + <artifactId>commons-dbcp</artifactId> + <version>1.2.1</version> + <scope>test</scope> + <exclusions> + <exclusion> + <artifactId>xerces</artifactId> + <groupId>xerces</groupId> + </exclusion> + <exclusion> + <artifactId>xml-apis</artifactId> + <groupId>xml-apis</groupId> + </exclusion> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-jdbc</artifactId> + <version>${spring.version}</version> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> </dependencies> <properties> <spring.version>2.5</spring.version> Modified: trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java =================================================================== --- trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java 2008-01-08 11:50:27 UTC (rev 522) +++ trunk/openutils-testing-testng/src/main/java/it/openutils/testing/testng/AbstractDbUnitTestNGSpringContextTests.java 2008-01-09 22:33:43 UTC (rev 523) @@ -1,6 +1,7 @@ package it.openutils.testing.testng; import it.openutils.testing.DbUnitConfiguration; +import it.openutils.testing.DbUnitExecution; import it.openutils.testing.DbUnitUtils; import it.openutils.testing.RegExpTableFilter; @@ -26,7 +27,7 @@ import org.dbunit.operation.DatabaseOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests; +import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.annotations.BeforeMethod; @@ -34,7 +35,7 @@ * @author fgiust * @version $Id: $ */ -public class AbstractDbUnitTestNGSpringContextTests extends AbstractTransactionalTestNGSpringContextTests +public class AbstractDbUnitTestNGSpringContextTests extends AbstractTestNGSpringContextTests { /** @@ -47,7 +48,11 @@ */ private Map<String, IDataSet> datasetCache = new HashMap<String, IDataSet>(); - protected static IDataSet truncateDataSet; + /** + * Truncate dataset cache. This is kept as a static attribute since the creation of the dataset is very expensive + * and it doesn't change across tests. + */ + protected static Map<String, IDataSet> truncateDataSetCache = new HashMap<String, IDataSet>(); /** * Setup the Database before running the test method. @@ -57,26 +62,40 @@ @BeforeMethod protected void setUpDbUnit() throws Exception { - final DbUnitConfiguration dbUnitConfiguration = getClass().getAnnotation(DbUnitConfiguration.class); - if (dbUnitConfiguration != null) + DbUnitExecution singleDbUnitExecution = getClass().getAnnotation(DbUnitExecution.class); + + DbUnitExecution[] executions; + if (singleDbUnitExecution != null) { - String[] datasets = dbUnitConfiguration.datasets(); + executions = new DbUnitExecution[]{singleDbUnitExecution }; + } + else + { + DbUnitConfiguration dbUnitConfiguration = getClass().getAnnotation(DbUnitConfiguration.class); + executions = dbUnitConfiguration.dbUnitExecutions(); + } - IDatabaseConnection connection = new DatabaseConnection(getDatasource(dbUnitConfiguration.dataSource()) - .getConnection(), dbUnitConfiguration.schema()); + for (DbUnitExecution dbUnitExecution : executions) + { + String[] datasets = dbUnitExecution.datasets(); + String dataSourceName = dbUnitExecution.dataSource(); + IDatabaseConnection connection = new DatabaseConnection( + getDatasource(dataSourceName).getConnection(), + dbUnitExecution.schema()); + try { - ITableFilter tableFilter = new RegExpTableFilter(dbUnitConfiguration.excludedTables()); + ITableFilter tableFilter = new RegExpTableFilter(dbUnitExecution.excludedTables()); - if (dbUnitConfiguration.truncateAll()) + if (dbUnitExecution.truncateAll()) { - truncateAll(connection, tableFilter); + truncateAll(connection, tableFilter, dataSourceName); } for (String datasetFile : datasets) { - importDataSet(createDataset(datasetFile), connection, tableFilter); + importDataSet(createDataset(datasetFile), connection, tableFilter, dataSourceName); } } finally @@ -108,9 +127,10 @@ return dataSet; } - private void importDataSet(IDataSet dataSet, IDatabaseConnection connection, ITableFilter tableFilter) - throws SQLException, DataSetException, DatabaseUnitException + private void importDataSet(IDataSet dataSet, IDatabaseConnection connection, ITableFilter tableFilter, + String dataSourceName) throws SQLException, DataSetException, DatabaseUnitException { + if (dataSet == null) { throw new IllegalArgumentException("dataSet is null"); @@ -120,6 +140,7 @@ log.debug("Tables: {}", ArrayUtils.toString(orderedDataset.getTableNames())); // if a sorted dataset is available, use table sequence for sorting + IDataSet truncateDataSet = getTruncateDataset(dataSourceName, connection.getSchema()); if (truncateDataSet != null) { ITableFilter filter = new SequenceTableFilter(truncateDataSet.getTableNames()); @@ -140,9 +161,10 @@ * @throws DataSetException * @throws DatabaseUnitException */ - private void truncateAll(IDatabaseConnection connection, ITableFilter tableFilter) throws SQLException, - DataSetException, DatabaseUnitException + private void truncateAll(IDatabaseConnection connection, ITableFilter tableFilter, String dataSourceName) + throws SQLException, DataSetException, DatabaseUnitException { + IDataSet truncateDataSet = getTruncateDataset(dataSourceName, connection.getSchema()); if (truncateDataSet == null) { log.debug("Generating sorted dataset for initial cleanup"); @@ -152,6 +174,7 @@ tableFilter, unsortedDataSet).getTableNames()); truncateDataSet = new FilteredDataSet(tableFilter, new FilteredDataSet(filter, unsortedDataSet)); + storeTruncateDataset(dataSourceName, connection.getSchema(), truncateDataSet); log.debug("Sorted dataset generated"); } @@ -162,6 +185,16 @@ } } + private IDataSet getTruncateDataset(String datasourceName, String schema) + { + return truncateDataSetCache.get(datasourceName + "_" + StringUtils.defaultString(schema)); + } + + private IDataSet storeTruncateDataset(String datasourceName, String schema, IDataSet dataset) + { + return truncateDataSetCache.put(datasourceName + "_" + StringUtils.defaultString(schema), dataset); + } + @SuppressWarnings("unchecked") protected DataSource getDatasource(String name) { Added: trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/MultipleDatasourceDbUnitTest.java =================================================================== --- trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/MultipleDatasourceDbUnitTest.java (rev 0) +++ trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/MultipleDatasourceDbUnitTest.java 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,27 @@ +package it.openutils.testing.testng; + +import it.openutils.testing.DbUnitConfiguration; +import it.openutils.testing.DbUnitExecution; + +import org.springframework.test.context.ContextConfiguration; +import org.testng.annotations.Test; + + +/** + * @author fgiust + * @version $Id: $ + */ +@ContextConfiguration(locations = {"/spring-tests.xml" }) +@DbUnitConfiguration(dbUnitExecutions = { + @DbUnitExecution(datasets = {"/db1-load.xml" }, dataSource = "dataSource1"), + @DbUnitExecution(datasets = {"/db2-load.xml" }, dataSource = "dataSource2") }) +public class MultipleDatasourceDbUnitTest extends AbstractDbUnitTestNGSpringContextTests +{ + + @Test + public void testLoad() throws Exception + { + // do nothing + } + +} Property changes on: trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/MultipleDatasourceDbUnitTest.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/SingleDatasourceDbUnitTest.java =================================================================== --- trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/SingleDatasourceDbUnitTest.java (rev 0) +++ trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/SingleDatasourceDbUnitTest.java 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,31 @@ +package it.openutils.testing.testng; + +import it.openutils.testing.DbUnitExecution; + +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestExecutionListeners; +import org.springframework.test.context.transaction.TransactionConfiguration; +import org.springframework.test.context.transaction.TransactionalTestExecutionListener; +import org.springframework.transaction.annotation.Transactional; +import org.testng.annotations.Test; + + +/** + * @author fgiust + * @version $Id: $ + */ +@ContextConfiguration(locations = {"/spring-tests.xml" }) +@DbUnitExecution(datasets = {"/db1-load.xml" }, dataSource = "dataSource1") +@TestExecutionListeners({TransactionalTestExecutionListener.class }) +@Transactional +@TransactionConfiguration(transactionManager = "transactionManager1") +public class SingleDatasourceDbUnitTest extends AbstractDbUnitTestNGSpringContextTests +{ + + @Test + public void testLoad() throws Exception + { + // do nothing + } + +} Property changes on: trunk/openutils-testing-testng/src/test/java/it/openutils/testing/testng/SingleDatasourceDbUnitTest.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/resources/db1-load.xml =================================================================== --- trunk/openutils-testing-testng/src/test/resources/db1-load.xml (rev 0) +++ trunk/openutils-testing-testng/src/test/resources/db1-load.xml 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,8 @@ +<dataset> + <table name="ONE"> + <column>ONE</column> + <row> + <value>1</value> + </row> + </table> +</dataset> Property changes on: trunk/openutils-testing-testng/src/test/resources/db1-load.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/resources/db2-load.xml =================================================================== --- trunk/openutils-testing-testng/src/test/resources/db2-load.xml (rev 0) +++ trunk/openutils-testing-testng/src/test/resources/db2-load.xml 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,8 @@ +<dataset> + <table name="ONE"> + <column>TWO</column> + <row> + <value>2</value> + </row> + </table> +</dataset> Property changes on: trunk/openutils-testing-testng/src/test/resources/db2-load.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/resources/log4j.dtd =================================================================== --- trunk/openutils-testing-testng/src/test/resources/log4j.dtd (rev 0) +++ trunk/openutils-testing-testng/src/test/resources/log4j.dtd 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<!-- Authors: Chris Taylor, Ceki Gulcu. --> + +<!-- Version: 1.2 --> + +<!-- A configuration element consists of optional renderer +elements,appender elements, categories and an optional root +element. --> + +<!ELEMENT log4j:configuration (renderer*, appender*,(category|logger)*,root?, + categoryFactory?)> + +<!-- The "threshold" attribute takes a level value such that all --> +<!-- logging statements with a level equal or below this value are --> +<!-- disabled. --> + +<!-- Setting the "debug" enable the printing of internal log4j logging --> +<!-- statements. --> + +<!-- By default, debug attribute is "null", meaning that we not do touch --> +<!-- internal log4j logging settings. The "null" value for the threshold --> +<!-- attribute can be misleading. The threshold field of a repository --> +<!-- cannot be set to null. The "null" value for the threshold attribute --> +<!-- simply means don't touch the threshold field, the threshold field --> +<!-- keeps its old value. --> + +<!ATTLIST log4j:configuration + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + threshold (all|debug|info|warn|error|fatal|off|null) "null" + debug (true|false|null) "null" +> + +<!-- renderer elements allow the user to customize the conversion of --> +<!-- message objects to String. --> + +<!ELEMENT renderer EMPTY> +<!ATTLIST renderer + renderedClass CDATA #REQUIRED + renderingClass CDATA #REQUIRED +> + +<!-- Appenders must have a name and a class. --> +<!-- Appenders may contain an error handler, a layout, optional parameters --> +<!-- and filters. They may also reference (or include) other appenders. --> +<!ELEMENT appender (errorHandler?, param*, layout?, filter*, appender-ref*)> +<!ATTLIST appender + name ID #REQUIRED + class CDATA #REQUIRED +> + +<!ELEMENT layout (param*)> +<!ATTLIST layout + class CDATA #REQUIRED +> + +<!ELEMENT filter (param*)> +<!ATTLIST filter + class CDATA #REQUIRED +> + +<!-- ErrorHandlers can be of any class. They can admit any number of --> +<!-- parameters. --> + +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*, appender-ref?)> +<!ATTLIST errorHandler + class CDATA #REQUIRED +> + +<!ELEMENT root-ref EMPTY> + +<!ELEMENT logger-ref EMPTY> +<!ATTLIST logger-ref + ref IDREF #REQUIRED +> + +<!ELEMENT param EMPTY> +<!ATTLIST param + name CDATA #REQUIRED + value CDATA #REQUIRED +> + + +<!-- The priority class is org.apache.log4j.Level by default --> +<!ELEMENT priority (param*)> +<!ATTLIST priority + class CDATA #IMPLIED + value CDATA #REQUIRED +> + +<!-- The level class is org.apache.log4j.Level by default --> +<!ELEMENT level (param*)> +<!ATTLIST level + class CDATA #IMPLIED + value CDATA #REQUIRED +> + + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named category. --> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)> +<!ATTLIST category + class CDATA #IMPLIED + name CDATA #REQUIRED + additivity (true|false) "true" +> + +<!-- If no level element is specified, then the configurator MUST not --> +<!-- touch the level of the named logger. --> +<!ELEMENT logger (level?,appender-ref*)> +<!ATTLIST logger + name ID #REQUIRED + additivity (true|false) "true" +> + + +<!ELEMENT categoryFactory (param*)> +<!ATTLIST categoryFactory + class CDATA #REQUIRED> + +<!ELEMENT appender-ref EMPTY> +<!ATTLIST appender-ref + ref IDREF #REQUIRED +> + +<!-- If no priority element is specified, then the configurator MUST not --> +<!-- touch the priority of root. --> +<!-- The root category always exists and cannot be subclassed. --> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)> + + +<!-- ==================================================================== --> +<!-- A logging event --> +<!-- ==================================================================== --> +<!ELEMENT log4j:eventSet (log4j:event*)> +<!ATTLIST log4j:eventSet + xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/" + version (1.1|1.2) "1.2" + includesLocationInfo (true|false) "true" +> + + + +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, + log4j:locationInfo?) > + +<!-- The timestamp format is application dependent. --> +<!ATTLIST log4j:event + logger CDATA #REQUIRED + level CDATA #REQUIRED + thread CDATA #REQUIRED + timestamp CDATA #REQUIRED +> + +<!ELEMENT log4j:message (#PCDATA)> +<!ELEMENT log4j:NDC (#PCDATA)> + +<!ELEMENT log4j:throwable (#PCDATA)> + +<!ELEMENT log4j:locationInfo EMPTY> +<!ATTLIST log4j:locationInfo + class CDATA #REQUIRED + method CDATA #REQUIRED + file CDATA #REQUIRED + line CDATA #REQUIRED +> Property changes on: trunk/openutils-testing-testng/src/test/resources/log4j.dtd ___________________________________________________________________ Name: svn:mime-type + text/xml Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/resources/log4j.xml =================================================================== --- trunk/openutils-testing-testng/src/test/resources/log4j.xml (rev 0) +++ trunk/openutils-testing-testng/src/test/resources/log4j.xml 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> +<log4j:configuration> + <!-- log4j test configuration --> + <appender name="test-appender" class="org.apache.log4j.ConsoleAppender"> + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%-5p %c.%M(%C{1}.java:%L) %m%n" /> + </layout> + </appender> + <category name="org"> + <priority value="WARN" /> + </category> + <category name="com"> + <priority value="WARN" /> + </category> + <category name="net"> + <priority value="WARN" /> + </category> + <category name="info"> + <priority value="WARN" /> + </category> + <category name="it"> + <priority value="WARN" /> + </category> + <root> + <priority value="debug" /> + <appender-ref ref="test-appender" /> + </root> +</log4j:configuration> \ No newline at end of file Property changes on: trunk/openutils-testing-testng/src/test/resources/log4j.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native Added: trunk/openutils-testing-testng/src/test/resources/spring-tests.xml =================================================================== --- trunk/openutils-testing-testng/src/test/resources/spring-tests.xml (rev 0) +++ trunk/openutils-testing-testng/src/test/resources/spring-tests.xml 2008-01-09 22:33:43 UTC (rev 523) @@ -0,0 +1,23 @@ +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> + <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> + <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" /> + <property name="url" value="jdbc:derby:target/test-db1;create=true" /> + <property name="username" value="test" /> + <property name="password" value="test" /> + </bean> + <bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> + <property name="dataSource" ref="dataSource1" /> + </bean> + <bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> + <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" /> + <property name="url" value="jdbc:derby:target/test-db2;create=true" /> + <property name="username" value="test" /> + <property name="password" value="test" /> + </bean> + <bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> + <property name="dataSource" ref="dataSource2" /> + </bean> +</beans> \ No newline at end of file Property changes on: trunk/openutils-testing-testng/src/test/resources/spring-tests.xml ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |