You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2011/12/31 14:43:10 UTC

svn commit: r1226088 - in /camel/trunk/components/camel-sql: ./ src/test/java/org/apache/camel/component/sql/ src/test/java/org/apache/camel/processor/aggregate/jdbc/ src/test/java/org/apache/camel/processor/idempotent/jdbc/ src/test/resources/org/apac...

Author: cmueller
Date: Sat Dec 31 13:43:09 2011
New Revision: 1226088

URL: http://svn.apache.org/viewvc?rev=1226088&view=rev
Log:
CAMEL-4734: Consolidate the database vendors in our unit tests

Added:
    camel/trunk/components/camel-sql/src/test/resources/sql/createAndPopulateDatabase.sql
Modified:
    camel/trunk/components/camel-sql/pom.xml
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlEndpointTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlPreserveHeaderTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlProducerConcurrentTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlTransactedRouteTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/AbstractJdbcAggregationTestSupport.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryMultipleRepoTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/CustomizedJdbcMessageIdRepositoryTest.java
    camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepositoryTest.java
    camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml
    camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/customized-spring.xml
    camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/spring.xml
    camel/trunk/components/camel-sql/src/test/resources/sql/init.sql
    camel/trunk/components/camel-sql/src/test/resources/sql/init2.sql

Modified: camel/trunk/components/camel-sql/pom.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/pom.xml?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/pom.xml (original)
+++ camel/trunk/components/camel-sql/pom.xml Sat Dec 31 13:43:09 2011
@@ -76,15 +76,10 @@
             <scope>test</scope>
         </dependency>
 	    <dependency>
-	      <groupId>org.hsqldb</groupId>
-	      <artifactId>hsqldb</artifactId>
+	      <groupId>org.apache.derby</groupId>
+	      <artifactId>derby</artifactId>
 	      <scope>test</scope>
 	    </dependency>
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <scope>test</scope>
-        </dependency>
 	</dependencies>
 	
     <build>

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java Sat Dec 31 13:43:09 2011
@@ -19,32 +19,36 @@ package org.apache.camel.component.sql;
 import java.util.List;
 import java.util.Map;
 
-import javax.sql.DataSource;
 
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlDataSourceRefTest extends CamelTestSupport {
-    protected String driverClass = "org.hsqldb.jdbcDriver";
-    protected String url = "jdbc:hsqldb:mem:camel_jdbc";
-    protected String user = "sa";
-    protected String password = "";
-    private JdbcTemplate jdbcTemplate;
+    
+    private EmbeddedDatabase db;
 
     @Override
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry jndi = super.createRegistry();
-        jndi.bind("jdbc/myDataSource", createDataSource());
+        
+        // START SNIPPET: e2
+        // this is the database we create with some initial data for our unit test
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
+        // END SNIPPET: e2
+        
+        jndi.bind("jdbc/myDataSource", db);
+        
         return jndi;
     }
 
@@ -73,31 +77,11 @@ public class SqlDataSourceRefTest extend
         // END SNIPPET: e3
     }
 
-    @Before
-    public void setUp() throws Exception {
-        Class.forName(driverClass);
-        super.setUp();
-
-        jdbcTemplate = new JdbcTemplate(createDataSource());
-        // START SNIPPET: e2
-        // this is the database we create with some initial data for our unit test
-        jdbcTemplate.execute("create table projects (id integer primary key,"
-                             + "project varchar(10), license varchar(5))");
-        jdbcTemplate.execute("insert into projects values (1, 'Camel', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (2, 'AMQ', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (3, 'Linux', 'XXX')");
-        // END SNIPPET: e2
-    }
-
     @After
     public void tearDown() throws Exception {
         super.tearDown();
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(createDataSource());
-        jdbcTemplate.execute("drop table projects");
-    }
-
-    private DataSource createDataSource() {
-        return new SingleConnectionDataSource(url, user, password, true);
+        
+        db.shutdown();
     }
 
     @Override
@@ -112,5 +96,4 @@ public class SqlDataSourceRefTest extend
             }
         };
     }
-
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlEndpointTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlEndpointTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlEndpointTest.java Sat Dec 31 13:43:09 2011
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.component.sql;
 
-import javax.sql.DataSource;
-
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
@@ -25,18 +23,16 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlEndpointTest extends CamelTestSupport {
-    protected String driverClass = "org.hsqldb.jdbcDriver";
-    protected String url = "jdbc:hsqldb:mem:camel_jdbc";
-    protected String user = "sa";
-    protected String password = "";
-    private DataSource ds;
-    private JdbcTemplate jdbcTemplate;
+
+    private EmbeddedDatabase db;
 
     @Test
     public void testSQLEndpoint() throws Exception {
@@ -50,33 +46,26 @@ public class SqlEndpointTest extends Cam
 
     @Before
     public void setUp() throws Exception {
-        Class.forName(driverClass);
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
+        
         super.setUp();
-
-        jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("create table projects (id integer primary key,"
-                             + "project varchar(10), license varchar(5))");
-        jdbcTemplate.execute("insert into projects values (1, 'Camel', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (2, 'AMQ', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (3, 'Linux', 'XXX')");
     }
 
     @After
     public void tearDown() throws Exception {
         super.tearDown();
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("drop table projects");
+        
+        db.shutdown();
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() throws Exception {
-                ds = new SingleConnectionDataSource(url, user, password, true);
-
                 SqlEndpoint sql = new SqlEndpoint();
                 sql.setCamelContext(context);
-                sql.setJdbcTemplate(new JdbcTemplate(ds));
+                sql.setJdbcTemplate(new JdbcTemplate(db));
                 sql.setQuery("select * from projects");
 
                 context.addEndpoint("mysql", sql);

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlPreserveHeaderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlPreserveHeaderTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlPreserveHeaderTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlPreserveHeaderTest.java Sat Dec 31 13:43:09 2011
@@ -16,27 +16,22 @@
  */
 package org.apache.camel.component.sql;
 
-import javax.sql.DataSource;
-
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlPreserveHeaderTest extends CamelTestSupport {
-    protected String driverClass = "org.hsqldb.jdbcDriver";
-    protected String url = "jdbc:hsqldb:mem:camel_jdbc";
-    protected String user = "sa";
-    protected String password = "";
-    private DataSource ds;
-    private JdbcTemplate jdbcTemplate;
+    
+    private EmbeddedDatabase db;
 
     @Test
     public void testPreserveHeaders() throws Exception {
@@ -51,31 +46,24 @@ public class SqlPreserveHeaderTest exten
 
     @Before
     public void setUp() throws Exception {
-        Class.forName(driverClass);
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
+        
         super.setUp();
-
-        jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("create table projects (id integer primary key,"
-                             + "project varchar(10), license varchar(5))");
-        jdbcTemplate.execute("insert into projects values (1, 'Camel', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (2, 'AMQ', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (3, 'Linux', 'XXX')");
     }
 
     @After
     public void tearDown() throws Exception {
         super.tearDown();
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("drop table projects");
+        
+        db.shutdown();
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() {
-                ds = new SingleConnectionDataSource(url, user, password, true);
-
-                getContext().getComponent("sql", SqlComponent.class).setDataSource(ds);
+                getContext().getComponent("sql", SqlComponent.class).setDataSource(db);
 
                 errorHandler(noErrorHandler());
 
@@ -86,5 +74,4 @@ public class SqlPreserveHeaderTest exten
             }
         };
     }
-
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlProducerConcurrentTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlProducerConcurrentTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlProducerConcurrentTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlProducerConcurrentTest.java Sat Dec 31 13:43:09 2011
@@ -23,26 +23,26 @@ import java.util.concurrent.ConcurrentHa
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-import javax.sql.DataSource;
 
+import org.apache.camel.EndpointInject;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlProducerConcurrentTest extends CamelTestSupport {
-    protected String driverClass = "org.hsqldb.jdbcDriver";
-    protected String url = "jdbc:hsqldb:mem:camel_jdbc";
-    protected String user = "sa";
-    protected String password = "";
-    private DataSource ds;
-    private JdbcTemplate jdbcTemplate;
+    
+    @EndpointInject(uri = "mock:result")
+    private MockEndpoint mockEndpoint;
+    private EmbeddedDatabase db;
 
     @Test
     public void testNoConcurrentProducers() throws Exception {
@@ -55,15 +55,16 @@ public class SqlProducerConcurrentTest e
     }
 
     private void doSendMessages(int files, int poolSize) throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(files);
+        mockEndpoint.expectedMessageCount(files);
 
         ExecutorService executor = Executors.newFixedThreadPool(poolSize);
         Map<Integer, Future<?>> responses = new ConcurrentHashMap<Integer, Future<?>>();
+
         for (int i = 0; i < files; i++) {
             final int index = i;
             Future<?> out = executor.submit(new Callable<Object>() {
                 public Object call() throws Exception {
-                    int id = index % 3;
+                    int id = (index % 3) + 1;
                     return template.requestBody("direct:simple", "" + id);
                 }
             });
@@ -71,7 +72,6 @@ public class SqlProducerConcurrentTest e
         }
 
         assertMockEndpointsSatisfied();
-
         assertEquals(files, responses.size());
 
         for (int i = 0; i < files; i++) {
@@ -90,34 +90,27 @@ public class SqlProducerConcurrentTest e
 
     @Before
     public void setUp() throws Exception {
-        Class.forName(driverClass);
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
+        
         super.setUp();
-
-        jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("create table projects (id integer primary key,"
-                             + "project varchar(10), license varchar(5))");
-        jdbcTemplate.execute("insert into projects values (0, 'Camel', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (1, 'AMQ', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (2, 'Linux', 'XXX')");
     }
 
     @After
     public void tearDown() throws Exception {
         super.tearDown();
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("drop table projects");
+        
+        db.shutdown();
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() {
-                ds = new SingleConnectionDataSource(url, user, password, true);
-                getContext().getComponent("sql", SqlComponent.class).setDataSource(ds);
+                getContext().getComponent("sql", SqlComponent.class).setDataSource(db);
 
                 from("direct:simple").to("sql:select * from projects where id = # order by id").to("mock:result");
             }
         };
     }
-
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java Sat Dec 31 13:43:09 2011
@@ -23,8 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.sql.DataSource;
-
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
@@ -36,17 +34,16 @@ import org.springframework.dao.DataAcces
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.jdbc.UncategorizedSQLException;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlRouteTest extends CamelTestSupport {
-    protected String driverClass = "org.hsqldb.jdbcDriver";
-    protected String url = "jdbc:hsqldb:mem:camel_jdbc";
-    protected String user = "sa";
-    protected String password = "";
-    private DataSource ds;
+
+    private EmbeddedDatabase db;
     private JdbcTemplate jdbcTemplate;
 
     @Test
@@ -256,14 +253,10 @@ public class SqlRouteTest extends CamelT
     
     @Before
     public void setUp() throws Exception {
-        Class.forName(driverClass);
-        ds = new SingleConnectionDataSource(url, user, password, true);
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).addScript("sql/createAndPopulateDatabase.sql").build();
         
-        jdbcTemplate = new JdbcTemplate(ds);
-        jdbcTemplate.execute("create table projects (id integer primary key, project varchar(10), license varchar(5))");
-        jdbcTemplate.execute("insert into projects values (1, 'Camel', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (2, 'AMQ', 'ASF')");
-        jdbcTemplate.execute("insert into projects values (3, 'Linux', 'XXX')");
+        jdbcTemplate = new JdbcTemplate(db);
         
         super.setUp();
     }
@@ -272,15 +265,14 @@ public class SqlRouteTest extends CamelT
     public void tearDown() throws Exception {
         super.tearDown();
         
-        jdbcTemplate.execute("drop table projects");
-        ((SingleConnectionDataSource) ds).destroy();
+        db.shutdown();
     }
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
             public void configure() {
-                getContext().getComponent("sql", SqlComponent.class).setDataSource(ds);
+                getContext().getComponent("sql", SqlComponent.class).setDataSource(db);
 
                 errorHandler(noErrorHandler());
                 

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlTransactedRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlTransactedRouteTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlTransactedRouteTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlTransactedRouteTest.java Sat Dec 31 13:43:09 2011
@@ -18,8 +18,6 @@ package org.apache.camel.component.sql;
 
 import java.util.Map;
 
-import javax.sql.DataSource;
-
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
@@ -31,21 +29,17 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.jdbc.datasource.DriverManagerDataSource;
-import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
+import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
 
 /**
  * @version 
  */
 public class SqlTransactedRouteTest extends CamelTestSupport {
     
-    protected DataSource ds;
-    protected JdbcTemplate jdbc;
-    
-    private String driverClass = "org.hsqldb.jdbcDriver";
-    private String url = "jdbc:hsqldb:mem:camel_jdbc";
-    private String user = "sa";
-    private String password = "";
+    private EmbeddedDatabase db;
+    private JdbcTemplate jdbc;
     
     private String startEndpoint = "direct:start";
     private String sqlEndpoint = "sql:overriddenByTheHeader?dataSourceRef=testdb";
@@ -54,7 +48,7 @@ public class SqlTransactedRouteTest exte
     public void setUp() throws Exception {
         super.setUp();
         
-        jdbc = new JdbcTemplate(ds);
+        jdbc = new JdbcTemplate(db);
         jdbc.execute("CREATE TABLE CUSTOMER (ID VARCHAR(15) NOT NULL PRIMARY KEY, NAME VARCHAR(100))");
     }
 
@@ -62,12 +56,12 @@ public class SqlTransactedRouteTest exte
     protected JndiRegistry createRegistry() throws Exception {
         JndiRegistry reg = super.createRegistry();
         
-        ds = new SingleConnectionDataSource(url, user, password, true);
-        ((DriverManagerDataSource) ds).setDriverClassName(driverClass);
-        reg.bind("testdb", ds);
+        db = new EmbeddedDatabaseBuilder()
+            .setType(EmbeddedDatabaseType.DERBY).build();
+        reg.bind("testdb", db);
         
         DataSourceTransactionManager txMgr = new DataSourceTransactionManager();
-        txMgr.setDataSource(ds);
+        txMgr.setDataSource(db);
         reg.bind("txManager", txMgr);
         
         SpringTransactionPolicy txPolicy = new SpringTransactionPolicy();
@@ -82,8 +76,7 @@ public class SqlTransactedRouteTest exte
     public void tearDown() throws Exception {
         super.tearDown();
         
-        JdbcTemplate jdbc = new JdbcTemplate(ds);
-        jdbc.execute("drop table customer");
+        db.shutdown();
     }
     
     @Test

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/AbstractJdbcAggregationTestSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/AbstractJdbcAggregationTestSupport.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/AbstractJdbcAggregationTestSupport.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/AbstractJdbcAggregationTestSupport.java Sat Dec 31 13:43:09 2011
@@ -19,29 +19,25 @@ package org.apache.camel.processor.aggre
 import org.apache.camel.Exchange;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Before;
-import org.springframework.context.ApplicationContext;
+import org.apache.camel.test.junit4.CamelSpringTestSupport;
+import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public abstract class AbstractJdbcAggregationTestSupport extends CamelTestSupport {
+public abstract class AbstractJdbcAggregationTestSupport extends CamelSpringTestSupport {
 
     JdbcAggregationRepository repo;
 
-    @Before
     @Override
-    public void setUp() throws Exception {
-        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml");
-        repo = applicationContext.getBean("repo1", JdbcAggregationRepository.class);
+    public void postProcessTest() throws Exception {
+        super.postProcessTest();
         
+        repo = applicationContext.getBean("repo1", JdbcAggregationRepository.class);
         configureJdbcAggregationRepository();
-        
-        super.setUp();
     }
-
+    
     void configureJdbcAggregationRepository() {
     }
-
+    
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {
@@ -62,6 +58,16 @@ public abstract class AbstractJdbcAggreg
     long getCompletionInterval() {
         return 5000;
     }
+    
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml");
+    }
+
+    @Override
+    protected int getExpectedRouteCount() {
+        return 0;
+    }
 
     public static class MyAggregationStrategy implements AggregationStrategy {
 

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryMultipleRepoTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryMultipleRepoTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryMultipleRepoTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/aggregate/jdbc/JdbcAggregationRepositoryMultipleRepoTest.java Sat Dec 31 13:43:09 2011
@@ -18,21 +18,12 @@ package org.apache.camel.processor.aggre
 
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.DefaultExchange;
-import org.apache.camel.test.junit4.CamelTestSupport;
+import org.apache.camel.test.junit4.CamelSpringTestSupport;
 import org.junit.Test;
-import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
-public class JdbcAggregationRepositoryMultipleRepoTest extends CamelTestSupport {
-
-    ApplicationContext applicationContext;
-
-    @Override
-    public void setUp() throws Exception {
-        applicationContext = new ClassPathXmlApplicationContext("org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml");
-
-        super.setUp();
-    }
+public class JdbcAggregationRepositoryMultipleRepoTest extends CamelSpringTestSupport {
 
     @Test
     public void testMultipeRepo() {
@@ -103,4 +94,14 @@ public class JdbcAggregationRepositoryMu
         actual = repo2.get(context, "foo");
         assertEquals("Bye World", actual.getIn().getBody());
     }
+
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml");
+    }
+
+    @Override
+    protected int getExpectedRouteCount() {
+        return 0;
+    }
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/CustomizedJdbcMessageIdRepositoryTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/CustomizedJdbcMessageIdRepositoryTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/CustomizedJdbcMessageIdRepositoryTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/CustomizedJdbcMessageIdRepositoryTest.java Sat Dec 31 13:43:09 2011
@@ -28,16 +28,10 @@ import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.support.TransactionCallback;
-import org.springframework.transaction.support.TransactionTemplate;
 
 public class CustomizedJdbcMessageIdRepositoryTest extends CamelSpringTestSupport {
 
     protected static final String SELECT_ALL_STRING = "SELECT messageId FROM CUSTOMIZED_MESSAGE_REPOSITORY WHERE processorName = ?";
-    protected static final String DELETE_ALL_STRING = "DELETE FROM CUSTOMIZED_MESSAGE_REPOSITORY WHERE processorName = ?";
     protected static final String PROCESSOR_NAME = "myProcessorName";
 
     protected JdbcTemplate jdbcTemplate;
@@ -57,28 +51,8 @@ public class CustomizedJdbcMessageIdRepo
         dataSource = context.getRegistry().lookup("dataSource", DataSource.class);
         jdbcTemplate = new JdbcTemplate(dataSource);
         jdbcTemplate.afterPropertiesSet();
-        
-        setupRepository();
     }
     
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/processor/idempotent/jdbc/customized-spring.xml");
-    }
-
-    protected void setupRepository() {
-        TransactionTemplate transactionTemplate = new TransactionTemplate();
-        transactionTemplate.setTransactionManager(new DataSourceTransactionManager(dataSource));
-        transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
-        
-        transactionTemplate.execute(new TransactionCallback<Boolean>() {
-            public Boolean doInTransaction(TransactionStatus status) {
-                jdbcTemplate.update(DELETE_ALL_STRING, PROCESSOR_NAME);
-                return Boolean.TRUE;
-            }
-        });
-    }
-
     @Test
     public void testDuplicateMessagesAreFilteredOut() throws Exception {
         resultEndpoint.expectedBodiesReceived("one", "two", "three");
@@ -101,4 +75,9 @@ public class CustomizedJdbcMessageIdRepo
         assertTrue(receivedMessageIds.contains("2"));
         assertTrue(receivedMessageIds.contains("3"));
     }
+    
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/processor/idempotent/jdbc/customized-spring.xml");
+    }
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepositoryTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepositoryTest.java?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepositoryTest.java (original)
+++ camel/trunk/components/camel-sql/src/test/java/org/apache/camel/processor/idempotent/jdbc/JdbcMessageIdRepositoryTest.java Sat Dec 31 13:43:09 2011
@@ -31,18 +31,11 @@ import org.junit.Before;
 import org.junit.Test;
 import org.springframework.context.support.AbstractApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.dao.DataAccessException;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.TransactionDefinition;
-import org.springframework.transaction.TransactionStatus;
-import org.springframework.transaction.support.TransactionCallback;
-import org.springframework.transaction.support.TransactionTemplate;
 
 public class JdbcMessageIdRepositoryTest extends CamelSpringTestSupport {
 
     protected static final String SELECT_ALL_STRING = "SELECT messageId FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ?";
-    protected static final String DELETE_ALL_STRING = "DELETE FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ?";
     protected static final String PROCESSOR_NAME = "myProcessorName";
 
     protected JdbcTemplate jdbcTemplate;
@@ -62,33 +55,8 @@ public class JdbcMessageIdRepositoryTest
         dataSource = context.getRegistry().lookup("dataSource", DataSource.class);
         jdbcTemplate = new JdbcTemplate(dataSource);
         jdbcTemplate.afterPropertiesSet();
-        
-        setupRepository();
     }
     
-    @Override
-    protected AbstractApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/processor/idempotent/jdbc/spring.xml");
-    }
-
-    protected void setupRepository() {
-        TransactionTemplate transactionTemplate = new TransactionTemplate();
-        transactionTemplate.setTransactionManager(new DataSourceTransactionManager(dataSource));
-        transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
-        
-        transactionTemplate.execute(new TransactionCallback<Boolean>() {
-            public Boolean doInTransaction(TransactionStatus status) {
-                try {
-                    jdbcTemplate.execute("CREATE TABLE CAMEL_MESSAGEPROCESSED (processorName VARCHAR(20), messageId VARCHAR(10), createdAt timestamp)");
-                } catch (DataAccessException e) {
-                    // noop if table already exists 
-                }
-                jdbcTemplate.update(DELETE_ALL_STRING, PROCESSOR_NAME);
-                return Boolean.TRUE;
-            }
-        });
-    }
-
     @Test
     public void testDuplicateMessagesAreFilteredOut() throws Exception {
         resultEndpoint.expectedBodiesReceived("one", "two", "three");
@@ -151,4 +119,9 @@ public class JdbcMessageIdRepositoryTest
         assertTrue("Should contain message 1", receivedMessageIds.contains("1"));
         assertTrue("Should contain message 3", receivedMessageIds.contains("3"));
     }
+    
+    @Override
+    protected AbstractApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/processor/idempotent/jdbc/spring.xml");
+    }
 }
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml (original)
+++ camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/aggregate/jdbc/JdbcSpringDataSource.xml Sat Dec 31 13:43:09 2011
@@ -35,12 +35,12 @@
     <tx:annotation-driven transaction-manager="txManager"/>
 
 	<!-- In Memory Database #1 -->
-    <jdbc:embedded-database id="dataSource1" type="H2">
+    <jdbc:embedded-database id="dataSource1" type="DERBY">
         <jdbc:script location="classpath:/sql/init.sql"/>
     </jdbc:embedded-database>
 
     <!-- In Memory Database #2 -->
-    <jdbc:embedded-database id="dataSource2" type="H2">
+    <jdbc:embedded-database id="dataSource2" type="DERBY">
         <jdbc:script location="classpath:/sql/init2.sql"/>
     </jdbc:embedded-database>
 

Modified: camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/customized-spring.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/customized-spring.xml?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/customized-spring.xml (original)
+++ camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/customized-spring.xml Sat Dec 31 13:43:09 2011
@@ -17,24 +17,21 @@
 -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:camel="http://camel.apache.org/schema/spring"
+       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+           http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
            http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
-    <bean id="dataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
-        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:camel_jdbc"/>
-        <property name="username" value="sa"/>
-        <property name="password" value=""/>
-    </bean>
+    <jdbc:embedded-database id="dataSource" type="DERBY" />
     
     <!-- START SNIPPET: e1 -->
     <bean id="messageIdRepository" class="org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository">
     	<constructor-arg ref="dataSource" />
     	<constructor-arg value="myProcessorName" />
     	<property name="tableExistsString" value="SELECT 1 FROM CUSTOMIZED_MESSAGE_REPOSITORY WHERE 1 = 0" />
-    	<property name="createString" value="CREATE TABLE CUSTOMIZED_MESSAGE_REPOSITORY (processorName VARCHAR(255), messageId VARCHAR(100), createdAt DATETIME)" />
+    	<property name="createString" value="CREATE TABLE CUSTOMIZED_MESSAGE_REPOSITORY (processorName VARCHAR(255), messageId VARCHAR(100), createdAt TIMESTAMP)" />
     	<property name="queryString" value="SELECT COUNT(*) FROM CUSTOMIZED_MESSAGE_REPOSITORY WHERE processorName = ? AND messageId = ?" />
     	<property name="insertString" value="INSERT INTO CUSTOMIZED_MESSAGE_REPOSITORY (processorName, messageId, createdAt) VALUES (?, ?, ?)" />
     	<property name="deleteString" value="DELETE FROM CUSTOMIZED_MESSAGE_REPOSITORY WHERE processorName = ? AND messageId = ?" />

Modified: camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/spring.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/spring.xml?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/spring.xml (original)
+++ camel/trunk/components/camel-sql/src/test/resources/org/apache/camel/processor/idempotent/jdbc/spring.xml Sat Dec 31 13:43:09 2011
@@ -17,18 +17,15 @@
 -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:camel="http://camel.apache.org/schema/spring"
+       xmlns:jdbc="http://www.springframework.org/schema/jdbc"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+           http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
            http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
 
 	<!-- START SNIPPET: e1 -->
-    <bean id="dataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
-        <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:camel_jdbc"/>
-        <property name="username" value="sa"/>
-        <property name="password" value=""/>
-    </bean>
+	<jdbc:embedded-database id="dataSource" type="DERBY" />
     <!-- END SNIPPET: e1 -->
     
     <!-- START SNIPPET: e2 -->

Added: camel/trunk/components/camel-sql/src/test/resources/sql/createAndPopulateDatabase.sql
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/sql/createAndPopulateDatabase.sql?rev=1226088&view=auto
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/sql/createAndPopulateDatabase.sql (added)
+++ camel/trunk/components/camel-sql/src/test/resources/sql/createAndPopulateDatabase.sql Sat Dec 31 13:43:09 2011
@@ -0,0 +1,6 @@
+-- START SNIPPET: e1
+create table projects (id integer primary key, project varchar(10), license varchar(5));
+insert into projects values (1, 'Camel', 'ASF');
+insert into projects values (2, 'AMQ', 'ASF');
+insert into projects values (3, 'Linux', 'XXX');
+-- END SNIPPET: e1
\ No newline at end of file

Modified: camel/trunk/components/camel-sql/src/test/resources/sql/init.sql
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/sql/init.sql?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/sql/init.sql (original)
+++ camel/trunk/components/camel-sql/src/test/resources/sql/init.sql Sat Dec 31 13:43:09 2011
@@ -1,5 +1,3 @@
-DROP TABLE aggregationRepo1 IF EXISTS;
-DROP TABLE aggregationRepo1_completed IF EXISTS;
 CREATE TABLE aggregationRepo1 (
     id varchar(255) NOT NULL,
     exchange blob NOT NULL,

Modified: camel/trunk/components/camel-sql/src/test/resources/sql/init2.sql
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/test/resources/sql/init2.sql?rev=1226088&r1=1226087&r2=1226088&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/test/resources/sql/init2.sql (original)
+++ camel/trunk/components/camel-sql/src/test/resources/sql/init2.sql Sat Dec 31 13:43:09 2011
@@ -1,5 +1,3 @@
-DROP TABLE aggregationRepo2 IF EXISTS;
-DROP TABLE aggregationRepo2_completed IF EXISTS;
 CREATE TABLE aggregationRepo2 (
     id varchar(255) NOT NULL,
     exchange blob NOT NULL,