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 2012/03/31 14:51:36 UTC
svn commit: r1307792 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
test/java/org/apache/camel/language/simple/SimpleTest.java
Author: davsclaus
Date: Sat Mar 31 12:51:36 2012
New Revision: 1307792
URL: http://svn.apache.org/viewvc?rev=1307792&view=rev
Log:
CAMEL-5134: Simple language can now refer to headers using square bracket notation.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java?rev=1307792&r1=1307791&r2=1307792&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java Sat Mar 31 12:51:36 2012
@@ -142,7 +142,13 @@ public class SimpleFunctionExpression ex
}
if (remainder != null) {
// remove leading character (dot or ?)
- remainder = remainder.substring(1);
+ if (remainder.startsWith(".") || remainder.startsWith("?")) {
+ remainder = remainder.substring(1);
+ }
+ // remove starting and ending brackets
+ if (remainder.startsWith("[") && remainder.endsWith("]")) {
+ remainder = remainder.substring(1, remainder.length() - 1);
+ }
// validate syntax
boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(remainder);
@@ -172,7 +178,13 @@ public class SimpleFunctionExpression ex
remainder = ifStartsWithReturnRemainder("property", function);
if (remainder != null) {
// remove leading character (dot or ?)
- remainder = remainder.substring(1);
+ if (remainder.startsWith(".") || remainder.startsWith("?")) {
+ remainder = remainder.substring(1);
+ }
+ // remove starting and ending brackets
+ if (remainder.startsWith("[") && remainder.endsWith("]")) {
+ remainder = remainder.substring(1, remainder.length() - 1);
+ }
// validate syntax
boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(remainder);
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java?rev=1307792&r1=1307791&r2=1307792&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java Sat Mar 31 12:51:36 2012
@@ -432,6 +432,12 @@ public class SimpleTest extends Language
assertExpression("${in.headers.foo}", "abc");
}
+ public void testHeadersWithBracket() throws Exception {
+ assertExpression("headers[foo]", "abc");
+ assertExpression("${headers[foo]}", "abc");
+ assertExpression("${in.headers[foo]}", "abc");
+ }
+
public void testIsInstanceOfEmptyBody() throws Exception {
// set an empty body
exchange.getIn().setBody(null);