This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch lang5 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 37c756562a95d7dc173b46bbb9c3eeb8cf564e28 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sat Feb 3 16:49:47 2024 +0100 CAMEL-20378: Languages should be thread-safe and be configured only via properties array, all in the same way. --- .../org/apache/camel/language/csimple/CSimpleHelper.java | 10 +++++----- .../camel/language/simple/SimpleExpressionBuilder.java | 14 +++++++------- .../language/simple/ast/SimpleFunctionExpression.java | 10 +++++----- .../apache/camel/support/builder/ExpressionBuilder.java | 4 ++-- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java index 4bf6cdd5f09..6d2200a866b 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java @@ -380,11 +380,11 @@ public final class CSimpleHelper { } } - Object[] properties = new Object[5]; - properties[2] = type; - properties[3] = ref; - properties[1] = method; - properties[4] = scope; + Object[] properties = new Object[7]; + properties[3] = type; + properties[4] = ref; + properties[2] = method; + properties[5] = scope; Expression exp = bean.createExpression(null, properties); exp.init(exchange.getContext()); return exp.evaluate(exchange, Object.class); diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java index 9ec436ae6ec..47fa8d95fb7 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionBuilder.java @@ -691,7 +691,7 @@ public final class SimpleExpressionBuilder { } catch (InvalidPayloadException e) { throw CamelExecutionException.wrapCamelExecutionException(exchange, e); } - Expression ognlExp = bean.createExpression(null, new Object[] { body, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, body, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } @@ -772,7 +772,7 @@ public final class SimpleExpressionBuilder { if (msg != null) { // ognl is able to evaluate method name if it contains nested functions // so we should not eager evaluate ognl as a string - Expression ognlExp = bean.createExpression(null, new Object[] { msg, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, msg, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } else { @@ -818,7 +818,7 @@ public final class SimpleExpressionBuilder { if (body != null) { // ognl is able to evaluate method name if it contains nested functions // so we should not eager evaluate ognl as a string - Expression ognlExp = bean.createExpression(null, new Object[] { body, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, body, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } else { @@ -854,7 +854,7 @@ public final class SimpleExpressionBuilder { public Object evaluate(Exchange exchange) { // ognl is able to evaluate method name if it contains nested functions // so we should not eager evaluate ognl as a string - Expression ognlExp = bean.createExpression(null, new Object[] { exchange, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, exchange, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } @@ -915,7 +915,7 @@ public final class SimpleExpressionBuilder { if (body == null) { return null; } - Expression ognlExp = bean.createExpression(null, new Object[] { body, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, body, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } @@ -1063,7 +1063,7 @@ public final class SimpleExpressionBuilder { // ognl is able to evaluate method name if it contains nested functions // so we should not eager evaluate ognl as a string - Expression ognlExp = bean.createExpression(null, new Object[] { exception, ognl }); + Expression ognlExp = bean.createExpression(null, new Object[] { null, exception, ognl }); ognlExp.init(exchange.getContext()); return ognlExp.evaluate(exchange, Object.class); } @@ -1145,7 +1145,7 @@ public final class SimpleExpressionBuilder { return null; } if (method != null) { - Expression exp = beanLanguage.createExpression(null, new Object[] { property, method }); + Expression exp = beanLanguage.createExpression(null, new Object[] { null, property, method }); exp.init(exchange.getContext()); return exp.evaluate(exchange, Object.class); } else { 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 a9276250d2e..89ca1043278 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 @@ -265,11 +265,11 @@ public class SimpleFunctionExpression extends LiteralExpression { } // there are parameters then map them into properties - Object[] properties = new Object[5]; - properties[2] = type; - properties[3] = ref; - properties[1] = method; - properties[4] = scope; + Object[] properties = new Object[7]; + properties[3] = type; + properties[4] = ref; + properties[2] = method; + properties[5] = scope; return bean.createExpression(null, properties); } diff --git a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java index 47cef3ba81c..dbd7d6e3a34 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java @@ -2299,7 +2299,7 @@ public class ExpressionBuilder { public void init(CamelContext context) { super.init(context); final Language language = context.resolveLanguage("bean"); - this.exp = language.createExpression(null, new Object[] { bean, method }); + this.exp = language.createExpression(null, new Object[] { null, bean, method }); this.exp.init(context); } @@ -2316,7 +2316,7 @@ public class ExpressionBuilder { @Override public Object evaluate(Exchange exchange) { Object bean = expression.evaluate(exchange, Object.class); - Expression exp = language.createExpression(null, new Object[] { bean, method }); + Expression exp = language.createExpression(null, new Object[] { null, bean, method }); exp.init(exchange.getContext()); return exp.evaluate(exchange, Object.class); }