You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bo...@apache.org on 2014/03/10 13:12:32 UTC
git commit: CAMEL-6665 added support for disabling recipientList
delimiter parsing
Repository: camel
Updated Branches:
refs/heads/master 9b9e17d80 -> f4a81c8f4
CAMEL-6665 added support for disabling recipientList delimiter parsing
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f4a81c8f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f4a81c8f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f4a81c8f
Branch: refs/heads/master
Commit: f4a81c8f4ef48ff29438321520ff44d6f57102b5
Parents: 9b9e17d
Author: boday <bo...@apache.org>
Authored: Mon Mar 10 05:07:18 2014 -0700
Committer: boday <bo...@apache.org>
Committed: Mon Mar 10 05:10:30 2014 -0700
----------------------------------------------------------------------
.../org/apache/camel/processor/RecipientList.java | 10 +++++++++-
.../processor/RecipientListWithDelimiterTest.java | 17 +++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/f4a81c8f/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java b/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
index 4b700a9..b1b85ed 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.processor;
+import java.util.Collections;
import java.util.Iterator;
import java.util.concurrent.ExecutorService;
@@ -46,6 +47,7 @@ import static org.apache.camel.util.ObjectHelper.notNull;
* @version
*/
public class RecipientList extends ServiceSupport implements AsyncProcessor {
+ private static final String IGNORE_DELIMITER_MARKER = "false";
private final CamelContext camelContext;
private ProducerCache producerCache;
private Expression expression;
@@ -116,7 +118,13 @@ public class RecipientList extends ServiceSupport implements AsyncProcessor {
* Sends the given exchange to the recipient list
*/
public boolean sendToRecipientList(Exchange exchange, Object recipientList, AsyncCallback callback) {
- Iterator<Object> iter = ObjectHelper.createIterator(recipientList, delimiter);
+ Iterator<Object> iter;
+
+ if (delimiter != null && delimiter.equalsIgnoreCase(IGNORE_DELIMITER_MARKER)) {
+ iter = ObjectHelper.createIterator(recipientList, null);
+ } else {
+ iter = ObjectHelper.createIterator(recipientList, delimiter);
+ }
RecipientListProcessor rlp = new RecipientListProcessor(exchange.getContext(), producerCache, iter, getAggregationStrategy(),
isParallelProcessing(), getExecutorService(), isShutdownExecutorService(),
http://git-wip-us.apache.org/repos/asf/camel/blob/f4a81c8f/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithDelimiterTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithDelimiterTest.java b/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithDelimiterTest.java
index 5b5a527..77c5952 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithDelimiterTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/RecipientListWithDelimiterTest.java
@@ -52,6 +52,23 @@ public class RecipientListWithDelimiterTest extends ContextTestSupport {
assertMockEndpointsSatisfied();
}
+ public void testRecipientListWithDelimiterDisabled() throws Exception {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:a").recipientList(header("myHeader"), "false");
+ }
+ });
+ context.start();
+
+ MockEndpoint xyz = getMockEndpoint("mock:falseDelimiterTest");
+ xyz.expectedBodiesReceived("answer");
+
+ template.sendBodyAndHeader("direct:a", "answer", "myHeader", "mock:falseDelimiterTest");
+
+ assertMockEndpointsSatisfied();
+ }
+
public void testRecipientListWithTokenizer() throws Exception {
context.addRoutes(new RouteBuilder() {
@Override