Hello I am trying to configure aggregator2 using completionSize with header expression:
public class AggregatorTest extends CamelTestSupport{ @EndpointInject(uri = "mock:result") private MockEndpoint mockResult; @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:aggregatorTest") .aggregate(header("group_id")).groupExchanges().completionSize(header("quantity_in_group")) .to("mock:result"); } }; } @Produce private ProducerTemplate template; @Test public void testAggregator() throws InterruptedException { Map<String, Object> headers = new HashMap<String, Object>(); headers.put("group_id", 1); headers.put("quantity_in_group", 2); mockResult.setExpectedMessageCount(1); template.sendBodyAndHeaders("direct:aggregatorTest", "message one", headers); template.sendBodyAndHeaders("direct:aggregatorTest", "message two", headers); mockResult.assertIsSatisfied(); Exchange result = mockResult.getExchanges().get(0); List<Exchange> group = (List<Exchange>) result.getProperty(Exchange.GROUPED_EXCHANGE); assertListSize(group, 2); } } Nothing is sent to mockResult. Am I doing something wrong or is it an aggregator2 issue? With completionTimeout everything works fine. Version of Camel: current 2.3-SNAPSHOT from the Apache snapshot repo. Thanks, Eugene