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());