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

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


The following commit(s) were added to refs/heads/camel-3.x by this push:
     new 0d51aec9266 [CAMEL-19479] Add `threadId` to simple language (#10475)
0d51aec9266 is described below

commit 0d51aec9266861f6cfa5c838add22f32dc1bff7d
Author: Adriano Machado <60320+ammach...@users.noreply.github.com>
AuthorDate: Tue Jun 27 14:43:08 2023 -0400

    [CAMEL-19479] Add `threadId` to simple language (#10475)
    
    * [CAMEL-19479] Add `threadId` to simple language
    
    * [CAMEL-19479] Adding documentation
    
    * [CAMEL-19479] Code formatting
    
    ---------
    
    Co-authored-by: Adriano Machado <admac...@redhat.com>
---
 .../language/csimple/joor/OriginalSimpleTest.java      |  7 +++++++
 .../docs/modules/languages/pages/simple-language.adoc  |  3 +++
 .../apache/camel/language/csimple/CSimpleHelper.java   |  4 ++++
 .../language/simple/ast/SimpleFunctionExpression.java  |  4 ++++
 .../org/apache/camel/language/simple/SimpleTest.java   |  9 ++++++++-
 .../camel/support/builder/ExpressionBuilder.java       | 18 ++++++++++++++++++
 tooling/maven/camel-package-maven-plugin/pom.xml       |  2 +-
 7 files changed, 45 insertions(+), 2 deletions(-)

diff --git 
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
 
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
index 501b370ef61..f6f2ce31917 100644
--- 
a/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
+++ 
b/components/camel-csimple-joor/src/test/java/org/apache/camel/language/csimple/joor/OriginalSimpleTest.java
@@ -239,6 +239,13 @@ public class OriginalSimpleTest extends 
LanguageTestSupport {
         assertExpression("\n${in.body}\r".trim(), "<hello 
id='m123'>world!</hello>");
     }
 
+    @Test
+    public void testSimpleThreadId() {
+        long id = Thread.currentThread().getId();
+        assertExpression("${threadId}", id);
+        assertExpression("The id is ${threadId}", "The id is " + id);
+    }
+
     @Test
     public void testSimpleThreadName() {
         String name = Thread.currentThread().getName();
diff --git 
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
 
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
index 4fa63aaded8..ddc313a6a88 100644
--- 
a/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
+++ 
b/core/camel-core-languages/src/main/docs/modules/languages/pages/simple-language.adoc
@@ -183,6 +183,9 @@ Exchange is being routed.
 |stepId |String |Returns the id of the current step the
 Exchange is being routed.
 
+|threadId |String |Returns the id of the current thread. Can be used for
+logging purpose.
+
 |threadName |String |Returns the name of the current thread. Can be used for
 logging purpose.
 
diff --git 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
index 1954cc00d75..6113b27c2ab 100644
--- 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
+++ 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/csimple/CSimpleHelper.java
@@ -224,6 +224,10 @@ public final class CSimpleHelper {
         return Thread.currentThread().getName();
     }
 
+    public static long threadId() {
+        return Thread.currentThread().getId();
+    }
+
     public static String hostName() {
         return InetAddressUtil.getLocalHostNameSafe();
     }
diff --git 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index cc5052b517f..3046380f6e0 100644
--- 
a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++ 
b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -445,6 +445,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
             return ExpressionBuilder.exchangeExceptionMessageExpression();
         } else if (ObjectHelper.equal(expression, "exception.stacktrace")) {
             return ExpressionBuilder.exchangeExceptionStackTraceExpression();
+        } else if (ObjectHelper.equal(expression, "threadId")) {
+            return ExpressionBuilder.threadIdExpression();
         } else if (ObjectHelper.equal(expression, "threadName")) {
             return ExpressionBuilder.threadNameExpression();
         } else if (ObjectHelper.equal(expression, "hostname")) {
@@ -826,6 +828,8 @@ public class SimpleFunctionExpression extends 
LiteralExpression {
             return "exceptionMessage(exchange)";
         } else if (ObjectHelper.equal(expression, "exception.stacktrace")) {
             return "exceptionStacktrace(exchange)";
+        } else if (ObjectHelper.equal(expression, "threadId")) {
+            return "threadId()";
         } else if (ObjectHelper.equal(expression, "threadName")) {
             return "threadName()";
         } else if (ObjectHelper.equal(expression, "hostname")) {
diff --git 
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
 
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
index 9807bb4aa7f..f1acdd03d8c 100644
--- 
a/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
+++ 
b/core/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
@@ -246,6 +246,13 @@ public class SimpleTest extends LanguageTestSupport {
         assertExpression("\n${in.body}\r".trim(), "<hello 
id='m123'>world!</hello>");
     }
 
+    @Test
+    public void testSimpleThreadId() throws Exception {
+        long id = Thread.currentThread().getId();
+        assertExpression("${threadId}", id);
+        assertExpression("The id is ${threadId}", "The id is " + id);
+    }
+
     @Test
     public void testSimpleThreadName() throws Exception {
         String name = Thread.currentThread().getName();
@@ -339,7 +346,7 @@ public class SimpleTest extends LanguageTestSupport {
     @Test
     public void testOGNLBodyEmptyList() throws Exception {
         Map<String, List<String>> map = new HashMap<>();
-        map.put("list", new ArrayList<String>());
+        map.put("list", new ArrayList<>());
 
         exchange.getIn().setBody(map);
 
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 4fcad2a08c5..7b2d09271ed 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
@@ -1016,6 +1016,24 @@ public class ExpressionBuilder {
         return exp;
     }
 
+    /**
+     * Returns the expression for the current thread id
+     */
+
+    public static Expression threadIdExpression() {
+        return new ExpressionAdapter() {
+            @Override
+            public Object evaluate(Exchange exchange) {
+                return Thread.currentThread().getId();
+            }
+
+            @Override
+            public String toString() {
+                return "threadId";
+            }
+        };
+    }
+
     /**
      * Returns the expression for the current thread name
      */
diff --git a/tooling/maven/camel-package-maven-plugin/pom.xml 
b/tooling/maven/camel-package-maven-plugin/pom.xml
index 67e1fc37b59..040f4a815c4 100644
--- a/tooling/maven/camel-package-maven-plugin/pom.xml
+++ b/tooling/maven/camel-package-maven-plugin/pom.xml
@@ -80,7 +80,7 @@
             <groupId>org.apache.maven.plugin-tools</groupId>
             <artifactId>maven-plugin-annotations</artifactId>
         </dependency>
-       <dependency>
+        <dependency>
             <groupId>org.apache.maven.shared</groupId>
             <artifactId>maven-shared-utils</artifactId>
             <version>${maven-shared-utils-plugin-version}</version>

Reply via email to