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 2023/06/27 18:43:14 UTC
[camel] branch main updated: [CAMEL-19479] Add `threadId` to simple language (#10475)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new b474dcf1946 [CAMEL-19479] Add `threadId` to simple language (#10475)
b474dcf1946 is described below
commit b474dcf19469113647c3d126e31701d2c394df1e
Author: Adriano Machado <60...@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 <ad...@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 deac6f39f7b..570e50e97a3 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
@@ -245,6 +245,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 82760ae0e2d..c24d453eec4 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
@@ -186,6 +186,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 983f96cfe76..a37a7fac7d4 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
@@ -216,6 +216,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 7dbd1b891ff..4f2f27d8552 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
@@ -439,6 +439,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")) {
@@ -846,6 +848,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 40d4fd8a422..ed298ab77a3 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
@@ -244,6 +244,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();
@@ -337,7 +344,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 cb12a4c7285..9a6d7fee913 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
@@ -992,6 +992,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 9ce3108cc27..6b78c8978e0 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>