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 2020/10/02 10:35:06 UTC
[camel] 01/04: CAMEL-15606: camel-core - Simple with bean function
should resolve language once
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 502f579f2f67a7aa84e9500183a0146071045cfa
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Oct 2 11:21:26 2020 +0200
CAMEL-15606: camel-core - Simple with bean function should resolve language once
---
.../camel/impl/engine/AbstractCamelContext.java | 1 +
.../camel/language/simple/BaseSimpleParser.java | 5 +-
.../language/simple/SimpleExpressionParser.java | 7 ++-
.../camel/language/simple/SimpleLanguage.java | 4 +-
.../language/simple/SimplePredicateParser.java | 7 ++-
.../language/simple/ast/BinaryExpression.java | 65 +++++++++++-----------
.../language/simple/ast/BooleanExpression.java | 5 +-
.../camel/language/simple/ast/CompositeNodes.java | 7 ++-
.../camel/language/simple/ast/DoubleQuoteEnd.java | 3 +-
.../language/simple/ast/DoubleQuoteStart.java | 5 +-
.../language/simple/ast/LiteralExpression.java | 3 +-
.../language/simple/ast/LogicalExpression.java | 7 ++-
.../camel/language/simple/ast/NullExpression.java | 27 +++++----
.../language/simple/ast/NumericExpression.java | 3 +-
.../language/simple/ast/SimpleFunctionEnd.java | 3 +-
.../simple/ast/SimpleFunctionExpression.java | 21 +++----
.../language/simple/ast/SimpleFunctionStart.java | 17 +++---
.../camel/language/simple/ast/SimpleNode.java | 8 ++-
.../camel/language/simple/ast/SingleQuoteEnd.java | 3 +-
.../language/simple/ast/SingleQuoteStart.java | 5 +-
.../camel/language/simple/ast/UnaryExpression.java | 21 +++----
.../simple/SimpleBackwardsCompatibleTest.java | 4 +-
.../simple/SimpleParserExpressionInvalidTest.java | 10 ++--
.../simple/SimpleParserExpressionTest.java | 44 +++++++--------
.../simple/SimpleParserPredicateInvalidTest.java | 14 ++---
.../language/simple/SimpleParserPredicateTest.java | 50 ++++++++---------
.../simple/SimpleParserRegexpPredicateTest.java | 2 +-
27 files changed, 188 insertions(+), 163 deletions(-)
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index 93c92b5..8e4e940 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -1638,6 +1638,7 @@ public abstract class AbstractCamelContext extends BaseService
@Override
public Language resolveLanguage(String language) {
LOG.debug("Resolving language: {}", language);
+ System.out.println("Resolving language: " + language);
Language answer;
synchronized (languages) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
index f57aeb6..5214eda 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/BaseSimpleParser.java
@@ -22,6 +22,7 @@ import java.util.Collections;
import java.util.Deque;
import java.util.List;
+import org.apache.camel.CamelContext;
import org.apache.camel.language.simple.ast.Block;
import org.apache.camel.language.simple.ast.BlockEnd;
import org.apache.camel.language.simple.ast.BlockStart;
@@ -40,6 +41,7 @@ import org.apache.camel.language.simple.types.TokenType;
*/
public abstract class BaseSimpleParser {
+ protected CamelContext camelContext;
protected final String expression;
protected final List<SimpleToken> tokens = new ArrayList<>();
protected final List<SimpleNode> nodes = new ArrayList<>();
@@ -48,7 +50,8 @@ public abstract class BaseSimpleParser {
protected int index;
protected boolean allowEscape;
- protected BaseSimpleParser(String expression, boolean allowEscape) {
+ protected BaseSimpleParser(CamelContext camelContext, String expression, boolean allowEscape) {
+ this.camelContext = camelContext;
this.expression = expression;
this.allowEscape = allowEscape;
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
index 7b50084..6b88e1b 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java
@@ -21,6 +21,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.ast.LiteralExpression;
import org.apache.camel.language.simple.ast.LiteralNode;
@@ -42,9 +43,9 @@ public class SimpleExpressionParser extends BaseSimpleParser {
// use caches to avoid re-parsing the same expressions over and over again
private Map<String, Expression> cacheExpression;
- public SimpleExpressionParser(String expression, boolean allowEscape,
+ public SimpleExpressionParser(CamelContext camelContext, String expression, boolean allowEscape,
Map<String, Expression> cacheExpression) {
- super(expression, allowEscape);
+ super(camelContext, expression, allowEscape);
this.cacheExpression = cacheExpression;
}
@@ -161,7 +162,7 @@ public class SimpleExpressionParser extends BaseSimpleParser {
private List<Expression> createExpressions() {
List<Expression> answer = new ArrayList<>();
for (SimpleNode token : nodes) {
- Expression exp = token.createExpression(expression);
+ Expression exp = token.createExpression(camelContext, expression);
if (exp != null) {
answer.add(exp);
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
index 5466d58..2f1e16d 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
@@ -104,7 +104,7 @@ public class SimpleLanguage extends LanguageSupport implements StaticService {
expression = loadResource(expression);
- SimplePredicateParser parser = new SimplePredicateParser(expression, allowEscape, cacheExpression);
+ SimplePredicateParser parser = new SimplePredicateParser(getCamelContext(), expression, allowEscape, cacheExpression);
answer = parser.parsePredicate();
if (cachePredicate != null && answer != null) {
@@ -124,7 +124,7 @@ public class SimpleLanguage extends LanguageSupport implements StaticService {
expression = loadResource(expression);
- SimpleExpressionParser parser = new SimpleExpressionParser(expression, allowEscape, cacheExpression);
+ SimpleExpressionParser parser = new SimpleExpressionParser(getCamelContext(), expression, allowEscape, cacheExpression);
answer = parser.parseExpression();
if (cacheExpression != null && answer != null) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
index 226aae2..392953b 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java
@@ -25,6 +25,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
import org.apache.camel.language.simple.ast.BinaryExpression;
@@ -62,8 +63,8 @@ public class SimplePredicateParser extends BaseSimpleParser {
// use caches to avoid re-parsing the same expressions over and over again
private Map<String, Expression> cacheExpression;
- public SimplePredicateParser(String expression, boolean allowEscape, Map<String, Expression> cacheExpression) {
- super(expression, allowEscape);
+ public SimplePredicateParser(CamelContext camelContext, String expression, boolean allowEscape, Map<String, Expression> cacheExpression) {
+ super(camelContext, expression, allowEscape);
this.cacheExpression = cacheExpression;
}
@@ -467,7 +468,7 @@ public class SimplePredicateParser extends BaseSimpleParser {
private List<Predicate> createPredicates() {
List<Predicate> answer = new ArrayList<>();
for (SimpleNode node : nodes) {
- Expression exp = node.createExpression(expression);
+ Expression exp = node.createExpression(camelContext, expression);
if (exp != null) {
Predicate predicate = ExpressionToPredicateAdapter.toPredicate(exp);
answer.add(predicate);
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
index cf5c54a..f0fbaeb 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BinaryExpression.java
@@ -22,6 +22,7 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
@@ -71,57 +72,57 @@ public class BinaryExpression extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
org.apache.camel.util.ObjectHelper.notNull(left, "left node", this);
org.apache.camel.util.ObjectHelper.notNull(right, "right node", this);
- final Expression leftExp = left.createExpression(expression);
- final Expression rightExp = right.createExpression(expression);
+ final Expression leftExp = left.createExpression(camelContext, expression);
+ final Expression rightExp = right.createExpression(camelContext, expression);
if (operator == BinaryOperatorType.EQ) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isEqualTo(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isEqualTo(leftExp, rightExp));
} else if (operator == BinaryOperatorType.EQ_IGNORE) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isEqualToIgnoreCase(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isEqualToIgnoreCase(leftExp, rightExp));
} else if (operator == BinaryOperatorType.GT) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isGreaterThan(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isGreaterThan(leftExp, rightExp));
} else if (operator == BinaryOperatorType.GTE) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isGreaterThanOrEqualTo(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isGreaterThanOrEqualTo(leftExp, rightExp));
} else if (operator == BinaryOperatorType.LT) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isLessThan(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isLessThan(leftExp, rightExp));
} else if (operator == BinaryOperatorType.LTE) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isLessThanOrEqualTo(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isLessThanOrEqualTo(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_EQ) {
- return createExpression(leftExp, rightExp, PredicateBuilder.isNotEqualTo(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isNotEqualTo(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_EQ_IGNORE) {
- return createExpression(leftExp, rightExp,
+ return createExpression(camelContext, leftExp, rightExp,
PredicateBuilder.not(PredicateBuilder.isEqualToIgnoreCase(leftExp, rightExp)));
} else if (operator == BinaryOperatorType.CONTAINS) {
- return createExpression(leftExp, rightExp, PredicateBuilder.contains(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.contains(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_CONTAINS) {
- return createExpression(leftExp, rightExp, PredicateBuilder.not(PredicateBuilder.contains(leftExp, rightExp)));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.not(PredicateBuilder.contains(leftExp, rightExp)));
} else if (operator == BinaryOperatorType.CONTAINS_IGNORECASE) {
- return createExpression(leftExp, rightExp, PredicateBuilder.containsIgnoreCase(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.containsIgnoreCase(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_CONTAINS_IGNORECASE) {
- return createExpression(leftExp, rightExp,
+ return createExpression(camelContext, leftExp, rightExp,
PredicateBuilder.not(PredicateBuilder.containsIgnoreCase(leftExp, rightExp)));
} else if (operator == BinaryOperatorType.IS || operator == BinaryOperatorType.NOT_IS) {
- return createIsExpression(expression, leftExp, rightExp);
+ return createIsExpression(camelContext, expression, leftExp, rightExp);
} else if (operator == BinaryOperatorType.REGEX || operator == BinaryOperatorType.NOT_REGEX) {
- return createRegexExpression(leftExp, rightExp);
+ return createRegexExpression(camelContext, leftExp, rightExp);
} else if (operator == BinaryOperatorType.IN || operator == BinaryOperatorType.NOT_IN) {
- return createInExpression(leftExp, rightExp);
+ return createInExpression(camelContext, leftExp, rightExp);
} else if (operator == BinaryOperatorType.RANGE || operator == BinaryOperatorType.NOT_RANGE) {
- return createRangeExpression(expression, leftExp, rightExp);
+ return createRangeExpression(camelContext, expression, leftExp, rightExp);
} else if (operator == BinaryOperatorType.STARTS_WITH) {
- return createExpression(leftExp, rightExp, PredicateBuilder.startsWith(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.startsWith(leftExp, rightExp));
} else if (operator == BinaryOperatorType.ENDS_WITH) {
- return createExpression(leftExp, rightExp, PredicateBuilder.endsWith(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.endsWith(leftExp, rightExp));
}
throw new SimpleParserException("Unknown binary operator " + operator, token.getIndex());
}
- private Expression createIsExpression(final String expression, final Expression leftExp, final Expression rightExp) {
+ private Expression createIsExpression(final CamelContext camelContext, final String expression, final Expression leftExp, final Expression rightExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -132,7 +133,7 @@ public class BinaryExpression extends BaseSimpleNode {
expression, right.getToken().getIndex(),
operator + " operator cannot accept null. A class type must be provided.");
}
- Class<?> rightType = exchange.getContext().getClassResolver().resolveClass(name);
+ Class<?> rightType = camelContext.getClassResolver().resolveClass(name);
if (rightType == null) {
throw new SimpleIllegalSyntaxException(
expression, right.getToken().getIndex(),
@@ -145,7 +146,7 @@ public class BinaryExpression extends BaseSimpleNode {
}
boolean answer = predicate.matches(exchange);
- return exchange.getContext().getTypeConverter().convertTo(type, answer);
+ return camelContext.getTypeConverter().convertTo(type, answer);
}
@Override
@@ -155,7 +156,7 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createRegexExpression(final Expression leftExp, final Expression rightExp) {
+ private Expression createRegexExpression(final CamelContext camelContext, final Expression leftExp, final Expression rightExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -165,7 +166,7 @@ public class BinaryExpression extends BaseSimpleNode {
predicate = PredicateBuilder.not(predicate);
}
boolean answer = predicate.matches(exchange);
- return exchange.getContext().getTypeConverter().convertTo(type, answer);
+ return camelContext.getTypeConverter().convertTo(type, answer);
}
@Override
@@ -175,7 +176,7 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createInExpression(final Expression leftExp, final Expression rightExp) {
+ private Expression createInExpression(final CamelContext camelContext, final Expression leftExp, final Expression rightExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -194,7 +195,7 @@ public class BinaryExpression extends BaseSimpleNode {
predicate = PredicateBuilder.not(predicate);
}
boolean answer = predicate.matches(exchange);
- return exchange.getContext().getTypeConverter().convertTo(type, answer);
+ return camelContext.getTypeConverter().convertTo(type, answer);
}
@Override
@@ -204,7 +205,7 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createRangeExpression(final String expression, final Expression leftExp, final Expression rightExp) {
+ private Expression createRangeExpression(final CamelContext camelContext, final String expression, final Expression leftExp, final Expression rightExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -230,7 +231,7 @@ public class BinaryExpression extends BaseSimpleNode {
}
boolean answer = predicate.matches(exchange);
- return exchange.getContext().getTypeConverter().convertTo(type, answer);
+ return camelContext.getTypeConverter().convertTo(type, answer);
}
@Override
@@ -240,12 +241,12 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createExpression(final Expression left, final Expression right, final Predicate predicate) {
+ private Expression createExpression(final CamelContext camelContext, final Expression left, final Expression right, final Predicate predicate) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
boolean answer = predicate.matches(exchange);
- return exchange.getContext().getTypeConverter().convertTo(type, answer);
+ return camelContext.getTypeConverter().convertTo(type, answer);
}
@Override
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BooleanExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BooleanExpression.java
index 5c662ee..cf7e3d0 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BooleanExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/BooleanExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleParserException;
@@ -34,14 +35,14 @@ public class BooleanExpression extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) throws SimpleParserException {
+ public Expression createExpression(CamelContext camelContext, String expression) throws SimpleParserException {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
if (type == Object.class || type == Boolean.class || type == boolean.class) {
return (T) Boolean.valueOf(value);
}
- return exchange.getContext().getTypeConverter().tryConvertTo(type, exchange, value);
+ return camelContext.getTypeConverter().tryConvertTo(type, exchange, value);
}
@Override
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
index 7a2cfb4..d274b74 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/CompositeNodes.java
@@ -19,6 +19,7 @@ package org.apache.camel.language.simple.ast;
import java.util.ArrayList;
import java.util.List;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
import org.apache.camel.support.builder.ExpressionBuilder;
@@ -52,15 +53,15 @@ public class CompositeNodes extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
if (children.isEmpty()) {
return null;
} else if (children.size() == 1) {
- return children.get(0).createExpression(expression);
+ return children.get(0).createExpression(camelContext, expression);
} else {
List<Expression> answer = new ArrayList<>();
for (SimpleNode child : children) {
- answer.add(child.createExpression(expression));
+ answer.add(child.createExpression(camelContext, expression));
}
return ExpressionBuilder.concatExpression(answer);
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
index dc161b6..62b314f 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteEnd.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
@@ -29,7 +30,7 @@ public class DoubleQuoteEnd extends BaseSimpleNode implements BlockEnd {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
return null;
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
index 3d6b23f..f5a4477 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/DoubleQuoteStart.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
import org.apache.camel.support.builder.ExpressionBuilder;
@@ -39,10 +40,10 @@ public class DoubleQuoteStart extends BaseSimpleNode implements BlockStart {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
Expression answer = null;
if (block != null) {
- answer = block.createExpression(expression);
+ answer = block.createExpression(camelContext, expression);
}
if (answer == null) {
// there quoted literal is empty
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
index 157668b..ca9fc19 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LiteralExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
import org.apache.camel.support.builder.ExpressionBuilder;
@@ -55,7 +56,7 @@ public class LiteralExpression extends BaseSimpleNode implements LiteralNode {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
return ExpressionBuilder.constantExpression(getText());
}
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
index d6599f1..818166c 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/LogicalExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
@@ -60,12 +61,12 @@ public class LogicalExpression extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
ObjectHelper.notNull(left, "left node", this);
ObjectHelper.notNull(right, "right node", this);
- final Expression leftExp = left.createExpression(expression);
- final Expression rightExp = right.createExpression(expression);
+ final Expression leftExp = left.createExpression(camelContext, expression);
+ final Expression rightExp = right.createExpression(camelContext, expression);
if (operator == LogicalOperatorType.AND) {
return createAndExpression(leftExp, rightExp);
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
index b0bceb6..83c0643 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NullExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleParserException;
@@ -26,22 +27,24 @@ import org.apache.camel.language.simple.types.SimpleToken;
*/
public class NullExpression extends BaseSimpleNode {
+ private static final Expression NULL_EXPRESSION = new Expression() {
+ @Override
+ public <T> T evaluate(Exchange exchange, Class<T> type) {
+ return null;
+ }
+
+ @Override
+ public String toString() {
+ return "null";
+ }
+ };
+
public NullExpression(SimpleToken token) {
super(token);
}
@Override
- public Expression createExpression(String expression) throws SimpleParserException {
- return new Expression() {
- @Override
- public <T> T evaluate(Exchange exchange, Class<T> type) {
- return null;
- }
-
- @Override
- public String toString() {
- return "null";
- }
- };
+ public Expression createExpression(CamelContext camelContext, String expression) throws SimpleParserException {
+ return NULL_EXPRESSION;
}
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NumericExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NumericExpression.java
index d50a6d8..e87692c 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NumericExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/NumericExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleParserException;
@@ -47,7 +48,7 @@ public class NumericExpression extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) throws SimpleParserException {
+ public Expression createExpression(CamelContext camelContext, String expression) throws SimpleParserException {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
index e2795cf..03c71fc 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionEnd.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
@@ -29,7 +30,7 @@ public class SimpleFunctionEnd extends BaseSimpleNode implements BlockEnd {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
return null;
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index 5c853f3..5f848e3 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -18,6 +18,7 @@ package org.apache.camel.language.simple.ast;
import java.util.Map;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.SimpleExpressionBuilder;
import org.apache.camel.language.simple.types.SimpleParserException;
@@ -46,12 +47,12 @@ public class SimpleFunctionExpression extends LiteralExpression {
* @param expression not in use
*/
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
String function = text.toString();
Expression answer = cacheExpression != null ? cacheExpression.get(function) : null;
if (answer == null) {
- answer = createSimpleExpression(function, true);
+ answer = createSimpleExpression(camelContext, function, true);
if (cacheExpression != null && answer != null) {
cacheExpression.put(function, answer);
}
@@ -62,19 +63,19 @@ public class SimpleFunctionExpression extends LiteralExpression {
/**
* Creates a Camel {@link Expression} based on this model.
*
- * @param expression not in use
- * @param strict whether to throw exception if the expression
- * was not a function, otherwise <tt>null</tt>
- * is returned
- * @return the created {@link Expression}
+ * @param expression not in use
+ * @param strict whether to throw exception if the expression
+ * was not a function, otherwise <tt>null</tt>
+ * is returned
+ * @return the created {@link Expression}
* @throws org.apache.camel.language.simple.types.SimpleParserException should be thrown if error parsing the model
*/
- public Expression createExpression(String expression, boolean strict) {
+ public Expression createExpression(CamelContext camelContext, String expression, boolean strict) {
String function = text.toString();
Expression answer = cacheExpression != null ? cacheExpression.get(function) : null;
if (answer == null) {
- answer = createSimpleExpression(function, strict);
+ answer = createSimpleExpression(camelContext, function, strict);
if (cacheExpression != null && answer != null) {
cacheExpression.put(function, answer);
}
@@ -82,7 +83,7 @@ public class SimpleFunctionExpression extends LiteralExpression {
return answer;
}
- private Expression createSimpleExpression(String function, boolean strict) {
+ private Expression createSimpleExpression(CamelContext camelContext, String function, boolean strict) {
// return the function directly if we can create function without analyzing the prefix
Expression answer = createSimpleExpressionDirectly(function);
if (answer != null) {
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
index eef11c3..d10ccdb 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionStart.java
@@ -18,6 +18,7 @@ package org.apache.camel.language.simple.ast;
import java.util.Map;
+import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleIllegalSyntaxException;
@@ -53,23 +54,23 @@ public class SimpleFunctionStart extends BaseSimpleNode implements BlockStart {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
// a function can either be a simple literal function, or contain nested functions
if (block.getChildren().size() == 1 && block.getChildren().get(0) instanceof LiteralNode) {
- return doCreateLiteralExpression(expression);
+ return doCreateLiteralExpression(camelContext, expression);
} else {
- return doCreateCompositeExpression(expression);
+ return doCreateCompositeExpression(camelContext, expression);
}
}
- private Expression doCreateLiteralExpression(final String expression) {
+ private Expression doCreateLiteralExpression(CamelContext camelContext, String expression) {
SimpleFunctionExpression function = new SimpleFunctionExpression(this.getToken(), cacheExpression);
LiteralNode literal = (LiteralNode) block.getChildren().get(0);
function.addText(literal.getText());
- return function.createExpression(expression);
+ return function.createExpression(camelContext, expression);
}
- private Expression doCreateCompositeExpression(final String expression) {
+ private Expression doCreateCompositeExpression(CamelContext camelContext, String expression) {
final SimpleToken token = getToken();
return new Expression() {
@Override
@@ -92,7 +93,7 @@ public class SimpleFunctionStart extends BaseSimpleNode implements BlockStart {
} else if (!lazy || child instanceof SingleQuoteStart || child instanceof DoubleQuoteStart) {
try {
// pass in null when we evaluate the nested expressions
- Expression nested = child.createExpression(null);
+ Expression nested = child.createExpression(camelContext, null);
String text = nested.evaluate(exchange, String.class);
if (text != null) {
if (quoteEmbeddedFunctions && !StringHelper.isQuoted(text)) {
@@ -117,7 +118,7 @@ public class SimpleFunctionStart extends BaseSimpleNode implements BlockStart {
SimpleFunctionExpression function = new SimpleFunctionExpression(token, cacheExpression);
function.addText(exp);
try {
- return function.createExpression(exp).evaluate(exchange, type);
+ return function.createExpression(camelContext, exp).evaluate(exchange, type);
} catch (SimpleParserException e) {
// must rethrow parser exception as illegal syntax with details about the location
throw new SimpleIllegalSyntaxException(expression, e.getIndex(), e.getMessage(), e);
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
index 4d2ca83..afe5921 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleNode.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleParserException;
import org.apache.camel.language.simple.types.SimpleToken;
@@ -35,10 +36,11 @@ public interface SimpleNode {
/**
* Creates a Camel {@link Expression} based on this model.
*
- * @param expression the input string
- * @return the created {@link Expression}
+ * @param camelContext the camel context
+ * @param expression the input string
+ * @return the created {@link Expression}
* @throws org.apache.camel.language.simple.types.SimpleParserException should be thrown if error parsing the model
*/
- Expression createExpression(String expression) throws SimpleParserException;
+ Expression createExpression(CamelContext camelContext, String expression) throws SimpleParserException;
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
index 43e1452..b0f590b 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteEnd.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
@@ -29,7 +30,7 @@ public class SingleQuoteEnd extends BaseSimpleNode implements BlockEnd {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
return null;
}
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
index a1b4158..ad484ca 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SingleQuoteStart.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.Expression;
import org.apache.camel.language.simple.types.SimpleToken;
import org.apache.camel.support.builder.ExpressionBuilder;
@@ -39,10 +40,10 @@ public class SingleQuoteStart extends BaseSimpleNode implements BlockStart {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
Expression answer = null;
if (block != null) {
- answer = block.createExpression(expression);
+ answer = block.createExpression(camelContext, expression);
}
if (answer == null) {
// there quoted literal is empty
diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
index 35457ae..6d8dc16 100644
--- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
+++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/UnaryExpression.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.language.simple.ast;
+import org.apache.camel.CamelContext;
import org.apache.camel.CamelExchangeException;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
@@ -62,21 +63,21 @@ public class UnaryExpression extends BaseSimpleNode {
}
@Override
- public Expression createExpression(String expression) {
+ public Expression createExpression(CamelContext camelContext, String expression) {
ObjectHelper.notNull(left, "left node", this);
- final Expression leftExp = left.createExpression(expression);
+ final Expression leftExp = left.createExpression(camelContext, expression);
if (operator == UnaryOperatorType.INC) {
- return createIncExpression(leftExp);
+ return createIncExpression(camelContext, leftExp);
} else if (operator == UnaryOperatorType.DEC) {
- return createDecExpression(leftExp);
+ return createDecExpression(camelContext, leftExp);
}
throw new SimpleParserException("Unknown unary operator " + operator, token.getIndex());
}
- private Expression createIncExpression(final Expression leftExp) {
+ private Expression createIncExpression(CamelContext camelContext, final Expression leftExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -88,13 +89,13 @@ public class UnaryExpression extends BaseSimpleNode {
// convert value back to same type as input as we want to preserve type
Object left = leftExp.evaluate(exchange, Object.class);
try {
- left = exchange.getContext().getTypeConverter().mandatoryConvertTo(left.getClass(), exchange, val);
+ left = camelContext.getTypeConverter().mandatoryConvertTo(left.getClass(), exchange, val);
} catch (NoTypeConversionAvailableException e) {
throw RuntimeCamelException.wrapRuntimeCamelException(e);
}
// and return the result
- return exchange.getContext().getTypeConverter().convertTo(type, left);
+ return camelContext.getTypeConverter().convertTo(type, left);
}
// cannot convert the expression as a number
Exception cause = new CamelExchangeException("Cannot evaluate " + leftExp + " as a number", exchange);
@@ -108,7 +109,7 @@ public class UnaryExpression extends BaseSimpleNode {
};
}
- private Expression createDecExpression(final Expression leftExp) {
+ private Expression createDecExpression(CamelContext camelContext, final Expression leftExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -120,13 +121,13 @@ public class UnaryExpression extends BaseSimpleNode {
// convert value back to same type as input as we want to preserve type
Object left = leftExp.evaluate(exchange, Object.class);
try {
- left = exchange.getContext().getTypeConverter().mandatoryConvertTo(left.getClass(), exchange, val);
+ left = camelContext.getTypeConverter().mandatoryConvertTo(left.getClass(), exchange, val);
} catch (NoTypeConversionAvailableException e) {
throw RuntimeCamelException.wrapRuntimeCamelException(e);
}
// and return the result
- return exchange.getContext().getTypeConverter().convertTo(type, left);
+ return camelContext.getTypeConverter().convertTo(type, left);
}
// cannot convert the expression as a number
Exception cause = new CamelExchangeException("Cannot evaluate " + leftExp + " as a number", exchange);
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleTest.java
index fae4e5b..97a4a1c 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleBackwardsCompatibleTest.java
@@ -55,7 +55,7 @@ public class SimpleBackwardsCompatibleTest extends LanguageTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == true && ${header.foo} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == true && ${header.foo} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -67,7 +67,7 @@ public class SimpleBackwardsCompatibleTest extends LanguageTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == false || ${header.foo} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == false || ${header.foo} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionInvalidTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionInvalidTest.java
index ae6906c..fdcd6c0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionInvalidTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionInvalidTest.java
@@ -30,7 +30,7 @@ public class SimpleParserExpressionInvalidTest extends ExchangeTestSupport {
@Test
public void testSimpleUnbalanceFunction() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("${body is a nice day", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body is a nice day", true, null);
try {
parser.parseExpression();
fail("Should thrown exception");
@@ -41,7 +41,7 @@ public class SimpleParserExpressionInvalidTest extends ExchangeTestSupport {
@Test
public void testSimpleNestedUnbalanceFunction() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("${body${foo}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body${foo}", true, null);
try {
parser.parseExpression();
fail("Should thrown exception");
@@ -52,7 +52,7 @@ public class SimpleParserExpressionInvalidTest extends ExchangeTestSupport {
@Test
public void testSimpleUnknownFunction() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Hello ${foo} how are you?", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Hello ${foo} how are you?", true, null);
try {
parser.parseExpression();
fail("Should thrown exception");
@@ -63,7 +63,7 @@ public class SimpleParserExpressionInvalidTest extends ExchangeTestSupport {
@Test
public void testSimpleNestedUnknownFunction() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Hello ${bodyAs(${foo})} how are you?", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Hello ${bodyAs(${foo})} how are you?", true, null);
try {
// nested functions can only be syntax evaluated when evaluating an
// exchange at runtime
@@ -77,7 +77,7 @@ public class SimpleParserExpressionInvalidTest extends ExchangeTestSupport {
@Test
public void testNoEndFunction() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Hello ${body", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Hello ${body", true, null);
try {
parser.parseExpression();
fail("Should thrown exception");
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionTest.java
index 5a07161..31d5107 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionTest.java
@@ -30,7 +30,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleParserEol() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Hello", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Hello", true, null);
Expression exp = parser.parseExpression();
assertEquals("Hello", exp.evaluate(exchange, String.class));
@@ -38,7 +38,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuote() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("'Hello'", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "'Hello'", true, null);
Expression exp = parser.parseExpression();
assertEquals("'Hello'", exp.evaluate(exchange, String.class));
@@ -46,7 +46,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleStringList() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("\"Hello\" \"World\"", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "\"Hello\" \"World\"", true, null);
Expression exp = parser.parseExpression();
assertEquals("\"Hello\" \"World\"", exp.evaluate(exchange, String.class));
@@ -55,7 +55,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteWithFunction() throws Exception {
exchange.getIn().setBody("World");
- SimpleExpressionParser parser = new SimpleExpressionParser("'Hello ${body} how are you?'", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "'Hello ${body} how are you?'", true, null);
Expression exp = parser.parseExpression();
assertEquals("'Hello World how are you?'", exp.evaluate(exchange, String.class));
@@ -64,7 +64,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteWithFunctionBodyAs() throws Exception {
exchange.getIn().setBody("World");
- SimpleExpressionParser parser = new SimpleExpressionParser("'Hello ${bodyAs(String)} how are you?'", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "'Hello ${bodyAs(String)} how are you?'", true, null);
Expression exp = parser.parseExpression();
assertEquals("'Hello World how are you?'", exp.evaluate(exchange, String.class));
@@ -72,7 +72,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteEol() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("'Hello' World", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "'Hello' World", true, null);
Expression exp = parser.parseExpression();
assertEquals("'Hello' World", exp.evaluate(exchange, String.class));
@@ -81,7 +81,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleFunction() throws Exception {
exchange.getIn().setBody("World");
- SimpleExpressionParser parser = new SimpleExpressionParser("${body}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body}", true, null);
Expression exp = parser.parseExpression();
assertEquals("World", exp.evaluate(exchange, String.class));
@@ -89,7 +89,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteDollar() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Pay 200$ today", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Pay 200$ today", true, null);
Expression exp = parser.parseExpression();
assertEquals("Pay 200$ today", exp.evaluate(exchange, String.class));
@@ -97,7 +97,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteDollarEnd() throws Exception {
- SimpleExpressionParser parser = new SimpleExpressionParser("Pay 200$", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "Pay 200$", true, null);
Expression exp = parser.parseExpression();
assertEquals("Pay 200$", exp.evaluate(exchange, String.class));
@@ -106,7 +106,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleUnaryInc() throws Exception {
exchange.getIn().setBody("122");
- SimpleExpressionParser parser = new SimpleExpressionParser("${body}++", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body}++", true, null);
Expression exp = parser.parseExpression();
assertEquals("123", exp.evaluate(exchange, String.class));
@@ -115,7 +115,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleUnaryDec() throws Exception {
exchange.getIn().setBody("122");
- SimpleExpressionParser parser = new SimpleExpressionParser("${body}--", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body}--", true, null);
Expression exp = parser.parseExpression();
assertEquals("121", exp.evaluate(exchange, String.class));
@@ -124,7 +124,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleUnaryIncInt() throws Exception {
exchange.getIn().setBody(122);
- SimpleExpressionParser parser = new SimpleExpressionParser("${body}++", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body}++", true, null);
Expression exp = parser.parseExpression();
assertEquals(Integer.valueOf(123), exp.evaluate(exchange, Integer.class));
@@ -133,7 +133,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleUnaryDecInt() throws Exception {
exchange.getIn().setBody(122);
- SimpleExpressionParser parser = new SimpleExpressionParser("${body}--", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body}--", true, null);
Expression exp = parser.parseExpression();
assertEquals(Integer.valueOf(121), exp.evaluate(exchange, Integer.class));
@@ -143,7 +143,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
public void testHeaderNestedFunction() throws Exception {
exchange.getIn().setBody("foo");
exchange.getIn().setHeader("foo", "abc");
- SimpleExpressionParser parser = new SimpleExpressionParser("${header.${body}}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${header.${body}}", true, null);
Expression exp = parser.parseExpression();
Object obj = exp.evaluate(exchange, Object.class);
@@ -155,7 +155,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
public void testBodyAsNestedFunction() throws Exception {
exchange.getIn().setBody("123");
exchange.getIn().setHeader("foo", "Integer");
- SimpleExpressionParser parser = new SimpleExpressionParser("${bodyAs(${header.foo})}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${bodyAs(${header.foo})}", true, null);
Expression exp = parser.parseExpression();
Object obj = exp.evaluate(exchange, Object.class);
@@ -171,7 +171,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setHeader("bar", "e");
exchange.getIn().setHeader("baz", "ger");
SimpleExpressionParser parser
- = new SimpleExpressionParser("${bodyAs(${header.foo}${header.bar}${header.baz})}", true, null);
+ = new SimpleExpressionParser(context, "${bodyAs(${header.foo}${header.bar}${header.baz})}", true, null);
Expression exp = parser.parseExpression();
Object obj = exp.evaluate(exchange, Object.class);
@@ -185,7 +185,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setBody("123");
exchange.getIn().setHeader("foo", "Integer");
exchange.getIn().setHeader("bar", "foo");
- SimpleExpressionParser parser = new SimpleExpressionParser("${bodyAs(${header.${header.bar}})}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${bodyAs(${header.${header.bar}})}", true, null);
Expression exp = parser.parseExpression();
Object obj = exp.evaluate(exchange, Object.class);
@@ -202,11 +202,11 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setBody(map);
- SimpleExpressionParser parser = new SimpleExpressionParser("${body[foo]}", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "${body[foo]}", true, null);
Expression exp = parser.parseExpression();
assertEquals("123", exp.evaluate(exchange, Object.class));
- parser = new SimpleExpressionParser("${body['foo bar']}", true, null);
+ parser = new SimpleExpressionParser(context, "${body['foo bar']}", true, null);
exp = parser.parseExpression();
assertEquals("456", exp.evaluate(exchange, Object.class));
}
@@ -216,7 +216,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setHeader("JMSMessageID", "JMSMessageID-123");
exchange.getIn().setBody("THE MSG ID ${header.JMSMessageID} isA --");
- SimpleExpressionParser parser = new SimpleExpressionParser("THE MSG ID ${header.JMSMessageID} isA --", true, null);
+ SimpleExpressionParser parser = new SimpleExpressionParser(context, "THE MSG ID ${header.JMSMessageID} isA --", true, null);
Expression exp = parser.parseExpression();
assertEquals("THE MSG ID JMSMessageID-123 isA --", exp.evaluate(exchange, String.class));
@@ -228,7 +228,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setBody("------------THE MSG ID ${header.JMSMessageID}------------");
SimpleExpressionParser parser
- = new SimpleExpressionParser("------------THE MSG ID ${header.JMSMessageID}------------", true, null);
+ = new SimpleExpressionParser(context, "------------THE MSG ID ${header.JMSMessageID}------------", true, null);
Expression exp = parser.parseExpression();
assertEquals("------------THE MSG ID JMSMessageID-123------------", exp.evaluate(exchange, String.class));
@@ -240,7 +240,7 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setBody("------------ THE MSG ID ${header.JMSMessageID} ------------");
SimpleExpressionParser parser
- = new SimpleExpressionParser("------------ THE MSG ID ${header.JMSMessageID} ------------", true, null);
+ = new SimpleExpressionParser(context, "------------ THE MSG ID ${header.JMSMessageID} ------------", true, null);
Expression exp = parser.parseExpression();
assertEquals("------------ THE MSG ID JMSMessageID-123 ------------", exp.evaluate(exchange, String.class));
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateInvalidTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateInvalidTest.java
index 29b8b94..56938c7 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateInvalidTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateInvalidTest.java
@@ -33,7 +33,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
exchange.getIn().setBody("Hello");
exchange.getIn().setHeader("high", true);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == abc", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == abc", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -47,7 +47,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
exchange.getIn().setBody("Hello");
exchange.getIn().setHeader("high", true);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} = true", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} = true", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -60,7 +60,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleUnevenSingleQuote() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 'foo", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 'foo", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -73,7 +73,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleUnevenDoubleQuote() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == \"foo", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == \"foo", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -86,7 +86,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleTwoAnd() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 'foo' && && ${header} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 'foo' && && ${header} == 123", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -99,7 +99,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleTwoOr() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 'foo' || || ${header} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 'foo' || || ${header} == 123", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
@@ -112,7 +112,7 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleTwoEq() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == == 'foo'", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == == 'foo'", true, null);
try {
parser.parsePredicate();
fail("Should thrown exception");
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateTest.java
index d43a925..7fcb6f3 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserPredicateTest.java
@@ -38,11 +38,11 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleBooleanValue() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("true", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "true", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange));
- parser = new SimplePredicateParser("false", true, null);
+ parser = new SimplePredicateParser(context, "false", true, null);
pre = parser.parsePredicate();
assertFalse(pre.matches(exchange));
}
@@ -51,7 +51,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleEq() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 'foo'", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 'foo'", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange));
@@ -61,7 +61,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleEqNumeric() throws Exception {
exchange.getIn().setBody(123);
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -72,7 +72,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setBody(122);
exchange.getIn().setHeader("val", 122);
- SimplePredicateParser parser = new SimplePredicateParser("${body} == ${header.val}", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == ${header.val}", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -82,7 +82,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleEqFunctionNumeric() throws Exception {
exchange.getIn().setBody(122);
- SimplePredicateParser parser = new SimplePredicateParser("${body} == 122", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 122", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -92,7 +92,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleGtFunctionNumeric() throws Exception {
exchange.getIn().setBody(122);
- SimplePredicateParser parser = new SimplePredicateParser("${body} > 120", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} > 120", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -102,7 +102,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleUnaryInc() throws Exception {
exchange.getIn().setBody(122);
- SimplePredicateParser parser = new SimplePredicateParser("${body}++ == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body}++ == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -112,7 +112,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleUnaryDec() throws Exception {
exchange.getIn().setBody(122);
- SimplePredicateParser parser = new SimplePredicateParser("${body}-- == 121", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body}-- == 121", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -123,7 +123,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setBody("Hello");
exchange.getIn().setHeader("high", true);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == true", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == true", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -134,7 +134,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setBody("Hello");
exchange.getIn().setHeader("high", true);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == true", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == true", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -146,7 +146,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == true && ${header.foo} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == true && ${header.foo} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -158,7 +158,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser("${header.high} == false || ${header.foo} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${header.high} == false || ${header.foo} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -171,7 +171,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("foo", 123);
exchange.getIn().setHeader("bar", "beer");
- SimplePredicateParser parser = new SimplePredicateParser(
+ SimplePredicateParser parser = new SimplePredicateParser(context,
"${header.high} == true && ${header.foo} == 123 && ${header.bar} == 'beer'", true, null);
Predicate pre = parser.parsePredicate();
@@ -191,7 +191,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
}
}
- SimplePredicateParser parser = new SimplePredicateParser(sb.toString(), true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, sb.toString(), true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -210,7 +210,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
}
sb.append(" || ${body} == 'Hello'");
- SimplePredicateParser parser = new SimplePredicateParser(sb.toString(), true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, sb.toString(), true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
@@ -220,7 +220,7 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
public void testSimpleExpressionPredicate() throws Exception {
exchange.getIn().setBody("Hello");
exchange.getIn().setHeader("number", "1234");
- SimplePredicateParser parser = new SimplePredicateParser("${in.header.number} regex '\\d{4}'", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${in.header.number} regex '\\d{4}'", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
}
@@ -233,21 +233,21 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setBody(map);
- SimplePredicateParser parser = new SimplePredicateParser("${body[foo]} == 123", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body[foo]} == 123", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
- parser = new SimplePredicateParser("${body['foo bar']} == 456", true, null);
+ parser = new SimplePredicateParser(context, "${body['foo bar']} == 456", true, null);
pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
// the predicate has whitespace in the function
- parser = new SimplePredicateParser("${body[foo bar]} == 456", true, null);
+ parser = new SimplePredicateParser(context, "${body[foo bar]} == 456", true, null);
pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
// no header with that name
- parser = new SimplePredicateParser("${body[unknown]} == 456", true, null);
+ parser = new SimplePredicateParser(context, "${body[unknown]} == 456", true, null);
pre = parser.parsePredicate();
assertFalse(pre.matches(exchange), "Should not match");
}
@@ -272,22 +272,22 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
map.put("key3", "none");
exchange.getIn().setBody(map);
- SimplePredicateParser parser = new SimplePredicateParser("${body[key]} in ${ref:myList}", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body[key]} in ${ref:myList}", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
- parser = new SimplePredicateParser("${body[key2]} in ${ref:myList}", true, null);
+ parser = new SimplePredicateParser(context, "${body[key2]} in ${ref:myList}", true, null);
pre = parser.parsePredicate();
assertTrue(pre.matches(exchange), "Should match");
- parser = new SimplePredicateParser("${body[key3]} in ${ref:myList}", true, null);
+ parser = new SimplePredicateParser(context, "${body[key3]} in ${ref:myList}", true, null);
pre = parser.parsePredicate();
assertFalse(pre.matches(exchange), "Should not match");
}
@Test
public void testSimpleInEmpty() throws Exception {
- SimplePredicateParser parser = new SimplePredicateParser("${body} in ',,gold,silver'", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} in ',,gold,silver'", true, null);
Predicate pre = parser.parsePredicate();
exchange.getIn().setBody("gold");
diff --git a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserRegexpPredicateTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserRegexpPredicateTest.java
index 1376afb..35ec401 100644
--- a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserRegexpPredicateTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserRegexpPredicateTest.java
@@ -32,7 +32,7 @@ public class SimpleParserRegexpPredicateTest extends ExchangeTestSupport {
public void testSimpleRegexp() throws Exception {
exchange.getIn().setBody("12.34.5678");
- SimplePredicateParser parser = new SimplePredicateParser("${body} regex '^\\d{2}\\.\\d{2}\\.\\d{4}$'", true, null);
+ SimplePredicateParser parser = new SimplePredicateParser(context, "${body} regex '^\\d{2}\\.\\d{2}\\.\\d{4}$'", true, null);
Predicate pre = parser.parsePredicate();
assertTrue(pre.matches(exchange));