On Sun, Jan 24, 2010 at 7:59 PM, lekkie <[email protected]> wrote: > > I tried this but it did not work. > > Something strange however, happens. I noticed if I use the default > aggregationStrategy, the log:Response1 will be logged (as null), however if > I changed it to myAggregatorStrategy, it never prints the log (let alone > log:Response3), instead it prints log:Response2 which prints the old and new > exchange separately (at different times). > > <route> > <from uri="direct:AggregatorServices" /> > <aggregate strategyRef="myAggregatorStrategy" batchSize="2" > batchTimeout="30000"> > <!-- <aggregate batchSize="2" batchTimeout="30000" > groupExchanges="true">--> > <correlationExpression> > <constant>true</constant> > </correlationExpression> > <to uri="log:Response1"/> > <from uri="direct:ProcessorServices" /> > </aggregate> > <to uri="log:Response2"/> > </route> > <route> > <from uri="direct:ProcessorServices" /> > <to uri="log:KimonoResponse3"/> > </route> > > Something is wrong somewhere, just can't figure it out yet. > >
See this unit test http://svn.apache.org/viewvc?rev=903849&view=rev You cannot do a <from> inside the route! From are used to define inputs to the route and not in the middle of the route. Use the unit test as a base to get your stuff working. > > Claus Ibsen-2 wrote: >> >> Hi >> >> I have created an unit test which does what you want >> http://svn.apache.org/viewvc?rev=902559&view=rev >> >> You should use batchSize = 2 and not OUIT batch size. OUT batch size >> is when you have multiple correlation groups. >> Which yo do not have since you use true as the correlation id. >> >> Also note that the default timeout of 1 sec will kick in, so if you >> send in message in slow pace then set it to a higher number. >> >> The aggregator will be overhauled in the future, hopefully in 2.3 >> >> >> On Fri, Jan 22, 2010 at 10:05 AM, lekkie <[email protected]> wrote: >>> >>> Hi, >>> >>> I want to combine messages from 2 different exchanges into a single >>> exchange, from the EIP patterns aggregation strategy seems to be right >>> pattern to use. >>> >>> However, after reading the doc (http://camel.apache.org/aggregator.html), >>> I >>> followed the instructns but my aggregation strategy only returns the last >>> exchange, even though I specifically configured it to send messages only >>> when the outbatchsize is 2. >>> >>> I implemented a custom aggregationstrategy with shoulld combine my >>> exchanges >>> into one. I log the event in the class and it works fine, what is beyond >>> me >>> is why it returns only the last exchange. >>> >>> >>> See my config here: >>> <bean id="myAggregatorStrategy" >>> class="org.tempuri.MyAggregationStrategy"/> >>> >>> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring" >>> trace="true"> >>> <route> >>> <from uri="direct:RequestProcessor" /> >>> <to uri="xslt:requestToSOAP.xsl"/> >>> <wireTap uri="direct:AggregatorServices"/> >>> <to uri="xslt:requestToManager.xsl"/> >>> <convertBodyTo type="javax.xml.transform.dom.DOMSource" /> >>> <to uri="nmr:{http://services.locator/}Service:ServicesPort"/> >>> <to uri="direct:AggregatorServices"/> >>> </route> >>> >>> <route> >>> <from uri="direct:AggregatorServices" /> >>> <aggregate strategyRef="myAggregatorStrategy" outBatchSize="2"> >>> <correlationExpression> >>> <constant>true</constant> >>> </correlationExpression> >>> <to uri="direct:ProcessorServices"/> >>> </aggregate> >>> </route> >>> >>> <route> >>> <from uri="direct:ProcessorServices" /> >>> <to uri="log:Response"/> >>> </route> >>> </osgi:camelContext> >>> >>> log:Response only print out response from <to >>> uri="nmr:{http://services.locator/}Service:ServicesPort"/>. >>> >>> Meanwhile, the log inside myStratRef (myAggregatorStrategy), which I ask >>> to >>> concatenate the old & new exchanges shows both exchanges were >>> concatenated. >>> How do I get this concatenated exchange to be sent (to log:Resposne)? >>> >>> Regards. >>> -- >>> View this message in context: >>> http://old.nabble.com/Aggregator%27s-not-returning-combined-exchanges%2C-only-returns-last-exchange-tp27270355p27270355.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > -- > View this message in context: > http://old.nabble.com/Aggregator%27s-not-returning-combined-exchanges%2C-only-returns-last-exchange-tp27270355p27297994.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
