I too have migrated to Camel 3 and I can’t get this to work. I have tried using a constant(true) but I get only 1 message back instead of 3
Using a unique correlation expression I get as before, 3 different back, not a List of 3 M > On 4 Apr 2020, at 16:10, Craig Taylor <ctalk...@ctalkobt.net> wrote: > >>> Are you really sure as its supposed to store a List<Object> that are > the message body. > > Yes, wanting to accumulate List<Object> over a period of time so before > passing into a "full changes" object so that batching of the request to a > 3rd party api can occur. > > I'm using Camel 3.1.0, and more detail / output from my route follows (note > - having issues w/ log4j - will look at that after this, first things > first): > > from(Routes.InitialRoute) > .process( > (Exchange ex) -> { Logger.getLogger().error("**** Exchange: > " + ex.getIn().getBody()); } > ) > .aggregate(simple("${body.id}"), > AggregationStrategies.groupedBody()) > .completionTimeout(5000L) > .process( > (Exchange ex) -> { Logger.getLogger().error("**** > Exchange2: " + ex.getIn().getBody()); } > ) > .to(ChangeNotificationRoute.ROUTE_TO_WATERSHED); > > with an output of : > > 2020/Apr/04 09:59:03.233 ERROR ....MyChangeRoute.lambda$configure$0: **** > Exchange: {change:'user', id:'ekp000002600', field:'FIELD', new:'1', > old:'null'} > 2020/Apr/04 09:59:08.770 ERROR ....MyChangeRoute.lambda$configure$1: **** > Exchange2: List<Exchange>(1 elements) > > Note that the Routes.InitialRoute is returning a vm:// endpoint. > > > > On Sat, Apr 4, 2020 at 3:50 AM Claus Ibsen <claus.ib...@gmail.com> wrote: > >> Hi >> >> Are you really sure as its supposed to store a List<Object> that are >> the message body. >> But there are however only one unit test for this in camel-jms, so >> lets add one to camel-core. >> >> On Fri, Apr 3, 2020 at 11:23 PM Craig Taylor <ctalk...@ctalkobt.net> >> wrote: >>> >>> I'm wanting to accumulate all exchanges matching a correlation expression >>> (id) into a list for a given period of time. I've looked at the >>> GroupedBodyAggregationStrategy and it returns an Exchange with a body of >>> List<Exchange>'s where I had expect an Exchange with a body of >>> List<Body_type> back. >>> >>> aggregate(simple("${body.id}"), new GroupedBodyAggregationStrategy()) >>> .completionTimeout(5000L) >>> >>> I wasn't able to find documentation on the built-in aggregator however, >>> this "sounds" like the right one to use based on naming. Desperation >> wise, >>> attempting the other Grouped Aggregators didn't yield the solution >> either. >>> >>> Thanks, >>> -- >>> ------------------------------------------- >>> Craig Taylor >>> ctalk...@ctalkobt.net >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 >> > > > -- > ------------------------------------------- > Craig Taylor > ctalk...@ctalkobt.net