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");
 
             }


Reply via email to