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 2016/01/03 11:20:11 UTC
camel git commit: CAMEL-9207: Fixed test and issue when grouping xml
tokenizer
Repository: camel
Updated Branches:
refs/heads/master 23b653879 -> ef9e179a5
CAMEL-9207: Fixed test and issue when grouping xml tokenizer
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ef9e179a
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ef9e179a
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ef9e179a
Branch: refs/heads/master
Commit: ef9e179a54ee1f1181ea3262161435f39873cd75
Parents: 23b6538
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Jan 3 11:19:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Jan 3 11:19:58 2016 +0100
----------------------------------------------------------------------
.../apache/camel/builder/ExpressionBuilder.java | 17 +++++++++++++++++
.../camel/language/tokenizer/TokenizeLanguage.java | 8 +++++---
2 files changed, 22 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ef9e179a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
index e0ef026..f83554b 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
@@ -1339,6 +1339,23 @@ public final class ExpressionBuilder {
};
}
+ public static Expression groupXmlIteratorExpression(final Expression expression, final int group) {
+ return new ExpressionAdapter() {
+ public Object evaluate(Exchange exchange) {
+ // evaluate expression as iterator
+ Iterator<?> it = expression.evaluate(exchange, Iterator.class);
+ ObjectHelper.notNull(it, "expression: " + expression + " evaluated on " + exchange + " must return an java.util.Iterator");
+ // must use GroupTokenIterator in xml mode as we want to concat the xml parts into a single message
+ return new GroupTokenIterator(exchange, it, null, group);
+ }
+
+ @Override
+ public String toString() {
+ return "group " + expression + " " + group + " times";
+ }
+ };
+ }
+
public static Expression groupIteratorExpression(final Expression expression, final String token, final int group) {
return new ExpressionAdapter() {
public Object evaluate(Exchange exchange) {
http://git-wip-us.apache.org/repos/asf/camel/blob/ef9e179a/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java b/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
index 24b177d..aa18750 100644
--- a/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
+++ b/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java
@@ -124,9 +124,11 @@ public class TokenizeLanguage implements Language, IsSingleton {
// if group then wrap answer in group expression
if (group > 0) {
- // only include group token if not xml
- String groupToken = isXml() ? null : token;
- answer = ExpressionBuilder.groupIteratorExpression(answer, groupToken, group);
+ if (isXml()) {
+ answer = ExpressionBuilder.groupXmlIteratorExpression(answer, group);
+ } else {
+ answer = ExpressionBuilder.groupIteratorExpression(answer, token, group);
+ }
}
return answer;