[
https://issues.apache.org/activemq/browse/CAMEL-1638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=51848#action_51848
]
Claus Ibsen commented on CAMEL-1638:
------------------------------------
Willem it isnt that bad with the null check. Not all implementations suffer for
that. Check this out
*before*
{code}
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
Exchange copy = newExchange.copy();
Message newIn = copy.getIn();
String oldBody = oldExchange.getIn().getBody(String.class);
String newBody = newIn.getBody(String.class);
newIn.setBody(oldBody + "+" + newBody);
return copy;
}
{code}
*after*
{code}
public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
if (oldExchange != null) {
String oldBody = oldExchange.getIn().getBody(String.class);
String newBody = newExchange.getIn().getBody(String.class);
newExchange.getIn().setBody(oldBody + "+" + newBody);
}
return newExchange;
}
{code}
The code in after is also very readable.
> AggregatorStrategy - should also be invoked for the first exchange
> ------------------------------------------------------------------
>
> Key: CAMEL-1638
> URL: https://issues.apache.org/activemq/browse/CAMEL-1638
> Project: Apache Camel
> Issue Type: Improvement
> Components: camel-core
> Affects Versions: 2.0-M1, 1.6.1
> Reporter: Claus Ibsen
> Assignee: Claus Ibsen
> Fix For: 2.0.0
>
>
> Using aggregator, splitterl, multicast etc. that supports
> {{AggregatorStrategy}} all have the flaw that they skip invoking this
> interface callback for the very first exchange.
> This hazzles the end users implementing this interface if they are to be able
> to traverse all the exchanges, to eg summing a total amount or the likes.
> And its also a bit confusing as well why the first one is skipped.
> And if you aggregator out of order then you dont know which one was the first
> exchange.
> So we should invoke this callback always. And the first time the
> {{oldExchange}} parameter is null.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.