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
The following commit(s) were added to refs/heads/master by this push:
new ed8d414 camel-core - Small optimize in simple when creating
expression/predicate and not have tangle to the reifier.
ed8d414 is described below
commit ed8d41413464a1fa65b69dfb6042b4a5d8f50676
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Oct 21 10:28:46 2020 +0200
camel-core - Small optimize in simple when creating expression/predicate
and not have tangle to the reifier.
---
.../org/apache/camel/builder/SimpleBuilder.java | 6 ++--
.../reifier/language/SimpleExpressionReifier.java | 37 ++++------------------
.../apache/camel/builder/NotifyBuilderTest.java | 2 +-
.../apache/camel/model/ChoiceDefinitionTest.java | 2 +-
.../apache/camel/processor/ValidateSimpleTest.java | 2 +-
5 files changed, 13 insertions(+), 36 deletions(-)
diff --git
a/core/camel-core-engine/src/main/java/org/apache/camel/builder/SimpleBuilder.java
b/core/camel-core-engine/src/main/java/org/apache/camel/builder/SimpleBuilder.java
index 61a7c12..ee38e24 100644
---
a/core/camel-core-engine/src/main/java/org/apache/camel/builder/SimpleBuilder.java
+++
b/core/camel-core-engine/src/main/java/org/apache/camel/builder/SimpleBuilder.java
@@ -27,7 +27,7 @@ import org.apache.camel.support.PredicateToExpressionAdapter;
import org.apache.camel.support.ScriptHelper;
/**
- * Creates an {@link org.apache.camel.language.simple.Simple} language builder.
+ * Creates an Simple language builder.
* <p/>
* This builder is available in the Java DSL from the {@link RouteBuilder}
which means that using simple language for
* {@link Expression}s or {@link Predicate}s is very easy with the help of
this builder.
@@ -147,6 +147,7 @@ public class SimpleBuilder implements Predicate,
Expression, ExpressionResultTyp
Expression exp;
// and optional it be refer to an external script on the
file/classpath
if (ScriptHelper.hasExternalScript(resolve)) {
+ // TODO: Optimize to load this eager
exp = new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
@@ -160,6 +161,7 @@ public class SimpleBuilder implements Predicate,
Expression, ExpressionResultTyp
return text;
}
};
+ exp.init(context);
} else {
exp = simple.createExpression(resolve);
exp.init(context);
@@ -175,7 +177,7 @@ public class SimpleBuilder implements Predicate,
Expression, ExpressionResultTyp
@Override
public String toString() {
- return "Simple: " + text;
+ return text;
}
}
diff --git
a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/SimpleExpressionReifier.java
b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/SimpleExpressionReifier.java
index 66e1b78..3731ba3 100644
---
a/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/SimpleExpressionReifier.java
+++
b/core/camel-core-engine/src/main/java/org/apache/camel/reifier/language/SimpleExpressionReifier.java
@@ -17,7 +17,6 @@
package org.apache.camel.reifier.language;
import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
import org.apache.camel.RuntimeCamelException;
@@ -34,38 +33,16 @@ public class SimpleExpressionReifier extends
ExpressionReifier<SimpleExpression>
@Override
public Expression createExpression() {
- Expression expr = createBuilder().createExpression(camelContext);
- return new Expression() {
- @Override
- public <T> T evaluate(Exchange exchange, Class<T> type) {
- return expr.evaluate(exchange, type);
- }
-
- @Override
- public String toString() {
- return definition.getExpression();
- }
- };
+ return
createBuilder(definition.getExpression()).createExpression(camelContext);
}
@Override
public Predicate createPredicate() {
- Predicate pred = createBuilder().createPredicate(camelContext);
- return new Predicate() {
- @Override
- public boolean matches(Exchange exchange) {
- return pred.matches(exchange);
- }
-
- @Override
- public String toString() {
- return definition.getExpression();
- }
- };
+ return
createBuilder(definition.getExpression()).createPredicate(camelContext);
}
- protected SimpleBuilder createBuilder() {
- String exp = parseString(definition.getExpression());
+ protected SimpleBuilder createBuilder(String expression) {
+ String exp = parseString(expression);
// should be true by default
boolean isTrim = parseBoolean(definition.getTrim(), true);
if (exp != null && isTrim) {
@@ -80,14 +57,12 @@ public class SimpleExpressionReifier extends
ExpressionReifier<SimpleExpression>
@Override
protected Expression createExpression(Language language, String exp) {
- definition.setExpression(exp);
- return createBuilder();
+ return createBuilder(exp);
}
@Override
protected Predicate createPredicate(Language language, String exp) {
- definition.setExpression(exp);
- return createBuilder();
+ return createBuilder(exp);
}
@Override
diff --git
a/core/camel-core/src/test/java/org/apache/camel/builder/NotifyBuilderTest.java
b/core/camel-core/src/test/java/org/apache/camel/builder/NotifyBuilderTest.java
index a94e27c..6f7b4a3 100644
---
a/core/camel-core/src/test/java/org/apache/camel/builder/NotifyBuilderTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/builder/NotifyBuilderTest.java
@@ -363,7 +363,7 @@ public class NotifyBuilderTest extends ContextTestSupport {
public void testFilterWhenExchangeDone() throws Exception {
NotifyBuilder notify = new
NotifyBuilder(context).filter(body().contains("World")).whenDone(3).create();
- assertEquals("filter(${body} contains World).whenDone(3)",
notify.toString());
+ assertEquals("filter(body contains World).whenDone(3)",
notify.toString());
assertEquals(false, notify.matches());
diff --git
a/core/camel-core/src/test/java/org/apache/camel/model/ChoiceDefinitionTest.java
b/core/camel-core/src/test/java/org/apache/camel/model/ChoiceDefinitionTest.java
index 4cceb1e..2a12b74 100644
---
a/core/camel-core/src/test/java/org/apache/camel/model/ChoiceDefinitionTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/model/ChoiceDefinitionTest.java
@@ -41,7 +41,7 @@ public class ChoiceDefinitionTest extends TestSupport {
assertEquals(when1, choice.getOutputs().get(0));
assertEquals(when2, choice.getOutputs().get(1));
assertEquals(other, choice.getOutputs().get(2));
- assertEquals("choice[when[{${body} contains Camel}],when[{${body}
contains Donkey}],otherwise[]]", choice.getLabel());
+ assertEquals("choice[when[{body contains Camel}],when[{body contains
Donkey}],otherwise[]]", choice.getLabel());
}
@Test
diff --git
a/core/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
b/core/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
index 06ee47d..cd8c6db 100644
---
a/core/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
+++
b/core/camel-core/src/test/java/org/apache/camel/processor/ValidateSimpleTest.java
@@ -60,7 +60,7 @@ public class ValidateSimpleTest extends ContextTestSupport {
} catch (CamelExecutionException e) {
// expected
assertIsInstanceOf(PredicateValidationException.class,
e.getCause());
- String s = "Validation failed for Predicate[${body} contains
'Camel'].";
+ String s = "Validation failed for Predicate[body contains Camel].";
assertStringContains(e.getCause().getMessage(), s);
}