This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch lang4
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 82214b545c54444cdf051f42b8cf42e0eda20ee5
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Feb 3 11:59:52 2024 +0100

    CAMEL-20378: Languages should be thread-safe and be configured only via 
properties array, all in the same way.
---
 .../jq/JqExpressionFromHeaderOrPropertyTest.java   | 92 ----------------------
 .../language/jq/JqExpressionFromHeaderTest.java    | 21 +----
 .../language/jq/JqExpressionFromPropertyTest.java  |  6 +-
 .../camel/builder/ExpressionClauseSupport.java     | 14 ++--
 .../camel/support/builder/ExpressionBuilder.java   |  2 +-
 5 files changed, 12 insertions(+), 123 deletions(-)

diff --git 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderOrPropertyTest.java
 
b/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderOrPropertyTest.java
deleted file mode 100644
index dc6fdfcc092..00000000000
--- 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderOrPropertyTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.language.jq;
-
-import com.fasterxml.jackson.databind.node.TextNode;
-import org.apache.camel.NoSuchHeaderOrPropertyException;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.junit.jupiter.api.Test;
-
-public class JqExpressionFromHeaderOrPropertyTest extends JqTestSupport {
-    @Override
-    protected RouteBuilder createRouteBuilder() {
-        return new RouteBuilder() {
-            @Override
-            public void configure() {
-                from("direct:start")
-                        .doTry()
-                        .transform().jq(".foo", "Content", "ContentProp")
-                        .to("mock:result")
-                        .doCatch(NoSuchHeaderOrPropertyException.class)
-                        .to("mock:fail");
-
-            }
-        };
-    }
-
-    @Test
-    public void testExpressionFromProperty() throws Exception {
-        getMockEndpoint("mock:result")
-                .expectedBodiesReceived(new TextNode("bar"));
-        getMockEndpoint("mock:fail")
-                .expectedMessageCount(0);
-
-        fluentTemplate.to("direct:start")
-                .withProcessor(e -> {
-                    e.getMessage().setHeader("Invalid", node("foo", "baz"));
-                    e.setProperty("ContentProp", node("foo", "bar"));
-                })
-                .send();
-
-        MockEndpoint.assertIsSatisfied(context);
-    }
-
-    @Test
-    public void testExpressionFromHeader() throws Exception {
-        getMockEndpoint("mock:result")
-                .expectedBodiesReceived(new TextNode("baz"));
-        getMockEndpoint("mock:fail")
-                .expectedMessageCount(0);
-
-        fluentTemplate.to("direct:start")
-                .withProcessor(e -> {
-                    e.getMessage().setHeader("Content", node("foo", "baz"));
-                    e.setProperty("ContentProp", node("foo", "bar"));
-                })
-                .send();
-
-        MockEndpoint.assertIsSatisfied(context);
-    }
-
-    @Test
-    public void testExpressionFail() throws Exception {
-        getMockEndpoint("mock:result")
-                .expectedMessageCount(0);
-        getMockEndpoint("mock:fail")
-                .expectedMessageCount(1);
-
-        fluentTemplate.to("direct:start")
-                .withProcessor(e -> {
-                    e.getMessage().setHeader("Invalid", node("foo", "baz"));
-                    e.setProperty("Invalid", node("foo", "bar"));
-                })
-                .send();
-
-        MockEndpoint.assertIsSatisfied(context);
-    }
-}
diff --git 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderTest.java
 
b/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderTest.java
index d13ec9bae97..cd302de09fa 100644
--- 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderTest.java
+++ 
b/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromHeaderTest.java
@@ -17,7 +17,7 @@
 package org.apache.camel.language.jq;
 
 import com.fasterxml.jackson.databind.node.TextNode;
-import org.apache.camel.NoSuchHeaderOrPropertyException;
+import org.apache.camel.NoSuchHeaderException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -32,7 +32,7 @@ public class JqExpressionFromHeaderTest extends JqTestSupport 
{
                         .doTry()
                         .transform().jq(".foo", "Content")
                         .to("mock:result")
-                        .doCatch(NoSuchHeaderOrPropertyException.class)
+                        .doCatch(NoSuchHeaderException.class)
                         .to("mock:fail");
 
             }
@@ -55,23 +55,6 @@ public class JqExpressionFromHeaderTest extends 
JqTestSupport {
         MockEndpoint.assertIsSatisfied(context);
     }
 
-    @Test
-    public void testExpressionFromHeaderPriority() throws Exception {
-        getMockEndpoint("mock:result")
-                .expectedBodiesReceived(new TextNode("bar"));
-        getMockEndpoint("mock:fail")
-                .expectedMessageCount(0);
-
-        fluentTemplate.to("direct:start")
-                .withProcessor(e -> {
-                    e.getMessage().setHeader("Content", node("foo", "bar"));
-                    e.setProperty("Content", node("foo", "baz"));
-                })
-                .send();
-
-        MockEndpoint.assertIsSatisfied(context);
-    }
-
     @Test
     public void testExpressionFromHeaderFail() throws Exception {
         getMockEndpoint("mock:result")
diff --git 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromPropertyTest.java
 
b/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromPropertyTest.java
index 51a9fd6b70f..56469318a3a 100644
--- 
a/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromPropertyTest.java
+++ 
b/components/camel-jq/src/test/java/org/apache/camel/language/jq/JqExpressionFromPropertyTest.java
@@ -18,7 +18,7 @@ package org.apache.camel.language.jq;
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.fasterxml.jackson.databind.node.TextNode;
-import org.apache.camel.NoSuchHeaderOrPropertyException;
+import org.apache.camel.NoSuchPropertyException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.junit.jupiter.api.Test;
@@ -31,9 +31,9 @@ public class JqExpressionFromPropertyTest extends 
JqTestSupport {
             public void configure() {
                 from("direct:start")
                         .doTry()
-                        .transform().jq(".foo", "Content")
+                        .transform().jq(".foo", Object.class, null, "Content")
                         .to("mock:result")
-                        .doCatch(NoSuchHeaderOrPropertyException.class)
+                        .doCatch(NoSuchPropertyException.class)
                         .to("mock:fail");
 
             }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
index 1054eec3ed6..c6be8806cf6 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java
@@ -459,13 +459,12 @@ public class ExpressionClauseSupport<T> implements 
ExpressionFactoryAware, Predi
      * Evaluates <a href="http://camel.apache.org/jq.html";>JQ expression</a>
      *
      * @param  text                 the expression to be evaluated
-     * @param  headerOrPropertyName the name of the header or the property to 
apply the expression to
+     * @param  headerName           the name of the header to apply the 
expression to
      * @return                      the builder to continue processing the DSL
      */
-    public T jq(String text, String headerOrPropertyName) {
+    public T jq(String text, String headerName) {
         JqExpression exp = new JqExpression(text);
-        exp.setHeaderName(headerOrPropertyName);
-        exp.setPropertyName(headerOrPropertyName);
+        exp.setHeaderName(headerName);
         return expression(exp);
     }
 
@@ -489,14 +488,13 @@ public class ExpressionClauseSupport<T> implements 
ExpressionFactoryAware, Predi
      *
      * @param  text                 the expression to be evaluated
      * @param  resultType           the return type expected by the expression
-     * @param  headerOrPropertyName the name of the header or the property to 
apply the expression to
+     * @param  headerName           the name of the header or the property to 
apply the expression to
      * @return                      the builder to continue processing the DSL
      */
-    public T jq(String text, Class<?> resultType, String headerOrPropertyName) 
{
+    public T jq(String text, Class<?> resultType, String headerName) {
         JqExpression exp = new JqExpression(text);
         exp.setResultType(resultType);
-        exp.setHeaderName(headerOrPropertyName);
-        exp.setPropertyName(headerOrPropertyName);
+        exp.setHeaderName(headerName);
         return expression(exp);
     }
 
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
index 33b0a141879..47cef3ba81c 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/builder/ExpressionBuilder.java
@@ -90,7 +90,7 @@ public class ExpressionBuilder {
      * @return            an expression object which will return the header 
value
      */
     public static Expression headerExpression(final String headerName, boolean 
mandatory) {
-        return headerExpression(simpleExpression(headerName));
+        return headerExpression(simpleExpression(headerName), mandatory);
     }
 
     /**

Reply via email to