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 2014/03/18 09:39:22 UTC
[4/6] git commit: CAMEL-7303: Simple language accesing header with
key quoted should unqoute, as headerAs does.
CAMEL-7303: Simple language accesing header with key quoted should unqoute, as headerAs does.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a0cde9b0
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a0cde9b0
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a0cde9b0
Branch: refs/heads/camel-2.13.x
Commit: a0cde9b086a7ea6e87f8829c38503a67bc239ddd
Parents: a10ab78
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Mar 18 09:25:10 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Mar 18 09:41:43 2014 +0100
----------------------------------------------------------------------
.../simple/ast/SimpleFunctionExpression.java | 10 ++++++----
.../apache/camel/language/simple/SimpleTest.java | 18 ++++++++++++++++++
2 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/a0cde9b0/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
----------------------------------------------------------------------
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 985857a..d02f050 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
@@ -268,19 +268,21 @@ public class SimpleFunctionExpression extends LiteralExpression {
if (remainder.startsWith("[") && remainder.endsWith("]")) {
remainder = remainder.substring(1, remainder.length() - 1);
}
+ // remove quotes from key
+ String key = StringHelper.removeLeadingAndEndingQuotes(remainder);
// validate syntax
- boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(remainder);
+ boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(key);
if (invalid) {
throw new SimpleParserException("Valid syntax: ${header.name[key]} was: " + function, token.getIndex());
}
- if (OgnlHelper.isValidOgnlExpression(remainder)) {
+ if (OgnlHelper.isValidOgnlExpression(key)) {
// ognl based header
- return ExpressionBuilder.headersOgnlExpression(remainder);
+ return ExpressionBuilder.headersOgnlExpression(key);
} else {
// regular header
- return ExpressionBuilder.headerExpression(remainder);
+ return ExpressionBuilder.headerExpression(key);
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/a0cde9b0/camel-core/src/test/java/org/apache/camel/language/simple/SimpleTest.java
----------------------------------------------------------------------
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 407f755..c9e22a3 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
@@ -524,6 +524,24 @@ public class SimpleTest extends LanguageTestSupport {
assertExpression("${in.headers}", headers);
}
+ public void testHeaderKeyWithSpace() throws Exception {
+ Map<String, Object> headers = exchange.getIn().getHeaders();
+ headers.put("some key", "Some Value");
+ assertEquals(3, headers.size());
+
+ assertExpression("${headerAs(foo,String)}", "abc");
+ assertExpression("${headerAs(some key,String)}", "Some Value");
+ assertExpression("${headerAs('some key',String)}", "Some Value");
+
+ assertExpression("${header[foo]}", "abc");
+ assertExpression("${header[some key]}", "Some Value");
+ assertExpression("${header['some key']}", "Some Value");
+
+ assertExpression("${headers[foo]}", "abc");
+ assertExpression("${headers[some key]}", "Some Value");
+ assertExpression("${headers['some key']}", "Some Value");
+ }
+
public void testHeaderAs() throws Exception {
assertExpression("${headerAs(foo,String)}", "abc");