You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ge...@apache.org on 2008/09/09 08:58:01 UTC

svn commit: r693382 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/converter/CollectionConverter.java main/java/org/apache/camel/processor/Splitter.java test/java/org/apache/camel/converter/CollectionConverterTest.java

Author: gertv
Date: Mon Sep  8 23:58:01 2008
New Revision: 693382

URL: http://svn.apache.org/viewvc?rev=693382&view=rev
Log:
CAMEL-876: splitter() should support batch for large file handling

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CollectionConverter.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/CollectionConverterTest.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CollectionConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CollectionConverter.java?rev=693382&r1=693381&r2=693382&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CollectionConverter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/converter/CollectionConverter.java Mon Sep  8 23:58:01 2008
@@ -23,6 +23,7 @@
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -117,4 +118,19 @@
     public static HashMap toHashMap(Map map) {
         return new HashMap(map);
     }
+
+    /**
+     * Converts an {@link Iterable} into a {@link List} 
+     */
+    @Converter
+    public static List toList(Iterable iterable) {
+        if (iterable instanceof List) {
+            return (List) iterable;
+        }
+        List result = new LinkedList();
+        for (Object value : iterable) {
+            result.add(value);
+        }
+        return result;
+    }
 }

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java?rev=693382&r1=693381&r2=693382&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java Mon Sep  8 23:58:01 2008
@@ -29,6 +29,7 @@
 import org.apache.camel.converter.ObjectConverter;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.util.CollectionHelper;
+import org.apache.camel.util.ObjectHelper;
 
 import static org.apache.camel.util.ObjectHelper.notNull;
 
@@ -75,7 +76,7 @@
         } else {
             result = new ArrayList<ProcessorExchangePair>();
         }
-        Iterator<Object> iter = ObjectConverter.iterator(value);
+        Iterator<Object> iter = ObjectHelper.createIterator(value);
         while (iter.hasNext()) {
             Object part = iter.next();
             Exchange newExchange = exchange.copy();

Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/CollectionConverterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/CollectionConverterTest.java?rev=693382&r1=693381&r2=693382&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/CollectionConverterTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/converter/CollectionConverterTest.java Mon Sep  8 23:58:01 2008
@@ -18,6 +18,7 @@
 
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 
 import junit.framework.TestCase;
@@ -33,6 +34,16 @@
     public void testIteratorToList() throws Exception {
         assertSmurfs(CollectionConverter.toArrayList(SMURFS.iterator()));
     }
+    
+    public void testIterableToList() throws Exception {
+        assertSmurfs(CollectionConverter.toList(new Iterable() {
+            public Iterator iterator() {
+                return SMURFS.iterator();
+            }
+        }));
+        // no conversion should occur for the list itself
+        assertSame(SMURFS, CollectionConverter.toList((Iterable) SMURFS));
+    }
 
     private void assertSmurfs(Collection<String> result) {
         assertEquals(SMURFS.size(), result.size());