You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2008/11/12 08:50:28 UTC
svn commit: r713295 - in /activemq/camel/trunk/components/camel-sql/src:
main/java/org/apache/camel/component/sql/SqlProducer.java
test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java
Author: davsclaus
Date: Tue Nov 11 23:50:26 2008
New Revision: 713295
URL: http://svn.apache.org/viewvc?rev=713295&view=rev
Log:
CAMEL-1063: Added dataSourceRef option to lookup DS in registry
Modified:
activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java
Modified: activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java?rev=713295&r1=713294&r2=713295&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java (original)
+++ activemq/camel/trunk/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java Tue Nov 11 23:50:26 2008
@@ -30,11 +30,8 @@
import org.springframework.jdbc.core.RowMapperResultSetExtractor;
public class SqlProducer extends DefaultProducer {
-
public static final String UPDATE_COUNT = "org.apache.camel.sql.update-count";
-
private String query;
-
private JdbcTemplate jdbcTemplate;
public SqlProducer(SqlEndpoint endpoint, String query, JdbcTemplate jdbcTemplate) {
@@ -44,10 +41,7 @@
}
public void process(final Exchange exchange) throws Exception {
-
-
jdbcTemplate.execute(query, new PreparedStatementCallback() {
-
public Object doInPreparedStatement(PreparedStatement ps) throws SQLException,
DataAccessException {
int argNumber = 1;
@@ -56,18 +50,15 @@
}
boolean isResultSet = ps.execute();
if (isResultSet) {
- RowMapperResultSetExtractor mapper = new RowMapperResultSetExtractor(
- new ColumnMapRowMapper());
- List<?> result = (List<?>)mapper.extractData(ps.getResultSet());
+ RowMapperResultSetExtractor mapper = new RowMapperResultSetExtractor(new ColumnMapRowMapper());
+ List<?> result = (List<?>) mapper.extractData(ps.getResultSet());
exchange.getOut().setBody(result);
} else {
exchange.getIn().setHeader(UPDATE_COUNT, ps.getUpdateCount());
}
return null;
}
-
});
-
}
}
Modified: activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java?rev=713295&r1=713294&r2=713295&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java (original)
+++ activemq/camel/trunk/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlDataSourceRefTest.java Tue Nov 11 23:50:26 2008
@@ -45,13 +45,27 @@
}
public void testSimpleBody() throws Exception {
+ // END SNIPPET: e3
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(1);
+
+ // send the query to direct that will route it to the sql where we will execute the query
+ // and bind the parameters with the data from the body. The body only contains one value
+ // in this case (GPL) but if we should use multi values then the body will be iterated
+ // so we could supply a List<String> instead containing each binding value.
template.sendBody("direct:simple", "GPL");
+
mock.assertIsSatisfied();
+
+ // the result is a List
List received = assertIsInstanceOf(List.class, mock.getReceivedExchanges().get(0).getIn().getBody());
+
+ // and each row in the list is a Map
Map row = assertIsInstanceOf(Map.class, received.get(0));
+
+ // and we should be able the get the project from the map that should be Linux
assertEquals("Linux", row.get("PROJECT"));
+ // END SNIPPET: e3
}
protected void setUp() throws Exception {
@@ -59,11 +73,14 @@
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', 'GPL')");
+ // END SNIPPET: e2
}
protected void tearDown() throws Exception {