diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java index 6f37927a4870f..0d135bda161b2 100644 --- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java +++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java @@ -1394,6 +1394,22 @@ public String toString() { }; } + /** + * Returns an Expression for the route id + */ + public static Expression routeIdExpression() { + return new ExpressionAdapter() { + public Object evaluate(Exchange exchange) { + return exchange.getFromRouteId(); + } + + @Override + public String toString() { + return "routeId"; + } + }; + } + public static Expression dateExpression(final String command, final String pattern) { return new ExpressionAdapter() { public Object evaluate(Exchange exchange) { diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java index 4149d77b7330e..68da7b87270cd 100644 --- a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java +++ b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java @@ -315,6 +315,8 @@ private Expression createSimpleExpressionDirectly(String expression) { return ExpressionBuilder.threadNameExpression(); } else if (ObjectHelper.equal(expression, "camelId")) { return ExpressionBuilder.camelContextNameExpression(); + } else if (ObjectHelper.equal(expression, "routeId")) { + return ExpressionBuilder.routeIdExpression(); } return null; diff --git a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java index c6aaa61fd32cb..f268980012e4c 100644 --- a/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java +++ b/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java @@ -124,6 +124,9 @@ public void testSimpleExpressions() throws Exception { assertExpression("in.headers.foo", "abc"); assertExpression("header.foo", "abc"); assertExpression("headers.foo", "abc"); + assertExpression("routeId", exchange.getFromRouteId()); + exchange.setFromRouteId("myRouteId"); + assertExpression("routeId", "myRouteId"); } public void testTrimSimpleExpressions() throws Exception {