from("jms:queue.name").aggregate(new AggregationStrategy() { public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { // code here } }).completionSize(2).to("exec://FILEPATH?args=");
As I look/ask around more I think this is closer to what I want. Someone said to use a GroupedExchange or something as well where I correlate on clientID and fileName. I'm not really sure how that works though....Am I on the right track? On Fri, Jun 21, 2013 at 1:16 PM, Sean Beck <seanmckayb...@gmail.com> wrote: > Everything installed fine for camelone but I ran mvn camel:run and it > seems to have gotten stuck after first [INFO] > > > On Fri, Jun 21, 2013 at 12:27 PM, Sean Beck <seanmckayb...@gmail.com>wrote: > >> Thanks for the response! I'll look now and let you know >> >> >> On Fri, Jun 21, 2013 at 12:24 PM, Hadrian Zbarcea <hzbar...@gmail.com>wrote: >> >>> Sean, >>> >>> I presented at CamelOne last week on how to handle exactly this kind of >>> scenarios with Camel and claimcheck. The code and slides are available on >>> github [1]. Please take a look and let me know if you have any questions. >>> >>> Cheers, >>> Hadrian >>> >>> [1] >>> https://github.com/hzbarcea/**camelone<https://github.com/hzbarcea/camelone> >>> >>> >>> >>> On 06/21/2013 01:21 PM, Sean Beck wrote: >>> >>>> Could I create my own AggregationStrategy class that stores all the >>>> messages and handles them appropriately? Or is there an easier way? >>>> >>>> >>>> On Fri, Jun 21, 2013 at 9:19 AM, Sean Beck <seanmckayb...@gmail.com> >>>> wrote: >>>> >>>> Thanks for the response. >>>>> >>>>> The separate process is a program that puts two files together. >>>>> Multiple >>>>> clients with their own SSIDs send over files, and there are 2 files >>>>> that go >>>>> together for each set of data operated on by the client. As soon as the >>>>> files are received on my server the server sends a message containing >>>>> the >>>>> file path, file name, SSID, and the "type" of the file. I want to use >>>>> Camel >>>>> to detect when I get two messages for the same file name but each of a >>>>> different type (there are only two types) from the same SSID, then >>>>> once I >>>>> get both messages start up the program that combines the two files. >>>>> >>>>> So I know I want an aggregator that starts the process based off a >>>>> completion size of 2, but I don't know how everything works to really >>>>> break >>>>> the problem down. 1) I need to figure out how I would execute the >>>>> program >>>>> (which it looks like would be exec) 2) Have one aggregator that can put >>>>> messages together from different SSIDs. >>>>> >>>>> >>>>> On Fri, Jun 21, 2013 at 12:27 AM, Claus Ibsen <claus.ib...@gmail.com >>>>> >wrote: >>>>> >>>>> Hi >>>>>> >>>>>> Can you be more specific with what you mean with separate process? >>>>>> >>>>>> There is an exec to run an executable >>>>>> http://camel.apache.org/exec >>>>>> >>>>>> >>>>>> On Fri, Jun 21, 2013 at 1:19 AM, Sean Beck <seanmckayb...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> So I have figured out how to gather messages based on my criteria. A >>>>>>> process needs to be started as soon as two messages have been >>>>>>> received. >>>>>>> Currently I have: >>>>>>> >>>>>>> from("jms:newFileQueue").**aggregate(new >>>>>>> HeaderExpression("**CamelFileName")).**completionSize(2).to("** >>>>>>> triggerservice >>>>>>> >>>>>> to >>>>>> >>>>>>> process and merge files") >>>>>>> >>>>>>> The portion I am unsure on is the very last call to to(). How would I >>>>>>> >>>>>> start >>>>>> >>>>>>> up a separate process once I get the necessary completionSize? >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Claus Ibsen >>>>>> ----------------- >>>>>> www.camelone.org: The open source integration conference. >>>>>> >>>>>> Red Hat, Inc. >>>>>> FuseSource is now part of Red Hat >>>>>> Email: cib...@redhat.com >>>>>> Web: http://fusesource.com >>>>>> Twitter: davsclaus >>>>>> Blog: http://davsclaus.com >>>>>> Author of Camel in Action: http://www.manning.com/ibsen >>>>>> >>>>>> >>>>> >>>>> >>>> >> >