You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/06/06 03:07:21 UTC

[3/4] git commit: CAMEL-7478 Fixed the simple language OGNL expression issue

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/a6d8468b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a6d8468b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a6d8468b

Branch: refs/heads/master
Commit: a6d8468b5345bcc8ab151160a0f92a4b22ece0f1
Parents: 57b1cd7
Author: Willem Jiang <wi...@gmail.com>
Authored: Thu Jun 5 23:33:25 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Fri Jun 6 08:55:06 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/a6d8468b/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/a6d8468b/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 62b6172..d12efed 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());
@@ -1430,4 +1444,10 @@ public class SimpleTest extends LanguageTestSupport {
             return name;
         }
     }
+    
+    public static class MyClass {
+        public Object[] getMyArray() {
+            return new Object[]{"Hallo", "World", "!"};
+        }
+    }
 }