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 2010/06/16 10:33:23 UTC
svn commit: r955155 - in /camel/trunk/components/camel-sql/src:
main/java/org/apache/camel/component/sql/SqlComponent.java
test/java/org/apache/camel/component/sql/SqlRouteTest.java
Author: romkal
Date: Wed Jun 16 08:33:22 2010
New Revision: 955155
URL: http://svn.apache.org/viewvc?rev=955155&view=rev
Log:
CAMEL-2805: placeholder parameter added to sql endpoint that can be used to substitute default # character for parameter placeholder
Modified:
camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlRouteTest.java
Modified: camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java?rev=955155&r1=955154&r2=955155&view=diff
==============================================================================
--- camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java (original)
+++ camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlComponent.java Wed Jun 16 08:33:22 2010
@@ -45,12 +45,12 @@ public class SqlComponent extends Defaul
if (dataSourceRef != null) {
dataSource = CamelContextHelper.mandatoryLookup(getCamelContext(), dataSourceRef, DataSource.class);
}
+ String parameterPlaceholderSubstitute = getAndRemoveParameter(parameters, "placeholder", String.class, "#");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
IntrospectionSupport.setProperties(jdbcTemplate, parameters, "template.");
- String query = remaining.replaceAll("#", "?");
-
+ String query = remaining.replaceAll(parameterPlaceholderSubstitute, "?");
return new SqlEndpoint(uri, this, jdbcTemplate, query);
}
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=955155&r1=955154&r2=955155&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 Wed Jun 16 08:33:22 2010
@@ -153,6 +153,19 @@ public class SqlRouteTest extends CamelT
}
@Test
+ public void testHashesInQuery() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedMessageCount(1);
+ template.sendBody("direct:no-param-insert", "GPL");
+ mock.assertIsSatisfied();
+ Number received = assertIsInstanceOf(Number.class, mock.getReceivedExchanges().get(0).getIn().getHeader(SqlConstants.SQL_UPDATE_COUNT));
+ assertEquals(1, received.intValue());
+ Map projectNameInserted = jdbcTemplate.queryForMap("select project, license from projects where id = 5");
+ assertEquals("#", projectNameInserted.get("PROJECT"));
+ assertEquals("GPL", projectNameInserted.get("LICENSE"));
+ }
+
+ @Test
public void testBodyButNoParams() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
@@ -208,6 +221,8 @@ public class SqlRouteTest extends CamelT
from("direct:insert").to("sql:insert into projects values (#, #, #)").to("mock:result");
from("direct:no-param").to("sql:select * from projects order by id").to("mock:result");
+
+ from("direct:no-param-insert").to("sql:insert into projects values (5, '#', param)?placeholder=param").to("mock:result");
}
};
}