You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by am...@apache.org on 2010/12/09 03:03:35 UTC

svn commit: r1043819 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/util/ObjectHelper.java test/java/org/apache/camel/processor/SplitterTest.java test/java/org/apache/camel/util/ObjectHelperTest.java

Author: ammulder
Date: Thu Dec  9 02:03:35 2010
New Revision: 1043819

URL: http://svn.apache.org/viewvc?rev=1043819&view=rev
Log:
Make splitter support Iterable (CAMEL-3415)

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=1043819&r1=1043818&r2=1043819&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Thu Dec  9 02:03:35 2010
@@ -477,6 +477,8 @@ public final class ObjectHelper {
             return Collections.emptyList().iterator();
         } else if (value instanceof Iterator) {
             return (Iterator)value;
+        } else if (value instanceof Iterable) {
+            return ((Iterable)value).iterator();
         } else if (value instanceof Collection) {
             Collection collection = (Collection)value;
             return collection.iterator();

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java?rev=1043819&r1=1043818&r2=1043819&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SplitterTest.java Thu Dec  9 02:03:35 2010
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.processor;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
@@ -203,6 +206,20 @@ public class SplitterTest extends Contex
         assertMockEndpointsSatisfied();
     }
 
+    public void testSplitterWithIterable() throws Exception {
+        MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
+        resultEndpoint.expectedMessageCount(4);
+        resultEndpoint.expectedBodiesReceived("A","B","C","D");
+        final List<String> data = Arrays.asList("A","B","C","D");
+        Iterable itb = new Iterable() {
+            public Iterator iterator() {
+                return data.iterator();
+            }
+        };
+        sendBody("direct:simple", itb);
+        resultEndpoint.assertIsSatisfied();
+    }
+
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
@@ -229,6 +246,8 @@ public class SplitterTest extends Contex
                         
                         }                    
                     }).to("mock:result");
+
+                from("direct:simple").split(body()).to("mock:result");
             }
         };
     }

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java?rev=1043819&r1=1043818&r2=1043819&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/ObjectHelperTest.java Thu Dec  9 02:03:35 2010
@@ -269,7 +269,24 @@ public class ObjectHelperTest extends Te
         Iterator<Object> it = ObjectHelper.createIterator(msg);
         assertFalse(it.hasNext());
     }
-    
+
+    public void testIterable() {
+        final List<String> data = new ArrayList<String>();
+        data.add("A");
+        data.add("B");
+        data.add("C");
+        Iterable<String> itb = new Iterable<String>() {
+            public Iterator<String> iterator() {
+                return data.iterator();
+            }
+        };
+        Iterator<String> it = CastUtils.cast(ObjectHelper.createIterator(itb));
+        assertEquals("A", it.next());
+        assertEquals("B", it.next());
+        assertEquals("C", it.next());
+        assertFalse(it.hasNext());
+    }
+
     public void testNormalizeClassName() {
         assertEquals("Should get the right class name", "my.package-info", ObjectHelper.normalizeClassName("my.package-info"));
         assertEquals("Should get the right class name", "Integer[]", ObjectHelper.normalizeClassName("Integer[] \r"));