On Tue, Jun 16, 2009 at 4:10 PM, Charles Moulliard<cmoulli...@gmail.com> wrote: > What do you mean by 1 = OUT, 2+ = IN ? Number of processors you have in the route. eg = the number of <to uri="xxx"/> you have
1 = <split> <to uri="foo"/> </split> 2+ = <split> <to uri="foo"/> <to uri="bar"/> <to uri="baz"/> </split> > > > Charles Moulliard > Senior Enterprise Architect > Apache Camel Committer > > ***************************** > blog : http://cmoulliard.blogspot.com > > > On Tue, Jun 16, 2009 at 4:03 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > >> [15:59] <cibsen> chm007 its because of using AggregatorStrategy is >> very low level >> [15:59] <cibsen> you work on Exchange directly >> [15:59] <cibsen> and it depends on how many processing steps you have >> in the split sub route >> [15:59] <cibsen> 1 = OUT >> [15:59] <cibsen> 2+ = IN as Camel will use a Pipeline under the converers >> [15:59] <cibsen> so Camel will do a OUT -> IN in the next processor >> [15:59] <cibsen> so OUT -> IN to the AggregatorStrategy also >> [15:59] <cibsen> its a bit confusing >> [16:00] <cibsen> will be better when you can use a POJO for aggregation >> >> On Tue, Jun 16, 2009 at 2:11 PM, Charles Moulliard<cmoulli...@gmail.com> >> wrote: >> > Hi, >> > >> > I'm a little confused about the split EIP pattern combined with >> aggregation >> > strategy. In the example (see http://camel.apache.org/splitter.html - >> Split >> > aggregate request/reply sample), the out exchange is used to retrieved >> the >> > body content and also to set it because the pattern is of type InOut. >> > >> > I have created an aggregator but in my case, I must use the content of >> the >> > In to retrieve my body >> > >> > List requestMessages = new ArrayList(); >> > >> > if (oldExchange == null) { >> > >> > requestMessages.add(newExchange.getIn().getBody(RequestMessage.class)); >> > newExchange.getOut().setBody(requestMessages); >> > return newExchange; >> > } else { >> > // Get old messages >> > requestMessages = oldExchange.getIn().getBody(List.class); >> > >> > // Get new and add it to the list >> > >> > requestMessages.add(newExchange.getOut().getBody(RequestMessage.class)); >> > >> > // Add to the exchange >> > oldExchange.getOut().setBody(requestMessages); >> > return oldExchange; >> > >> > } >> > >> > >> > Questions : >> > - Is the split EIP an InOut pattern ? >> > - When I develop the aggregator like this, the headers of my messages >> have >> > disappeared when the endpoint called after the end of the split receives >> the >> > List of Objects. How can I avoid this ? >> > >> > Regards, >> > >> > Charles Moulliard >> > Senior Enterprise Architect >> > Apache Camel Committer >> > >> > ***************************** >> > blog : http://cmoulliard.blogspot.com >> > >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus