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 <claus.ib...@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; } }