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:08 UTC
[camel] 03/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 eedd9a81941c72ea8428cac70c5fedd72c8e7d49
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Oct 2 11:27:03 2020 +0200
CAMEL-15606: camel-core - Simple with bean function should resolve language once
---
.../camel/impl/engine/AbstractCamelContext.java | 1 -
.../camel/language/simple/SimpleLanguage.java | 6 ++++--
.../language/simple/SimplePredicateParser.java | 3 ++-
.../camel/language/simple/ast/BinaryExpression.java | 21 ++++++++++++++-------
.../simple/ast/SimpleFunctionExpression.java | 10 +++++-----
.../camel/language/simple/ast/SimpleNode.java | 6 +++---
.../simple/SimpleBackwardsCompatibleTest.java | 6 ++++--
.../language/simple/SimpleParserExpressionTest.java | 9 ++++++---
.../simple/SimpleParserPredicateInvalidTest.java | 6 ++++--
.../language/simple/SimpleParserPredicateTest.java | 9 ++++++---
.../simple/SimpleParserRegexpPredicateTest.java | 3 ++-
11 files changed, 50 insertions(+), 30 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 8e4e940..93c92b5 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,7 +1638,6 @@ 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/SimpleLanguage.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java
index 2f1e16d..b7e05ce 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,8 @@ public class SimpleLanguage extends LanguageSupport implements StaticService {
expression = loadResource(expression);
- SimplePredicateParser parser = new SimplePredicateParser(getCamelContext(), expression, allowEscape, cacheExpression);
+ SimplePredicateParser parser
+ = new SimplePredicateParser(getCamelContext(), expression, allowEscape, cacheExpression);
answer = parser.parsePredicate();
if (cachePredicate != null && answer != null) {
@@ -124,7 +125,8 @@ public class SimpleLanguage extends LanguageSupport implements StaticService {
expression = loadResource(expression);
- SimpleExpressionParser parser = new SimpleExpressionParser(getCamelContext(), 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 392953b..6cc77d3 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
@@ -63,7 +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(CamelContext camelContext, String expression, boolean allowEscape, Map<String, Expression> cacheExpression) {
+ public SimplePredicateParser(CamelContext camelContext, String expression, boolean allowEscape,
+ Map<String, Expression> cacheExpression) {
super(camelContext, expression, allowEscape);
this.cacheExpression = cacheExpression;
}
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 f0fbaeb..a995946 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
@@ -86,7 +86,8 @@ public class BinaryExpression extends BaseSimpleNode {
} else if (operator == BinaryOperatorType.GT) {
return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isGreaterThan(leftExp, rightExp));
} else if (operator == BinaryOperatorType.GTE) {
- return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isGreaterThanOrEqualTo(leftExp, rightExp));
+ return createExpression(camelContext, leftExp, rightExp,
+ PredicateBuilder.isGreaterThanOrEqualTo(leftExp, rightExp));
} else if (operator == BinaryOperatorType.LT) {
return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.isLessThan(leftExp, rightExp));
} else if (operator == BinaryOperatorType.LTE) {
@@ -99,7 +100,8 @@ public class BinaryExpression extends BaseSimpleNode {
} else if (operator == BinaryOperatorType.CONTAINS) {
return createExpression(camelContext, leftExp, rightExp, PredicateBuilder.contains(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_CONTAINS) {
- return createExpression(camelContext, 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(camelContext, leftExp, rightExp, PredicateBuilder.containsIgnoreCase(leftExp, rightExp));
} else if (operator == BinaryOperatorType.NOT_CONTAINS_IGNORECASE) {
@@ -122,7 +124,8 @@ public class BinaryExpression extends BaseSimpleNode {
throw new SimpleParserException("Unknown binary operator " + operator, token.getIndex());
}
- private Expression createIsExpression(final CamelContext camelContext, 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) {
@@ -156,7 +159,8 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createRegexExpression(final CamelContext camelContext, 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) {
@@ -176,7 +180,8 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createInExpression(final CamelContext camelContext, 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) {
@@ -205,7 +210,8 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createRangeExpression(final CamelContext camelContext, 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) {
@@ -241,7 +247,8 @@ public class BinaryExpression extends BaseSimpleNode {
};
}
- private Expression createExpression(final CamelContext camelContext, 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) {
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 5f848e3..12ddf6c 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
@@ -63,11 +63,11 @@ 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(CamelContext camelContext, String expression, boolean strict) {
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 afe5921..1bef48f 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
@@ -36,9 +36,9 @@ public interface SimpleNode {
/**
* Creates a Camel {@link Expression} based on this model.
*
- * @param camelContext the camel context
- * @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(CamelContext camelContext, String expression) throws SimpleParserException;
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 97a4a1c..7364925 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,8 @@ public class SimpleBackwardsCompatibleTest extends LanguageTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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 +68,8 @@ public class SimpleBackwardsCompatibleTest extends LanguageTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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/SimpleParserExpressionTest.java b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleParserExpressionTest.java
index 31d5107..cf8e019 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
@@ -64,7 +64,8 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
@Test
public void testSimpleSingleQuoteWithFunctionBodyAs() throws Exception {
exchange.getIn().setBody("World");
- SimpleExpressionParser parser = new SimpleExpressionParser(context, "'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));
@@ -216,7 +217,8 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setHeader("JMSMessageID", "JMSMessageID-123");
exchange.getIn().setBody("THE MSG ID ${header.JMSMessageID} isA --");
- SimpleExpressionParser parser = new SimpleExpressionParser(context, "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));
@@ -240,7 +242,8 @@ public class SimpleParserExpressionTest extends ExchangeTestSupport {
exchange.getIn().setBody("------------ THE MSG ID ${header.JMSMessageID} ------------");
SimpleExpressionParser parser
- = new SimpleExpressionParser(context, "------------ 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 56938c7..404ec9f 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
@@ -86,7 +86,8 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleTwoAnd() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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 +100,8 @@ public class SimpleParserPredicateInvalidTest extends ExchangeTestSupport {
public void testSimpleTwoOr() throws Exception {
exchange.getIn().setBody("foo");
- SimplePredicateParser parser = new SimplePredicateParser(context, "${body} == 'foo' || || ${header} == 123", true, null);
+ SimplePredicateParser parser
+ = new SimplePredicateParser(context, "${body} == 'foo' || || ${header} == 123", 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 7fcb6f3..1068715 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
@@ -146,7 +146,8 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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 +159,8 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("high", true);
exchange.getIn().setHeader("foo", 123);
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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 +173,8 @@ public class SimpleParserPredicateTest extends ExchangeTestSupport {
exchange.getIn().setHeader("foo", 123);
exchange.getIn().setHeader("bar", "beer");
- SimplePredicateParser parser = new SimplePredicateParser(context,
+ SimplePredicateParser parser = new SimplePredicateParser(
+ context,
"${header.high} == true && ${header.foo} == 123 && ${header.bar} == 'beer'", true, null);
Predicate pre = parser.parsePredicate();
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 35ec401..e954f8e 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,8 @@ public class SimpleParserRegexpPredicateTest extends ExchangeTestSupport {
public void testSimpleRegexp() throws Exception {
exchange.getIn().setBody("12.34.5678");
- SimplePredicateParser parser = new SimplePredicateParser(context, "${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));