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>