You cannot do this the aggregate is in 2 different threads.

Don't use the direct endpoint but do something different to trigger
the route to start and aggreage those files, and then get an event
when its done, which you can then use to know when the zip is ready.





On Mon, Oct 31, 2016 at 11:04 PM, Goyal, Arpit <arpit.go...@sap.com> wrote:
> Hi Colleagues,
>
> I want to read all file and aggregate into one single zip, but the batch 
> consumer always run in different thread. What needs to be done additionally 
> to get the response synchronously?
>
> Regards,
> Arpit.
>
>    DefaultCamelContext c = new DefaultCamelContext();
>     try {
>       c.addRoutes(new RouteBuilder() {
>
>         @Override
>         public void configure() throws Exception {
>           
> from("direct:start").from("file:/tmp/wiretap/6443391d-196a-4c75-b2f8-9c0696025b56/?include=.*&delete=true&maxMessagesPerPoll=2500")
>               .aggregate(body(), new 
> CustomZipAggregationStrategy()).completionFromBatchConsumer().to("file:/tmp/wiretap/aggregate");
>         }
>       });
>
>       ProducerTemplate template = c.createProducerTemplate();
>       c.start();
>       template.start();
>       template.requestBody("direct:start", "BEGIN"); //synchronously response 
> on completion of zip construction...
>     } finally {
>       c.stop();
>     }
>



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to