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.

Reply via email to