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 2024/02/03 15:52:24 UTC
(camel) 04/04: CAMEL-20378: Languages should be thread-safe and be configured only via properties array, all in the same way.
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 <cl...@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);
}