Daniel Kulp created CAMEL-8423:
----------------------------------
Summary: Enhance AggregationStrategy to allow it to determine if
aggregation is complete
Key: CAMEL-8423
URL: https://issues.apache.org/jira/browse/CAMEL-8423
Project: Camel
Issue Type: Improvement
Components: camel-core
Reporter: Daniel Kulp
Assignee: Daniel Kulp
Fix For: 2.15.0
Currently, the Aggregation component allows the completion to be triggered on
either a Timeout, a set number of aggregations, or via use of a Predicate to
determine the completion. In some cases the AggregationStrategy itself may be
the best place to determine if the aggregation is complete.
One example: adding a "data size limit" as the trigger. The aggregation
component has no concept of the "size" of the data (nor should it) as it's the
AggregationStrategy object that handles the actual aggregation of the data.
If during the Aggregating of the exchanges if a size limit (or other limit) is
achieved, it would be good to be able to flag the exchange as ready.
This can be somewhat done as a predicate that looks at the aggregated exchange
and looks at the size. However, this requires the user to implement two
objects and configure two things for the aggregator. One proposal would be
that if the user supplied AggregationStrategy implements Predicate and no
completionPredicate is supplied, the given AggregationStrategy is also set as
the completionPredicate. Similarly, a new interface could be introduced for
this if using Predicate is a concern.
Another strategy would be to set a property on the returned exchange during
aggregation that would mark it as "done" and have the Aggregator look for that
property.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)