java.util.Scanner is good for splitting big files. In fact I think that is what the .streaming() is for.
But returning an iterator should be fine as well. Can you show the error? Maybe there is a bug we can fix. On Thu, Apr 9, 2009 at 3:52 PM, javadevel <javadeve...@yahoo.com> wrote: > > Clause, > > This is what my route looks like > > from("file:C:/work/esb/filetestpoller/")//large file > exceeding 800M > .convertBodyTo(InputStream.class) > .splitter(customsplitter)//custom splitter(injected by spring) > that > returns a java.util.Collection > .process(requestprocessor) > .to("jms:responseoutbox"); > > I would prefer the custom splitter return java.util.Iterator instead of a > Collection, the reason why I am returning a collection is because if I > return an iterator I get an exception. The reason I am using a custom > splitter is to return a data structure ( a collection) that gets the data > from a persistent store (much like the claim check pattern) instead of > keeping the data in memory which will crash our system. Please let me know > if there is a better way of dealing with this issue. > > > > Claus Ibsen-2 wrote: >> >> Hi >> >> Camel will convert whatever your expression returns to something that >> it iterates. >> For non streams it will walk the list before they are processed, so it >> will know the total size. >> >> If you have a very large document you can use streaming to split it >> on-the-fly. >> However then the total size is not known. >> >> >> >> On Wed, Apr 8, 2009 at 10:50 PM, javadevel <javadeve...@yahoo.com> wrote: >>> >>> I need to use a splitter expression to split a very large document with >>> rather complex splitting requirement. Based on the documentation provided >>> on >>> the Apache Camel Splitter, I can write a Bean or implement the Expression >>> interface and return java.util.Collection or java.util.Iterator. >>> However, >>> it only works with collections because the iterator interface does not >>> provide a getSize method the Camel router can use to set the splittersize >>> header. If my observation is correct, please modify the documentation to >>> say >>> it must only return a java.util.Collection or modify the code so that it >>> supports iterator too. If it supports iterator it will be extremely >>> useful >>> because we may not always know the splittersize especially when the data >>> is >>> huge and passed as an inputstream. >>> -- >>> View this message in context: >>> http://www.nabble.com/splitter-expression-tp22959250p22959250.html >>> Sent from the Camel - Users (activemq) mailing list archive at >>> Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> Apache Camel Reference Card: >> http://refcardz.dzone.com/refcardz/enterprise-integration >> >> > > -- > View this message in context: > http://www.nabble.com/splitter-expression-tp22959250p22971404.html > Sent from the Camel - Users (activemq) mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus Apache Camel Reference Card: http://refcardz.dzone.com/refcardz/enterprise-integration