Splitter in streaming mode and return an iterator from your bean. The
the splitter runs on th fly


On Thursday, June 9, 2011, Joe White <[email protected]> wrote:
> In that setup wouldn't "MyFileParser" have to finish parsing before the
> split occurred?
>
> I'd like to be able to multicast the objects out to queues as they are
> generated before the whole file is parsed in a spring configuration. In
> the example below Recon835Parser has code to publish to the dispatch
> queue.
>
> Ideally I'd like to skip the remitDispatch queue since all it is doing
> is routing, but it I would prefer to be in spring not in Java. I could
> write the multicast into the parser which isn't a big deal but isn't
> ideal as my parser then has to be JMS aware.
>
> Here is what I have now with the intermediate queue (the second route is
> the intermediary):
>
>         <camel:route trace="false">
>             <camel:from uri="file:/myInputFileLocation"  />
>             <camel:process ref="Recon835Parser" />
>         </camel:route>
>
>
>         <!-- Remit dispatch -->
>         <camel:route trace="false">
>             <camel:from uri="jms:queue:remitDispatch" />
>                 <multicast stopOnException="true">
>                 <to uri=" jms:queue:remitPayerMix "/>
>                 <to uri=" jms:queue:anotherQueue "/>
>                 <to uri=" jms:queue:thirdQueue "/>
>                     ...
>             </multicast>
>         </camel:route>
>
>         <camel:route>
>             <camel:from uri="jms:queue:remitPayerMix"  />
>                 <camel:process ref="DalToRemitProcessor" />
>                 <camel:process ref="PayerStatisticsProcessor" />
>
>         </camel:route>
>
>
> Thanks for your help,
> Joe
>
> -----Original Message-----
> From: boday [mailto:[email protected]]
> Sent: Thursday, June 09, 2011 1:11 PM
> To: [email protected]
> Subject: Re: Complete exchange from file parsing before parsing complete
>
> just have your parser output a List and use a splitter to queue them
> separately...I think something like this is what you are looking for...
>
> from("file:inbox")
>   .bean(MyFileParser)
>   .split()
>   .to("activemq:queue:myQueue");
>
> then, you can do multi-threaded processing from that queue...
>
> from("activemq:queue:myQueue?maxConcurrentConsumers=10")
>   .bean(MyProcessor)...
>
>
> Joe White-3 wrote:
>>
>> I have a route setup with a file endpoint that processes large files
> and
>> generates thousands of individual objects from those files. Right now
> i
>> have a route with the parser first and then downstream processing on
> the
>> batch of individual objects.
>>
>>
>>
>> I would like to be able to multicast the individual objects as they
> are
>> generated to a set of queues configured in Spring. Is there a Camel
> way
>> to do this without writing Java to have my parser publish each object
> to
>> a queue and then multicasting from that intermediate queue? Seems like
>> an extra step.
>>
>>
>>
>> Essentially I want my parser to generate a new exchange for every
> object
>> generated from the file rather than one exchange for the whole file.
>>
>>
>>
>> Thanks
>>
>> Joe
>>
>
>
> -----
> Ben O'Day
> IT Consultant -http://consulting-notes.com
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Complete-exchange-from-file-parsing-be
> fore-parsing-complete-tp4473282p4473919.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

-- 
Claus Ibsen
-----------------
FuseSource
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to