From 9140091e4fb99dedd5a0cc09134dd28af52ee342 Mon Sep 17 00:00:00 2001 From: Matthew Aynalem Date: Tue, 5 Mar 2013 10:57:49 -0800 Subject: [PATCH] CAMEL-5960 Add routeId as function to simple language --- .../apache/camel/builder/ExpressionBuilder.java | 16 ++++++++++++++++ .../simple/ast/SimpleFunctionExpression.java | 2 ++ .../apache/camel/language/simple/SimpleTest.java | 3 +++ 3 files changed, 21 insertions(+) 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 {