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;
}
}