You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/04/01 10:30:37 UTC
[2/3] git commit: [CAMEL-7313] Polishing to match camel-jdbc wrt
generated keys
[CAMEL-7313] Polishing to match camel-jdbc wrt generated keys
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/bffb51a5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/bffb51a5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/bffb51a5
Branch: refs/heads/camel-2.13.x
Commit: bffb51a5fdf0f3d23d943f015d8ef3e59b108895
Parents: ab57d3f
Author: Grzegorz Grzybek <gr...@gmail.com>
Authored: Tue Apr 1 09:59:39 2014 +0200
Committer: Willem Jiang <wi...@gmail.com>
Committed: Tue Apr 1 16:30:07 2014 +0800
----------------------------------------------------------------------
.../camel/component/sql/SqlConstants.java | 7 ++-
.../apache/camel/component/sql/SqlProducer.java | 2 +
.../component/sql/SqlGeneratedKeysTest.java | 54 ++++++++++----------
3 files changed, 36 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/bffb51a5/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConstants.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConstants.java
index dc9f65e..42330c4 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConstants.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConstants.java
@@ -42,7 +42,12 @@ public final class SqlConstants {
* @see <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/Statement.html#execute(java.lang.String, java.lang.String[])">
* java.sql.Statement.execute(java.lang.String, java.lang.String[])</a>
*/
- public static final String SQL_GENERATED_COLUMNS = "CamelGeneratedColumns";
+ public static final String SQL_GENERATED_COLUMNS = "CamelSqlGeneratedColumns";
+
+ /**
+ * int output header giving the number of rows of generated keys
+ */
+ public static final String SQL_GENERATED_KEYS_ROW_COUNT = "CamelSqlGeneratedKeysRowCount";
/**
* <tt>List<Map<String, Object>></tt> output header containing the generated keys retrieved
http://git-wip-us.apache.org/repos/asf/camel/blob/bffb51a5/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
index c09d58f..75ff08b 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlProducer.java
@@ -159,9 +159,11 @@ public class SqlProducer extends DefaultProducer {
if (isResultSet) {
// we won't return generated keys for SELECT statements
exchange.getOut().setHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, Collections.EMPTY_LIST);
+ exchange.getOut().setHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT, 0);
} else {
List<Map<String, Object>> generatedKeys = getEndpoint().queryForList(ps.getGeneratedKeys());
exchange.getOut().setHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, generatedKeys);
+ exchange.getOut().setHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT, generatedKeys.size());
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/bffb51a5/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlGeneratedKeysTest.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlGeneratedKeysTest.java b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlGeneratedKeysTest.java
index 97e5061..6a381ab 100644
--- a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlGeneratedKeysTest.java
+++ b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlGeneratedKeysTest.java
@@ -59,10 +59,10 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
@Override
public void configure() throws Exception {
getContext().getComponent("sql", SqlComponent.class).setDataSource(db);
- from("direct:insert").to("sql:insert into projects (project, license, description) values (#, #, #)").to("mock:result");
- from("direct:batch").to("sql:insert into projects (project, license, description) values (#, #, #)?batch=true").to("mock:result");
- from("direct:select").to("sql:select * from projects order by id asc").to("mock:result");
- from("direct:insert2").to("sql:insert into developers (name, position) values (#, #)").to("mock:result");
+ from("direct:insert").to("sql:insert into projects (project, license, description) values (#, #, #)");
+ from("direct:batch").to("sql:insert into projects (project, license, description) values (#, #, #)?batch=true");
+ from("direct:select").to("sql:select * from projects order by id asc");
+ from("direct:insert2").to("sql:insert into developers (name, position) values (#, #)");
}
};
}
@@ -83,17 +83,17 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// assertions of the response
assertNotNull(out);
assertNotNull(out.getOut());
- assertNotNull(out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
+ assertNotNull(out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertNotNull("out body could not be converted to a List - was: "
- + out.getIn().getBody(), generatedKeys);
+ + out.getOut().getBody(), generatedKeys);
assertEquals(1, generatedKeys.get(0).size());
Map<String, Object> row = generatedKeys.get(0);
assertEquals("auto increment value should be 3", Integer.valueOf(3), row.get("ID"));
- assertEquals("generated keys row count should be one", 1, generatedKeys.size());
+ assertEquals("generated keys row count should be one", 1, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
@Test
@@ -113,18 +113,18 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// assertions of the response
assertNotNull(out);
assertNotNull(out.getOut());
- assertNotNull(out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
+ assertNotNull(out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertNotNull("out body could not be converted to a List - was: "
- + out.getIn().getBody(), generatedKeys);
+ + out.getOut().getBody(), generatedKeys);
assertEquals(2, generatedKeys.get(0).size());
Map<String, Object> row = generatedKeys.get(0);
assertEquals("auto increment value of ID1 should be 5", Integer.valueOf(5), row.get("ID1"));
assertEquals("auto increment value of ID2 should be 6", Integer.valueOf(6), row.get("ID2"));
- assertEquals("generated keys row count should be one", 1, generatedKeys.size());
+ assertEquals("generated keys row count should be one", 1, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
@Test
@@ -148,11 +148,11 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// assertions of the response
assertNotNull(out);
assertNotNull(out.getOut());
- assertNotNull(out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
+ assertNotNull(out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertNotNull("out body could not be converted to a List - was: "
- + out.getIn().getBody(), generatedKeys);
+ + out.getOut().getBody(), generatedKeys);
// it seems not to work with Derby...
assertEquals(4, generatedKeys.size());
@@ -161,7 +161,8 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
for (Map<String, Object> row: generatedKeys) {
assertEquals("auto increment value should be " + id, Integer.valueOf(id++), row.get("ID"));
}
-
+
+ assertEquals("generated keys row count should be four", 4, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
@Test
@@ -181,17 +182,17 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// assertions of the response
assertNotNull(out);
assertNotNull(out.getOut());
- assertNotNull(out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
+ assertNotNull(out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertNotNull("out body could not be converted to a List - was: "
- + out.getIn().getBody(), generatedKeys);
+ + out.getOut().getBody(), generatedKeys);
assertEquals(1, generatedKeys.get(0).size());
Map<String, Object> row = generatedKeys.get(0);
assertEquals("auto increment value should be 3", Integer.valueOf(3), row.get("ID"));
- assertEquals("generated keys row count should be one", 1, generatedKeys.size());
+ assertEquals("generated keys row count should be one", 1, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
@Test
@@ -210,17 +211,17 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// assertions of the response
assertNotNull(out);
- assertNotNull(out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
+ assertNotNull(out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA));
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertNotNull("out body could not be converted to a List - was: "
- + out.getIn().getBody(), generatedKeys);
+ + out.getOut().getBody(), generatedKeys);
assertEquals(1, generatedKeys.get(0).size());
Map<String, Object> row = generatedKeys.get(0);
assertEquals("auto increment value should be 3", Integer.valueOf(3), row.get("ID"));
- assertEquals("generated keys row count should be one", 1, generatedKeys.size());
+ assertEquals("generated keys row count should be one", 1, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
@Test
@@ -255,10 +256,11 @@ public class SqlGeneratedKeysTest extends CamelTestSupport {
// now we send the exchange to the endpoint, and receives the response from Camel
Exchange out = template.send(endpoint, exchange);
- List<Map<String, Object>> result = out.getIn().getBody(List.class);
+ List<Map<String, Object>> result = out.getOut().getBody(List.class);
assertEquals("We should get 3 projects", 3, result.size());
- List<Map<String, Object>> generatedKeys = out.getIn().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
+ List<Map<String, Object>> generatedKeys = out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_DATA, List.class);
assertEquals("We should not get any keys", 0, generatedKeys.size());
+ assertEquals("We should not get any keys", 0, out.getOut().getHeader(SqlConstants.SQL_GENERATED_KEYS_ROW_COUNT));
}
}