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. |