CAMEL-7478 Fixed the simple language OGNL expression issue
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fe7df7db Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fe7df7db Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fe7df7db Branch: refs/heads/camel-2.12.x Commit: fe7df7db7af296168b938ecea827fd0df8c7f042 Parents: 6f39753 Author: Willem Jiang <willem.ji...@gmail.com> Authored: Thu Jun 5 23:33:25 2014 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Fri Jun 6 09:14:50 2014 +0800 ---------------------------------------------------------------------- .../camel/language/bean/BeanExpression.java | 2 ++ .../camel/language/simple/SimpleTest.java | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fe7df7db/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java b/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java index 3cbc2fa..1092f6e 100644 --- a/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java +++ b/camel-core/src/main/java/org/apache/camel/language/bean/BeanExpression.java @@ -300,6 +300,8 @@ public class BeanExpression implements Expression, Predicate { // prepare for next bean to invoke beanToCall = result; + // we need to set the result to the exchange for further processing + resultExchange.getIn().setBody(result); } } http://git-wip-us.apache.org/repos/asf/camel/blob/fe7df7db/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 4e927b9..7713fb9 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 @@ -143,6 +143,20 @@ public class SimpleTest extends LanguageTestSupport { assertIsInstanceOf(Integer.class, val); assertEquals(123, val); } + + public void testBodyExpressionWithArray() throws Exception { + exchange.getIn().setBody(new MyClass()); + Expression exp = SimpleLanguage.simple("body.getMyArray"); + assertNotNull(exp); + Object val = exp.evaluate(exchange, Object.class); + assertIsInstanceOf(Object[].class, val); + + exp = SimpleLanguage.simple("body.getMyArray.length"); + assertNotNull(exp); + val = exp.evaluate(exchange, Object.class); + assertIsInstanceOf(Integer.class, val); + assertEquals(3, val); + } public void testSimpleExpressions() throws Exception { assertExpression("exchangeId", exchange.getExchangeId()); @@ -1424,4 +1438,10 @@ public class SimpleTest extends LanguageTestSupport { return name; } } + + public static class MyClass { + public Object[] getMyArray() { + return new Object[]{"Hallo", "World", "!"}; + } + } }