Aggregate — Aggregates many messages into a single message
The Aggregate pattern uses an expression to determine which messages to aggregate into a single message. Messages that match the expression are held until they combined by the specified aggregation strategy bean.
The Aggregate pattern can be placed anywhere in the body of a route.
Table 10 describes the properties you can specify using the properties editor.
Table 10. Aggregate Properties
| Name | Description |
|---|---|
| Correlation Expression | Specifies the expression used to correlate the messages that are aggregated. |
| language | Specifies the expression language used to process the correlation expression. |
| Completion Size Expression | Specifies an expression used to determine when aggregation is complete based on the number of exchanges processed. |
| language | Specifies the expression language used to process the completion size expression. |
| Completion Predicate | Specifies the expression used to determine when the aggregated message is complete based on it's contents. |
| language | Specifies the expression language used to process the completion predicate expression. |
| Completion Timeout Expression | Specifies an expression used to determine when aggregation is complete based on the amount of time, in milliseconds, the aggregator has been inactive. |
| language | Specifies the expression language used to process the completion timeout expression. |
| Strategy Ref | Specifies a reference for looking up the
AggregationStrategy in the registry. |
| Close Correlation Key On Completion | Specifies the number of closed correlation keys stored in the cache used to determine if an exchange should be accepted. |
| Completion Timeout | Specifies the amount of time, in milliseconds, the aggregator must be inactive to complete an aggregated message. The property cannot be used with Completion Interval. |
| Timeout Checker Executor Service Ref | Specifies a reference for looking up the
timeoutExecutorService to use for custom thread pool
management when using one of the options: Completion Timeout, Completion Timeout
Expression, or Completion Interval. |
| Executor Service Ref | Specifies a reference for looking up the
executorService to use for thread pool management
when using the Parallel Processing option or when sending out aggregated
exchanges. |
| Force Completion On Stop | Specifies whether to complete all aggregated exchanges currently in route when
the routing context is stopped. The default is Disabled. |
| Completion Interval | Specifies an interval of time, in milliseconds, after which the aggregator completes any in process aggregate messages. This property cannot be used with Completion Timeout. |
| Ignore Invalid Correlation Keys | Specifies whether the aggregator ignores invalid correlation keys. The default is
Disabled, which causes the aggregator to throw an exception when it encounters an
invalid correlation key. |
| Aggregation Repository Ref | Specifies a reference for looking up a custom
AggregationRepository in the registry. The
AggregationRepository stores the messages while they
are being aggregated (held). |
| Discard On Completion Timeout | Specifies whether aggregates that are completed due to a timeout, in
milliseconds, are discarded. The default is
Disabled. |
| Inherit Error Handler | Specifies whether the node should use the error handler configured for the route.
The default is Disabled. |
| Completion From Batch Consumer | Specifies whether aggregates can be completed based on information from a batch
consumer. The default is Disabled. |
| Completion Size | Specifies the number of exchanges the aggregator processes before marking the aggregated message complete. |
| Eager Check Completion | Specifies whether the aggregator determines completion by eagerly checking the
data as exchanges are received or by checking the data after it's been aggregated into
a single exchange. The default is This property works in conjunction with and influences the behavior of the Completion Predicate property. |
| Group Exchanges | Specifies whether the aggregator groups all outgoing exchanges into a single
GroupedExchange object. The default is Disabled. |
| Parallel Processing | Specifies whether the aggregator processes multiple messages concurrently. The
default is Disabled. |
| Id | Specifies a unique identifier for the endpoint. The Id can be used to refer to the endpoint in the Camel XML file. |
| Description | Specifies a text description for the node. This description is included in the generated XML file, but it is informational only. It is not used by Apache Camel. |