You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ro...@apache.org on 2008/04/16 15:41:22 UTC

svn commit: r648695 - in /activemq/camel/trunk/components/camel-sql/src: main/java/org/apache/camel/component/sql/SqlComponent.java main/java/org/apache/camel/component/sql/SqlEndpoint.java test/java/org/apache/camel/component/sql/SqlRouteTest.java

Author: romkal
Date: Wed Apr 16 06:41:16 2008
New Revision: 648695

URL: http://svn.apache.org/viewvc?rev=648695&view=rev
Log:
CAMEL-319 : Added possibility to set parameters on JdbcTemplate used

Modified:
    activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
    activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
    activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java

Modified: activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java?rev=648695&r1=648694&r2=648695&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java (original)
+++ activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java Wed Apr 16 06:41:16 2008
@@ -42,7 +42,7 @@
     @Override
     protected Endpoint<DefaultExchange> createEndpoint(String uri, String remaining, Map parameters)
         throws Exception {
-        return new SqlEndpoint(uri, remaining.replaceAll("#", "?"), this, dataSource);
+        return new SqlEndpoint(uri, remaining.replaceAll("#", "?"), this, dataSource, parameters);
     }
 
     public void setDataSource(DataSource dataSource) {

Modified: activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java?rev=648695&r1=648694&r2=648695&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java (original)
+++ activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java Wed Apr 16 06:41:16 2008
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.component.sql;
 
+import java.util.Map;
+
 import javax.sql.DataSource;
 
 import org.apache.camel.Component;
@@ -24,6 +26,7 @@
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.util.IntrospectionSupport;
 import org.springframework.jdbc.core.JdbcTemplate;
 
 /**
@@ -39,9 +42,10 @@
 
     private String query;
 
-    public SqlEndpoint(String uri, String query, Component component, DataSource dataSource) {
+    public SqlEndpoint(String uri, String query, Component component, DataSource dataSource, Map parameters) throws Exception {
         super(uri, component);
         this.jdbcTemplate = new JdbcTemplate(dataSource);
+        IntrospectionSupport.setProperties(jdbcTemplate, parameters, "template.");
         this.query = query;
     }
 

Modified: activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java?rev=648695&r1=648694&r2=648695&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java (original)
+++ activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java Wed Apr 16 06:41:16 2008
@@ -60,6 +60,15 @@
         Map row = assertIsInstanceOf(Map.class, received.get(0));
         assertEquals(1, row.get("ID"));
     }
+    
+    public void testBadNumberOfParameter() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        template.sendBody("direct:list", "ASF");
+        mock.assertIsSatisfied();
+        List received = assertIsInstanceOf(List.class, mock.getReceivedExchanges().get(0).getIn().getBody());
+        assertEquals(0, received.size());
+    }
 
     public void testListResult() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
@@ -75,6 +84,19 @@
         Map row2 = assertIsInstanceOf(Map.class, received.get(1));
         assertEquals("AMQ", row2.get("PROJECT"));
     }
+    
+    public void testListLimitedResult() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:result");
+        mock.expectedMessageCount(1);
+        List<Object> body = new ArrayList<Object>();
+        body.add("ASF");
+        template.sendBody("direct:simpleLimited", body);
+        mock.assertIsSatisfied();
+        List received = assertIsInstanceOf(List.class, mock.getReceivedExchanges().get(0).getIn().getBody());
+        assertEquals(1, received.size());
+        Map row1 = assertIsInstanceOf(Map.class, received.get(0));
+        assertEquals("Camel", row1.get("PROJECT"));
+    }
 
     protected void setUp() throws Exception {
         Class.forName(driverClass);
@@ -107,6 +129,10 @@
 
                 from("direct:list")
                     .to("sql:select * from projects where license = # and project = # order by id")
+                    .to("mock:result");
+                
+                from("direct:simpleLimited")
+                    .to("sql:select * from projects where license = # order by id?template.maxRows=1")
                     .to("mock:result");
 
             }