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 2015/09/21 17:21:44 UTC

camel git commit: CAMEL-9131: Add some missing options on SQL component in the docs. Add more labels.

Repository: camel
Updated Branches:
  refs/heads/master 4748c75d9 -> 59eb278ca


CAMEL-9131: Add some missing options on SQL component in the docs. Add more labels.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/59eb278c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/59eb278c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/59eb278c

Branch: refs/heads/master
Commit: 59eb278cab537b570015a6f07c234295600f0eca
Parents: 4748c75
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Sep 21 17:22:49 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Sep 21 17:22:49 2015 +0200

----------------------------------------------------------------------
 .../apache/camel/component/sql/SqlConsumer.java | 16 ----
 .../apache/camel/component/sql/SqlEndpoint.java | 79 +++++++++++++++++---
 ...ponentConfigurationAndDocumentationTest.java |  8 +-
 3 files changed, 73 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/59eb278c/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConsumer.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConsumer.java
index cdddd81..29c3e07 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConsumer.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlConsumer.java
@@ -28,7 +28,6 @@ import org.apache.camel.ExchangePattern;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.ScheduledBatchPollingConsumer;
-import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.ObjectHelper;
 import org.springframework.dao.DataAccessException;
@@ -44,19 +43,12 @@ public class SqlConsumer extends ScheduledBatchPollingConsumer {
     private final SqlPrepareStatementStrategy sqlPrepareStatementStrategy;
     private final SqlProcessingStrategy sqlProcessingStrategy;
 
-    @UriParam
     private String onConsume;
-    @UriParam
     private String onConsumeFailed;
-    @UriParam
     private String onConsumeBatchComplete;
-    @UriParam
     private boolean useIterator = true;
-    @UriParam
     private boolean routeEmptyResultSet;
-    @UriParam
     private int expectedUpdateCount = -1;
-    @UriParam
     private boolean breakBatchOnConsumeFail;
 
     private static final class DataHolder {
@@ -258,9 +250,6 @@ public class SqlConsumer extends ScheduledBatchPollingConsumer {
         this.onConsumeBatchComplete = onConsumeBatchComplete;
     }
 
-    /**
-     * Indicates how resultset should be delivered to the route
-     */
     public boolean isUseIterator() {
         return useIterator;
     }
@@ -274,9 +263,6 @@ public class SqlConsumer extends ScheduledBatchPollingConsumer {
         this.useIterator = useIterator;
     }
 
-    /**
-     * Indicates whether empty resultset should be allowed to be sent to the next hop or not
-     */
     public boolean isRouteEmptyResultSet() {
         return routeEmptyResultSet;
     }
@@ -295,8 +281,6 @@ public class SqlConsumer extends ScheduledBatchPollingConsumer {
 
     /**
      * Sets an expected update count to validate when using onConsume.
-     *
-     * @param expectedUpdateCount typically set this value to <tt>1</tt> to expect 1 row updated.
      */
     public void setExpectedUpdateCount(int expectedUpdateCount) {
         this.expectedUpdateCount = expectedUpdateCount;

http://git-wip-us.apache.org/repos/asf/camel/blob/59eb278c/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
index 1086d55..b477531 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
@@ -56,23 +56,31 @@ public class SqlEndpoint extends DefaultPollingEndpoint {
     private String dataSourceRef;
     @UriParam
     private DataSource dataSource;
-    @UriParam
+    @UriParam(label = "producer")
     private boolean batch;
-    @UriParam
+    @UriParam(label = "consumer")
     private int maxMessagesPerPoll;
-    @UriParam
+    @UriParam(label = "consumer,advanced")
     private SqlProcessingStrategy processingStrategy;
-    @UriParam
+    @UriParam(label = "advanced")
     private SqlPrepareStatementStrategy prepareStatementStrategy;
-    @UriParam
+    @UriParam(label = "consumer")
     private String onConsume;
-    @UriParam
+    @UriParam(label = "consumer")
     private String onConsumeFailed;
-    @UriParam
+    @UriParam(label = "consumer")
     private String onConsumeBatchComplete;
+    @UriParam(label = "consumer", defaultValue = "true")
+    private boolean useIterator = true;
+    @UriParam(label = "consumer")
+    private boolean routeEmptyResultSet;
+    @UriParam(label = "consumer", defaultValue = "-1")
+    private int expectedUpdateCount = -1;
+    @UriParam(label = "consumer")
+    private boolean breakBatchOnConsumeFail;
     @UriParam(defaultValue = "true")
     private boolean allowNamedParameters = true;
-    @UriParam
+    @UriParam(label = "producer,advanced")
     private boolean alwaysPopulateStatement;
     @UriParam(defaultValue = ",")
     private char separator = ',';
@@ -80,9 +88,9 @@ public class SqlEndpoint extends DefaultPollingEndpoint {
     private SqlOutputType outputType = SqlOutputType.SelectList;
     @UriParam
     private String outputClass;
-    @UriParam
+    @UriParam(label = "producer,advanced")
     private int parametersCount;
-    @UriParam
+    @UriParam(label = "producer")
     private boolean noop;
     @UriParam
     private String outputHeader;
@@ -106,6 +114,10 @@ public class SqlEndpoint extends DefaultPollingEndpoint {
         consumer.setOnConsume(getOnConsume());
         consumer.setOnConsumeFailed(getOnConsumeFailed());
         consumer.setOnConsumeBatchComplete(getOnConsumeBatchComplete());
+        consumer.setBreakBatchOnConsumeFail(isBreakBatchOnConsumeFail());
+        consumer.setExpectedUpdateCount(getExpectedUpdateCount());
+        consumer.setUseIterator(isUseIterator());
+        consumer.setRouteEmptyResultSet(isRouteEmptyResultSet());
         configureConsumer(consumer);
         return consumer;
     }
@@ -355,6 +367,53 @@ public class SqlEndpoint extends DefaultPollingEndpoint {
         this.dataSource = dataSource;
     }
 
+    public boolean isUseIterator() {
+        return useIterator;
+    }
+
+    /**
+     * Sets how resultset should be delivered to route.
+     * Indicates delivery as either a list or individual object.
+     * defaults to true.
+     */
+    public void setUseIterator(boolean useIterator) {
+        this.useIterator = useIterator;
+    }
+
+    public boolean isRouteEmptyResultSet() {
+        return routeEmptyResultSet;
+    }
+
+    /**
+     * Sets whether empty resultset should be allowed to be sent to the next hop.
+     * defaults to false. So the empty resultset will be filtered out.
+     */
+    public void setRouteEmptyResultSet(boolean routeEmptyResultSet) {
+        this.routeEmptyResultSet = routeEmptyResultSet;
+    }
+
+    public int getExpectedUpdateCount() {
+        return expectedUpdateCount;
+    }
+
+    /**
+     * Sets an expected update count to validate when using onConsume.
+     */
+    public void setExpectedUpdateCount(int expectedUpdateCount) {
+        this.expectedUpdateCount = expectedUpdateCount;
+    }
+
+    public boolean isBreakBatchOnConsumeFail() {
+        return breakBatchOnConsumeFail;
+    }
+
+    /**
+     * Sets whether to break batch if onConsume failed.
+     */
+    public void setBreakBatchOnConsumeFail(boolean breakBatchOnConsumeFail) {
+        this.breakBatchOnConsumeFail = breakBatchOnConsumeFail;
+    }
+
     @Override
     protected String createEndpointUri() {
         // Make sure it's properly encoded

http://git-wip-us.apache.org/repos/asf/camel/blob/59eb278c/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlComponentConfigurationAndDocumentationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlComponentConfigurationAndDocumentationTest.java b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlComponentConfigurationAndDocumentationTest.java
index 9340fb5..f3d0674 100644
--- a/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlComponentConfigurationAndDocumentationTest.java
+++ b/components/camel-sql/src/test/java/org/apache/camel/component/sql/SqlComponentConfigurationAndDocumentationTest.java
@@ -43,12 +43,12 @@ public class SqlComponentConfigurationAndDocumentationTest extends CamelTestSupp
 
     @Test
     public void testExplainEndpoint() throws Exception {
-        String json = context.explainEndpointJson("sql:select?dataSourceRef=jdbc/myDataSource&allowNamedParameters=true&consumer.onConsume=foo", true);
+        String json = context.explainEndpointJson("sql:select?dataSourceRef=jdbc/myDataSource&allowNamedParameters=true&onConsume=foo", true);
         assertNotNull(json);
 
-        assertTrue(json.contains("\"onConsumeBatchComplete\": { \"kind\": \"parameter\", \"type\": \"string\""));
-        assertTrue(json.contains("\"parametersCount\": { \"kind\": \"parameter\", \"type\": \"integer\""));
-        assertTrue(json.contains("\"onConsume\": { \"kind\": \"parameter\", \"type\": \"string\", \"javaType\": \"java.lang.String\", \"deprecated\": \"false\", \"value\": \"foo\""));
+        assertTrue(json.contains("\"onConsumeBatchComplete\": { \"kind\": \"parameter\", \"label\": \"consumer\", \"type\": \"string\""));
+        assertTrue(json.contains("\"parametersCount\": { \"kind\": \"parameter\", \"label\": \"producer,advanced\", \"type\": \"integer\""));
+        assertTrue(json.contains("\"onConsume\": { \"kind\": \"parameter\", \"label\": \"consumer\", \"type\": \"string\", \"javaType\": \"java.lang.String\", \"deprecated\": \"false\", \"value\": \"foo\""));
     }
 
 }