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/02 11:33:35 UTC

(camel) 03/13: 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 lang2
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 5b34f2bc09279491b45775aadaa8240a1614c947
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Feb 2 10:16:54 2024 +0100

    CAMEL-20378: Languages should be thread-safe and be configured only via properties array, all in the same way.
---
 .../java/org/apache/camel/language/jq/JqLanguage.java  | 18 +++++++-----------
 .../camel/language/xtokenizer/XMLTokenizeLanguage.java | 17 ++++++++++-------
 2 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/components/camel-jq/src/main/java/org/apache/camel/language/jq/JqLanguage.java b/components/camel-jq/src/main/java/org/apache/camel/language/jq/JqLanguage.java
index 151d4dcb242..138fcbeb722 100644
--- a/components/camel-jq/src/main/java/org/apache/camel/language/jq/JqLanguage.java
+++ b/components/camel-jq/src/main/java/org/apache/camel/language/jq/JqLanguage.java
@@ -63,19 +63,13 @@ public class JqLanguage extends SingleInputTypedLanguageSupport implements Stati
     }
 
     @Override
-    public Predicate createPredicate(String expression, Object[] properties) {
-        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression, properties));
+    public Expression createExpression(String expression) {
+        return createExpression(expression, null);
     }
 
     @Override
-    public Expression createExpression(String expression) {
-        JqExpression answer = new JqExpression(Scope.newChildScope(rootScope), expression);
-        answer.setResultType(getResultType());
-        answer.setVariableName(getVariableName());
-        answer.setHeaderName(getHeaderName());
-        answer.setPropertyName(getPropertyName());
-        answer.init(getCamelContext());
-        return answer;
+    public Predicate createPredicate(String expression, Object[] properties) {
+        return ExpressionToPredicateAdapter.toPredicate(createExpression(expression, properties));
     }
 
     @Override
@@ -85,7 +79,9 @@ public class JqLanguage extends SingleInputTypedLanguageSupport implements Stati
         answer.setVariableName(property(String.class, properties, 1, getVariableName()));
         answer.setHeaderName(property(String.class, properties, 2, getHeaderName()));
         answer.setPropertyName(property(String.class, properties, 3, getPropertyName()));
-        answer.init(getCamelContext());
+        if (getCamelContext() != null) {
+            answer.init(getCamelContext());
+        }
         return answer;
     }
 }
diff --git a/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguage.java b/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguage.java
index 9c6a35c53a5..a104cef90b5 100644
--- a/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguage.java
+++ b/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenizeLanguage.java
@@ -75,23 +75,26 @@ public class XMLTokenizeLanguage extends SingleInputLanguageSupport {
         String propertyName = property(String.class, properties, 4, null);
         String variableName = property(String.class, properties, 5, null);
 
-        XMLTokenExpressionIterator tokenizer = new XMLTokenExpressionIterator(expression, mode);
+        XMLTokenExpressionIterator answer = new XMLTokenExpressionIterator(expression, mode);
         if (headerName != null) {
-            tokenizer.setHeaderName(headerName);
+            answer.setHeaderName(headerName);
         }
         if (group != null) {
-            tokenizer.setGroup(group);
+            answer.setGroup(group);
         }
         if (ns != null) {
-            tokenizer.setNamespaces(ns.getNamespaces());
+            answer.setNamespaces(ns.getNamespaces());
         }
         if (propertyName != null) {
-            tokenizer.setPropertyName(propertyName);
+            answer.setPropertyName(propertyName);
         }
         if (variableName != null) {
-            tokenizer.setVariableName(variableName);
+            answer.setVariableName(variableName);
         }
-        return tokenizer;
+        if (getCamelContext() != null) {
+            answer.init(getCamelContext());
+        }
+        return answer;
     }
 
 }