Oh i see what you mean! thank you Claus.

On Fri, Jul 3, 2020 at 3:32 PM Claus Ibsen <claus.ib...@gmail.com> wrote:

> On Fri, Jul 3, 2020 at 9:13 PM Reji Mathews <contactr...@gmail.com> wrote:
> >
> > Thanks for that quick response. What if I need to have more processing
> > after the multi-cast eip? Suppose I want to use the aggregated output and
> > perform some massaging and push it into another remote service endpoint?
> >
>
> Yeah thats the point what comes after end is the output of the multicast
>
>
>
> > Is that possible?
> >
> > On Fri, Jul 3, 2020 at 2:56 PM Claus Ibsen <claus.ib...@gmail.com>
> wrote:
> >
> > > Hi
> > >
> > > You need to end the multicat assuming you only want to call a and b
> > >
> > >
> > >
> .multicast(stringConcatStrategy).parallelProcessing(true).to("direct:a","direct:b")
> > >
> > > should be
> > >
> > >   .multicast(stringConcatStrategy).parallelProcessing(true)
> > >       .to("direct:a","direct:b")
> > >    .end()
> > >
> > > On Fri, Jul 3, 2020 at 8:37 PM Reji Mathews <contactr...@gmail.com>
> wrote:
> > > >
> > > > Am just trying to understand the nature of multicast EIP and its
> further
> > > > processing down.
> > > >
> > > > I have a route as follows
> > > >
> > > > @Override
> > > > public void configure() throws Exception {
> > > >     from("jetty:http://0.0.0.0:8081/testagg?httpMethodRestrict=GET";)
> > > >             .convertBodyTo(String.class)
> > > >
> > >
> .multicast(stringConcatStrategy).parallelProcessing(true).to("direct:a","direct:b")
> > > >             .log("MultiCast Completed body = ${body}")
> > > >             .setBody(constant("data3"))
> > > >             .log("After setting new body => ${body}")
> > > >             .transform(constant("data4"))
> > > >             .end();
> > > >
> > > >     from("direct:a")
> > > >             .transform(simple("data1")) // instead you can have http
> > > > client call here
> > > >             .delayer(5000)
> > > >             .end();
> > > >
> > > >     from("direct:b")
> > > >             .transform(simple("data2")) // instead you can have http
> > > > client call here
> > > >             .end();
> > > > }
> > > >
> > > >
> > > >
> > > > I poked the flow using an http client and I see the following log
> > > > being printed even before the http call returns.
> > > >
> > > > 2020-07-03 14:31:40.291  INFO 363488 --- [#10 - Multicast] route1
> > > >                              : MultiCast Completed body =
> > > > 2020-07-03 14:31:40.291  INFO 363488 --- [ #5 - Multicast] route1
> > > >                              : After setting new body =>
> > > >
> > > >
> > > >
> > > > And strangely, the response received by http client is as follows
> > > >
> > > > => data1data2data3data4
> > > >
> > > > Am just trying to understand how the flow works. Isn't the 2 logs
> > > supposed
> > > > to be printed after the multicast aggregator is finished executing?
> And
> > > how
> > > > come setBody and Transform EIP isn't replacing the output from the
> > > > aggregator "stringConcatStrategy"?
> > > >
> > > >
> > > > Am using camel v 2.24.0 for this experiment.
> > > >
> > > > Cheers
> > > >
> > > > Reji Mathews
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> > >
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to