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 2023/01/28 10:18:15 UTC
[camel] branch main updated: Upgrade to ognl 3.3.4
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 4b09dd38441 Upgrade to ognl 3.3.4
4b09dd38441 is described below
commit 4b09dd38441bedd9e7c259d6b10b2279a2fbb0a7
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Jan 28 11:17:41 2023 +0100
Upgrade to ognl 3.3.4
---
camel-dependencies/pom.xml | 2 +-
.../java/org/apache/camel/language/ognl/OgnlExpression.java | 11 ++++++-----
.../java/org/apache/camel/language/ognl/OgnlLanguage.java | 12 ++++--------
parent/pom.xml | 2 +-
4 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index d69d6e11568..2dd1ea6421d 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -410,7 +410,7 @@
<okclient-version>3.14.9</okclient-version>
<olingo2-version>2.0.11</olingo2-version>
<olingo4-version>4.8.0</olingo4-version>
- <ognl-version>3.1.12</ognl-version>
+ <ognl-version>3.3.4</ognl-version>
<openjpa-version>3.2.2</openjpa-version>
<openstack4j-version>3.10</openstack4j-version>
<opentelemetry-version>1.21.0</opentelemetry-version>
diff --git a/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlExpression.java b/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlExpression.java
index 261bde4371c..741965ecd56 100644
--- a/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlExpression.java
+++ b/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlExpression.java
@@ -16,8 +16,10 @@
*/
package org.apache.camel.language.ognl;
+import java.util.Map;
+
+import ognl.ClassResolver;
import ognl.Ognl;
-import ognl.OgnlContext;
import ognl.OgnlException;
import org.apache.camel.Exchange;
import org.apache.camel.ExpressionEvaluationException;
@@ -25,7 +27,7 @@ import org.apache.camel.ExpressionIllegalSyntaxException;
import org.apache.camel.support.ExpressionSupport;
/**
- * An <a href="http://www.ognl.org/">OGNL</a> {@link org.apache.camel.Expression}
+ * An OGNL {@link org.apache.camel.Expression}
*/
public class OgnlExpression extends ExpressionSupport {
@@ -49,9 +51,8 @@ public class OgnlExpression extends ExpressionSupport {
@Override
public <T> T evaluate(Exchange exchange, Class<T> tClass) {
- OgnlContext oglContext = new OgnlContext();
- // setup the class resolver from camel
- oglContext.setClassResolver(new CamelClassResolver(exchange.getContext().getClassResolver()));
+ ClassResolver cr = new CamelClassResolver(exchange.getContext().getClassResolver());
+ Map<?, ?> oglContext = Ognl.createDefaultContext(null, cr);
try {
Object value = Ognl.getValue(expression, oglContext, new RootObject(exchange));
return exchange.getContext().getTypeConverter().convertTo(tClass, value);
diff --git a/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlLanguage.java b/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlLanguage.java
index 3a7a855dec2..1309ff678ec 100644
--- a/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlLanguage.java
+++ b/components/camel-ognl/src/main/java/org/apache/camel/language/ognl/OgnlLanguage.java
@@ -18,8 +18,8 @@ package org.apache.camel.language.ognl;
import java.util.Map;
+import ognl.ClassResolver;
import ognl.Ognl;
-import ognl.OgnlContext;
import org.apache.camel.Expression;
import org.apache.camel.ExpressionIllegalSyntaxException;
import org.apache.camel.Predicate;
@@ -49,13 +49,9 @@ public class OgnlLanguage extends TypedLanguageSupport implements ScriptingLangu
script = loadResource(script);
try {
Object compiled = Ognl.parseExpression(script);
- OgnlContext oglContext = new OgnlContext();
- if (bindings != null && !bindings.isEmpty()) {
- oglContext.setValues(bindings);
- }
- // setup the class resolver from camel
- oglContext.setClassResolver(new CamelClassResolver(getCamelContext().getClassResolver()));
- Object value = Ognl.getValue(compiled, oglContext);
+ ClassResolver cr = new CamelClassResolver(getCamelContext().getClassResolver());
+ Map<?, ?> oglContext = Ognl.createDefaultContext(null, cr);
+ Object value = Ognl.getValue(compiled, oglContext, bindings);
return getCamelContext().getTypeConverter().convertTo(resultType, value);
} catch (Exception e) {
throw new ExpressionIllegalSyntaxException(script, e);
diff --git a/parent/pom.xml b/parent/pom.xml
index 9a621e19ca2..cf9633f5d93 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -405,7 +405,7 @@
<okclient-version>3.14.9</okclient-version>
<olingo2-version>2.0.11</olingo2-version>
<olingo4-version>4.8.0</olingo4-version>
- <ognl-version>3.1.12</ognl-version>
+ <ognl-version>3.3.4</ognl-version>
<openjpa-version>3.2.2</openjpa-version>
<openstack4j-version>3.10</openstack4j-version>
<opentelemetry-version>1.21.0</opentelemetry-version>