|
Hi,
I want to use an aggregator in order to aggregate all messages comming. On my route i'm making a split with a splitter , then i process every messages in parallel and then i want to aggregate them all into a single file. Here is my snippet : this.from(FROM_FOLDER).split(new LdapEntitySplitExpression()).process(new LdapModifyProcessor()).aggregate(header("LDIFRecord"),new LdapAggregationStrategy()).to(TO_FOLDER); and inside LdapModifyProcessor() i do: exchange.getOut().setHeader("type", "LDIFRecord"); but it does not work. can anyone tellme how can i let every messages go thru aggregator? regards. |
|
Hi
The splitter has build in join so you can do that all together with the aggregator. See the "Split aggregate request/reply sample" in http://camel.apache.org/splitter.html On Thu, Oct 15, 2009 at 3:01 PM, kodcanavari <[hidden email]> wrote: > > Hi, > > I want to use an aggregator in order to aggregate all messages comming. > On my route i'm making a split with a splitter , then i process every > messages in parallel > and then i want to aggregate them all into a single file. > > Here is my snippet : > > > this.from(FROM_FOLDER).split(new LdapEntitySplitExpression()).process(new > LdapModifyProcessor()).aggregate(header("LDIFRecord"),new > LdapAggregationStrategy()).to(TO_FOLDER); > > > and inside LdapModifyProcessor() i do: > > exchange.getOut().setHeader("type", "LDIFRecord"); > > but it does not work. > > can anyone tellme how can i let every messages go thru aggregator? > > regards. > > > > -- > View this message in context: http://www.nabble.com/How-to-aggregate-all-messages-into-a-single-message--tp25908234p25908234.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus |
|
Ah it should haven been without
together *with out* the aggregator. On Thu, Oct 15, 2009 at 3:05 PM, Claus Ibsen <[hidden email]> wrote: > Hi > > The splitter has build in join so you can do that all together with > the aggregator. > > See the "Split aggregate request/reply sample" in > http://camel.apache.org/splitter.html > > > On Thu, Oct 15, 2009 at 3:01 PM, kodcanavari <[hidden email]> wrote: >> >> Hi, >> >> I want to use an aggregator in order to aggregate all messages comming. >> On my route i'm making a split with a splitter , then i process every >> messages in parallel >> and then i want to aggregate them all into a single file. >> >> Here is my snippet : >> >> >> this.from(FROM_FOLDER).split(new LdapEntitySplitExpression()).process(new >> LdapModifyProcessor()).aggregate(header("LDIFRecord"),new >> LdapAggregationStrategy()).to(TO_FOLDER); >> >> >> and inside LdapModifyProcessor() i do: >> >> exchange.getOut().setHeader("type", "LDIFRecord"); >> >> but it does not work. >> >> can anyone tellme how can i let every messages go thru aggregator? >> >> regards. >> >> >> >> -- >> View this message in context: http://www.nabble.com/How-to-aggregate-all-messages-into-a-single-message--tp25908234p25908234.html >> Sent from the Camel - Users mailing list archive at Nabble.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 |
|
In reply to this post by arda.aydin
Try to use this.from(FROM_FOLDER).split(new LdapEntitySplitExpression(), new
LdapAggregationStrategy()).process(new LdapModifyProcessor()).end().to(TO_FOLDER); On Thu, Oct 15, 2009 at 5:01 PM, kodcanavari <[hidden email]> wrote: > > Hi, > > I want to use an aggregator in order to aggregate all messages comming. > On my route i'm making a split with a splitter , then i process every > messages in parallel > and then i want to aggregate them all into a single file. > > Here is my snippet : > > > this.from(FROM_FOLDER).split(new LdapEntitySplitExpression()).process(new > LdapModifyProcessor()).aggregate(header("LDIFRecord"),new > LdapAggregationStrategy()).to(TO_FOLDER); > > > and inside LdapModifyProcessor() i do: > > exchange.getOut().setHeader("type", "LDIFRecord"); > > but it does not work. > > can anyone tellme how can i let every messages go thru aggregator? > > regards. > > > > -- > View this message in context: > http://www.nabble.com/How-to-aggregate-all-messages-into-a-single-message--tp25908234p25908234.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > |
|
Thanks a lot dulanov, it worked :)
but can you tell me what exactly end() do and why i cant use the aggregator class ?
|
|
In reply to this post by dulanov
this.from(FROM_FOLDER) .split(new LdapEntitySplitExpression(), new LdapAggregationStrategy()) .process(new LdapModifyProcessor()) .end() .to(TO_FOLDER); it works and aggregates processed messages into the same file but i want to complicate a little bit. What i want to do is to split a file from a file endpoint, process each entry separately and then according to the entry content, i want to aggregate them into different files. So i wrote the code below but in this case the aggregation doesn't work, the outputs are in separate files. this.from(m_from_folder_url) .split(new LdapEntitySplitExpression(),new LdapAggregationStrategy()) .process(new LdapModifyProcessor(hMap)) .choice() .when(header("type").isEqualTo("add")) .to(m_to_folder_url) .when(header("type").isEqualTo("modify")) .to(m_to_folder_url) .end(); So does anyone have an idea to solve it? Thanks.
|
|
In reply to this post by arda.aydin
I resolved my problem by this way:
this.from(m_from_folder_url) .split(new SplitExpression()) .process(new Processor()) .choice() .when(header("type").isEqualTo("add")) .to("direct:addEntry") .when(header("type").isEqualTo("modify")) .to("direct:modifyEntry"); from("direct:addEntry").aggregate(header("add"), new AggregationStrategy()).to(m_to_add_folder_url); from("direct:modifyEntry").aggregate(header("modify"), new AggregationStrategy()).to(m_to_modify_folder_url); so this is a route which: - reads a file - splits it's entities - processes each entry separately - according to their nature aggregating processed entries to the appropriate file.
|
|
Hi
Thanks for sharing your solution. Looks nice with separate routes for the aggregation. Makes it easier to test as well :) On Mon, Nov 2, 2009 at 9:18 PM, kodcanavari <[hidden email]> wrote: > > I resolved my problem by this way: > > this.from(m_from_folder_url) > .split(new SplitExpression()) > .process(new Processor()) > .choice() > .when(header("type").isEqualTo("add")) > .to("direct:addEntry") > .when(header("type").isEqualTo("modify")) > .to("direct:modifyEntry"); > > from("direct:addEntry").aggregate(header("add"), new > AggregationStrategy()).to(m_to_add_folder_url); > from("direct:modifyEntry").aggregate(header("modify"), new > AggregationStrategy()).to(m_to_modify_folder_url); > > so this is a route which: > - reads a file > - splits it's entities > - processes each entry separately > - according to their nature aggregating processed entries to the > appropriate file. > > > > kodcanavari wrote: >> >> Hi, >> >> I want to use an aggregator in order to aggregate all messages comming. >> On my route i'm making a split with a splitter , then i process every >> messages in parallel >> and then i want to aggregate them all into a single file. >> >> Here is my snippet : >> >> >> this.from(FROM_FOLDER).split(new LdapEntitySplitExpression()).process(new >> LdapModifyProcessor()).aggregate(header("LDIFRecord"),new >> LdapAggregationStrategy()).to(TO_FOLDER); >> >> >> and inside LdapModifyProcessor() i do: >> >> exchange.getOut().setHeader("type", "LDIFRecord"); >> >> but it does not work. >> >> can anyone tellme how can i let every messages go thru aggregator? >> >> regards. >> >> >> >> > > -- > View this message in context: http://old.nabble.com/How-to-aggregate-all-messages-into-a-single-message--tp25908234p26157808.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus |
| Powered by Nabble | Edit this page |
