Class AggregateDefinition

All Implemented Interfaces:
org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, AggregationStrategyAwareDefinition<AggregateDefinition>, Block, ExecutorServiceAwareDefinition<AggregateDefinition>, OutputNode, org.apache.camel.NamedNode, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware

@Metadata(label="eip,routing") public class AggregateDefinition extends OutputDefinition<AggregateDefinition> implements ExecutorServiceAwareDefinition<AggregateDefinition>, AggregationStrategyAwareDefinition<AggregateDefinition>
Aggregates many messages into a single message
  • Constructor Details

    • AggregateDefinition

      public AggregateDefinition()
    • AggregateDefinition

      public AggregateDefinition(@AsPredicate org.apache.camel.Predicate predicate)
    • AggregateDefinition

      public AggregateDefinition(org.apache.camel.Expression expression)
    • AggregateDefinition

      public AggregateDefinition(ExpressionDefinition correlationExpression)
    • AggregateDefinition

      public AggregateDefinition(org.apache.camel.Expression correlationExpression, org.apache.camel.AggregationStrategy aggregationStrategy)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class OutputDefinition<AggregateDefinition>
    • description

      protected String description()
    • getShortName

      public String getShortName()
      Specified by:
      getShortName in interface org.apache.camel.NamedNode
      Overrides:
      getShortName in class OutputDefinition<AggregateDefinition>
    • getLabel

      public String getLabel()
      Description copied from class: ProcessorDefinition
      Returns a label to describe this node such as the expression if some kind of expression node
      Specified by:
      getLabel in interface org.apache.camel.NamedNode
      Overrides:
      getLabel in class ProcessorDefinition<AggregateDefinition>
    • configureChild

      public void configureChild(ProcessorDefinition<?> output)
      Description copied from class: ProcessorDefinition
      Strategy for children to do any custom configuration
      Overrides:
      configureChild in class ProcessorDefinition<AggregateDefinition>
      Parameters:
      output - the child to be added as output to this
    • getAggregationStrategyBean

      public org.apache.camel.AggregationStrategy getAggregationStrategyBean()
      Description copied from interface: AggregationStrategyAwareDefinition
      Gets the aggregation strategy
      Specified by:
      getAggregationStrategyBean in interface AggregationStrategyAwareDefinition<AggregateDefinition>
    • getAggregationRepositoryBean

      public org.apache.camel.spi.AggregationRepository getAggregationRepositoryBean()
    • getAggregationStrategyRef

      public String getAggregationStrategyRef()
      Description copied from interface: AggregationStrategyAwareDefinition
      Gets a reference id to lookup the aggregation strategy from the registry
      Specified by:
      getAggregationStrategyRef in interface AggregationStrategyAwareDefinition<AggregateDefinition>
    • getAggregateControllerBean

      public org.apache.camel.processor.aggregate.AggregateController getAggregateControllerBean()
    • getExecutorServiceBean

      public ExecutorService getExecutorServiceBean()
      Description copied from interface: ExecutorServiceAwareDefinition
      Gets the executor service for executing
      Specified by:
      getExecutorServiceBean in interface ExecutorServiceAwareDefinition<AggregateDefinition>
    • getExecutorServiceRef

      public String getExecutorServiceRef()
      Description copied from interface: ExecutorServiceAwareDefinition
      Gets a reference id to lookup the executor service from the registry
      Specified by:
      getExecutorServiceRef in interface ExecutorServiceAwareDefinition<AggregateDefinition>
    • getTimeoutCheckerExecutorServiceBean

      public ScheduledExecutorService getTimeoutCheckerExecutorServiceBean()
    • getAggregationRepository

      public String getAggregationRepository()
    • setAggregationRepository

      public void setAggregationRepository(org.apache.camel.spi.AggregationRepository aggregationRepository)
    • setAggregationRepository

      public void setAggregationRepository(String aggregationRepository)
      The AggregationRepository to use.

      Sets the custom aggregate repository to use. Will by default use org.apache.camel.processor.aggregate.MemoryAggregationRepository

    • setAggregationStrategy

      public void setAggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
      The AggregationStrategy to use.

      For example to lookup a bean with the name foo, the value is simply just #bean:foo.

      Configuring an AggregationStrategy is required, and is used to merge the incoming Exchange with the existing already merged exchanges. At first call the oldExchange parameter is null. On subsequent invocations the oldExchange contains the merged exchanges and newExchange is of course the new incoming Exchange.

    • getAggregationStrategy

      public String getAggregationStrategy()
    • setAggregationStrategy

      public void setAggregationStrategy(String aggregationStrategy)
      The AggregationStrategy to use.

      For example to lookup a bean with the name foo, the value is simply just #bean:foo.

      Configuring an AggregationStrategy is required, and is used to merge the incoming Exchange with the existing already merged exchanges. At first call the oldExchange parameter is null. On subsequent invocations the oldExchange contains the merged exchanges and newExchange is of course the new incoming Exchange.

    • getAggregationStrategyMethodName

      public String getAggregationStrategyMethodName()
      Description copied from interface: AggregationStrategyAwareDefinition
      This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy.
      Specified by:
      getAggregationStrategyMethodName in interface AggregationStrategyAwareDefinition<AggregateDefinition>
    • setAggregationStrategyMethodName

      public void setAggregationStrategyMethodName(String strategyMethodName)
      This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy.
    • getAggregationStrategyMethodAllowNull

      public String getAggregationStrategyMethodAllowNull()
      Description copied from interface: AggregationStrategyAwareDefinition
      If this option is false then the aggregate method is not used for the very first aggregation. If this option is true then null values is used as the oldExchange (at the very first aggregation), when using beans as the AggregationStrategy.
      Specified by:
      getAggregationStrategyMethodAllowNull in interface AggregationStrategyAwareDefinition<AggregateDefinition>
    • setAggregationStrategyMethodAllowNull

      public void setAggregationStrategyMethodAllowNull(String aggregationStrategyMethodAllowNull)
      If this option is false then the aggregate method is not used for the very first aggregation. If this option is true then null values is used as the oldExchange (at the very first aggregation), when using beans as the AggregationStrategy.
    • setCorrelationExpression

      public void setCorrelationExpression(ExpressionSubElementDefinition correlationExpression)
      The expression used to calculate the correlation key to use for aggregation. The Exchange which has the same correlation key is aggregated together. If the correlation key could not be evaluated an Exception is thrown. You can disable this by using the ignoreBadCorrelationKeys option.
    • getCorrelationExpression

      public ExpressionSubElementDefinition getCorrelationExpression()
    • getCompletionSize

      public String getCompletionSize()
    • setCompletionSize

      public void setCompletionSize(String completionSize)
    • getOptimisticLockRetryPolicyDefinition

      public OptimisticLockRetryPolicyDefinition getOptimisticLockRetryPolicyDefinition()
    • setOptimisticLockRetryPolicyDefinition

      public void setOptimisticLockRetryPolicyDefinition(OptimisticLockRetryPolicyDefinition optimisticLockRetryPolicyDefinition)
    • getOptimisticLockRetryPolicy

      public org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy getOptimisticLockRetryPolicy()
    • setOptimisticLockRetryPolicy

      public void setOptimisticLockRetryPolicy(org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy optimisticLockRetryPolicy)
    • getCompletionInterval

      public String getCompletionInterval()
    • setCompletionInterval

      public void setCompletionInterval(String completionInterval)
    • getCompletionTimeout

      public String getCompletionTimeout()
    • setCompletionTimeout

      public void setCompletionTimeout(String completionTimeout)
    • getCompletionTimeoutCheckerInterval

      public String getCompletionTimeoutCheckerInterval()
    • setCompletionTimeoutCheckerInterval

      public void setCompletionTimeoutCheckerInterval(String completionTimeoutCheckerInterval)
    • getCompletionPredicate

      public ExpressionSubElementDefinition getCompletionPredicate()
    • setCompletionPredicate

      public void setCompletionPredicate(ExpressionSubElementDefinition completionPredicate)
    • getCompletionTimeoutExpression

      public ExpressionSubElementDefinition getCompletionTimeoutExpression()
    • setCompletionTimeoutExpression

      public void setCompletionTimeoutExpression(ExpressionSubElementDefinition completionTimeoutExpression)
      Time in millis that an aggregated exchange should be inactive before its complete (timeout). This option can be set as either a fixed value or using an Expression which allows you to evaluate a timeout dynamically - will use Long as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0. You cannot use this option together with completionInterval, only one of the two can be used.

      By default the timeout checker runs every second, you can use the completionTimeoutCheckerInterval option to configure how frequently to run the checker. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.

      Parameters:
      completionTimeoutExpression - the timeout as an Expression which is evaluated as a Long type
    • getCompletionSizeExpression

      public ExpressionSubElementDefinition getCompletionSizeExpression()
    • setCompletionSizeExpression

      public void setCompletionSizeExpression(ExpressionSubElementDefinition completionSizeExpression)
      Number of messages aggregated before the aggregation is complete. This option can be set as either a fixed value or using an Expression which allows you to evaluate a size dynamically - will use Integer as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0.
      Parameters:
      completionSizeExpression - the completion size as an Expression which is evaluated as a Integer type
    • getCompletionFromBatchConsumer

      public String getCompletionFromBatchConsumer()
    • setCompletionFromBatchConsumer

      public void setCompletionFromBatchConsumer(String completionFromBatchConsumer)
    • getCompletionOnNewCorrelationGroup

      public String getCompletionOnNewCorrelationGroup()
    • setCompletionOnNewCorrelationGroup

      public void setCompletionOnNewCorrelationGroup(String completionOnNewCorrelationGroup)
    • getOptimisticLocking

      public String getOptimisticLocking()
    • setOptimisticLocking

      public void setOptimisticLocking(String optimisticLocking)
    • getParallelProcessing

      public String getParallelProcessing()
    • setParallelProcessing

      public void setParallelProcessing(String parallelProcessing)
    • getExecutorService

      public String getExecutorService()
    • setExecutorService

      public void setExecutorService(String executorService)
    • getEagerCheckCompletion

      public String getEagerCheckCompletion()
    • setEagerCheckCompletion

      public void setEagerCheckCompletion(String eagerCheckCompletion)
    • getIgnoreInvalidCorrelationKeys

      public String getIgnoreInvalidCorrelationKeys()
    • setIgnoreInvalidCorrelationKeys

      public void setIgnoreInvalidCorrelationKeys(String ignoreInvalidCorrelationKeys)
    • getCloseCorrelationKeyOnCompletion

      public String getCloseCorrelationKeyOnCompletion()
    • setCloseCorrelationKeyOnCompletion

      public void setCloseCorrelationKeyOnCompletion(String closeCorrelationKeyOnCompletion)
    • getDiscardOnCompletionTimeout

      public String getDiscardOnCompletionTimeout()
    • setDiscardOnCompletionTimeout

      public void setDiscardOnCompletionTimeout(String discardOnCompletionTimeout)
    • getDiscardOnAggregationFailure

      public String getDiscardOnAggregationFailure()
    • setDiscardOnAggregationFailure

      public void setDiscardOnAggregationFailure(String discardOnAggregationFailure)
    • getTimeoutCheckerExecutorService

      public String getTimeoutCheckerExecutorService()
    • setTimeoutCheckerExecutorService

      public void setTimeoutCheckerExecutorService(String timeoutCheckerExecutorService)
    • getForceCompletionOnStop

      public String getForceCompletionOnStop()
    • setForceCompletionOnStop

      public void setForceCompletionOnStop(String forceCompletionOnStop)
    • getCompleteAllOnStop

      public String getCompleteAllOnStop()
    • setCompleteAllOnStop

      public void setCompleteAllOnStop(String completeAllOnStop)
    • getAggregateController

      public String getAggregateController()
    • setAggregateController

      public void setAggregateController(String aggregateController)
      To use a AggregateController to allow external sources to control this aggregator.
    • setAggregateController

      public void setAggregateController(org.apache.camel.processor.aggregate.AggregateController aggregateController)
    • eagerCheckCompletion

      public AggregateDefinition eagerCheckCompletion()
      Use eager completion checking which means that the completionPredicate will use the incoming Exchange. As opposed to without eager completion checking the completionPredicate will use the aggregated Exchange.
      Returns:
      builder
    • ignoreInvalidCorrelationKeys

      public AggregateDefinition ignoreInvalidCorrelationKeys()
      If a correlation key cannot be successfully evaluated it will be ignored by logging a DEBUG and then just ignore the incoming Exchange.
      Returns:
      builder
    • closeCorrelationKeyOnCompletion

      public AggregateDefinition closeCorrelationKeyOnCompletion(int capacity)
      Closes a correlation key when its complete. Any late received exchanges which has a correlation key that has been closed, it will be defined and a ClosedCorrelationKeyException is thrown.
      Parameters:
      capacity - the maximum capacity of the closed correlation key cache. Use 0 or negative value for unbounded capacity.
      Returns:
      builder
    • discardOnCompletionTimeout

      public AggregateDefinition discardOnCompletionTimeout()
      Discards the aggregated message on completion timeout.

      This means on timeout the aggregated message is dropped and not sent out of the aggregator.

      Returns:
      builder
    • discardOnAggregationFailure

      public AggregateDefinition discardOnAggregationFailure()
      Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy. This means the partly aggregated message is dropped and not sent out of the aggregator.

      This option cannot be used together with completionFromBatchConsumer.

      Returns:
      builder
    • completionFromBatchConsumer

      public AggregateDefinition completionFromBatchConsumer()
      Enables the batch completion mode where we aggregate from a BatchConsumer and aggregate the total number of exchanges the BatchConsumer has reported as total by checking the exchange property Exchange.BATCH_COMPLETE when its complete.

      This option cannot be used together with discardOnAggregationFailure.

      Returns:
      builder
    • completionOnNewCorrelationGroup

      public AggregateDefinition completionOnNewCorrelationGroup()
      Enables completion on all previous groups when a new incoming correlation group. This can for example be used to complete groups with same correlation keys when they are in consecutive order. Notice when this is enabled then only 1 correlation group can be in progress as when a new correlation group starts, then the previous groups is forced completed.
      Returns:
      builder
    • completionSize

      public AggregateDefinition completionSize(String completionSize)
      Number of messages aggregated before the aggregation is complete. This option can be set as either a fixed value or using an Expression which allows you to evaluate a size dynamically - will use Integer as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0.
      Parameters:
      completionSize - the completion size, must be a an expression evaluating to positive number
      Returns:
      builder
    • completionSize

      public AggregateDefinition completionSize(int completionSize)
      Number of messages aggregated before the aggregation is complete. This option can be set as either a fixed value or using an Expression which allows you to evaluate a size dynamically - will use Integer as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0.
      Parameters:
      completionSize - the completion size, must be a positive number
      Returns:
      builder
    • completionSize

      public AggregateDefinition completionSize(org.apache.camel.Expression completionSize)
      Number of messages aggregated before the aggregation is complete. This option can be set as either a fixed value or using an Expression which allows you to evaluate a size dynamically - will use Integer as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0.
      Parameters:
      completionSize - the completion size as an Expression which is evaluated as a Integer type
      Returns:
      builder
    • completionInterval

      public AggregateDefinition completionInterval(long completionInterval)
      A repeating period in millis by which the aggregator will complete all current aggregated exchanges. Camel has a background task which is triggered every period. You cannot use this option together with completionTimeout, only one of them can be used.
      Parameters:
      completionInterval - the interval in millis, must be a positive value
      Returns:
      the builder
    • completionInterval

      public AggregateDefinition completionInterval(String completionInterval)
      A repeating period in millis by which the aggregator will complete all current aggregated exchanges. Camel has a background task which is triggered every period. You cannot use this option together with completionTimeout, only one of them can be used.
      Parameters:
      completionInterval - the interval in millis, must be a positive value
      Returns:
      the builder
    • completionTimeout

      public AggregateDefinition completionTimeout(String completionTimeout)
      Time in millis that an aggregated exchange should be inactive before its complete (timeout). This option can be set as either a fixed value or using an Expression which allows you to evaluate a timeout dynamically - will use Long as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0. You cannot use this option together with completionInterval, only one of the two can be used.

      By default the timeout checker runs every second, you can use the completionTimeoutCheckerInterval option to configure how frequently to run the checker. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.

      Parameters:
      completionTimeout - the timeout in millis, must be a positive value
      Returns:
      the builder
    • completionTimeout

      public AggregateDefinition completionTimeout(long completionTimeout)
      Time in millis that an aggregated exchange should be inactive before its complete (timeout). This option can be set as either a fixed value or using an Expression which allows you to evaluate a timeout dynamically - will use Long as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0. You cannot use this option together with completionInterval, only one of the two can be used.

      By default the timeout checker runs every second, you can use the completionTimeoutCheckerInterval option to configure how frequently to run the checker. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.

      Parameters:
      completionTimeout - the timeout in millis, must be a positive value
      Returns:
      the builder
    • completionTimeout

      public AggregateDefinition completionTimeout(org.apache.camel.Expression completionTimeout)
      Time in millis that an aggregated exchange should be inactive before its complete (timeout). This option can be set as either a fixed value or using an Expression which allows you to evaluate a timeout dynamically - will use Long as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0. You cannot use this option together with completionInterval, only one of the two can be used.

      By default the timeout checker runs every second, you can use the completionTimeoutCheckerInterval option to configure how frequently to run the checker. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.

      Parameters:
      completionTimeout - the timeout as an Expression which is evaluated as a Long type
      Returns:
      the builder
    • completionTimeoutCheckerInterval

      public AggregateDefinition completionTimeoutCheckerInterval(long completionTimeoutCheckerInterval)
      Interval in millis that is used by the background task that checks for timeouts (TimeoutMap).

      By default the timeout checker runs every second. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.

      Parameters:
      completionTimeoutCheckerInterval - the interval in millis, must be a positive value
      Returns:
      the builder
    • aggregationStrategy

      public AggregationStrategyClause<AggregateDefinition> aggregationStrategy()
      Sets the AggregationStrategy to use with a fluent builder.
    • aggregationStrategy

      public AggregateDefinition aggregationStrategy(org.apache.camel.AggregationStrategy aggregationStrategy)
      Sets the aggregate strategy to use
      Specified by:
      aggregationStrategy in interface AggregationStrategyAwareDefinition<AggregateDefinition>
      Parameters:
      aggregationStrategy - the aggregate strategy to use
      Returns:
      the builder
    • aggregationStrategy

      public AggregateDefinition aggregationStrategy(String aggregationStrategy)
      Sets the aggregate strategy to use
      Specified by:
      aggregationStrategy in interface AggregationStrategyAwareDefinition<AggregateDefinition>
      Parameters:
      aggregationStrategy - reference to the strategy to lookup in the registry
      Returns:
      the builder
    • aggregationStrategyMethodName

      public AggregateDefinition aggregationStrategyMethodName(String methodName)
      Sets the method name to use when using a bean as AggregationStrategy.
      Parameters:
      methodName - the method name to call
      Returns:
      the builder
    • aggregationStrategyMethodAllowNull

      public AggregateDefinition aggregationStrategyMethodAllowNull()
      Sets allowing null when using a bean as AggregationStrategy.
      Returns:
      the builder
    • aggregationRepository

      public AggregateDefinition aggregationRepository(org.apache.camel.spi.AggregationRepository aggregationRepository)
      Sets the custom aggregate repository to use.

      Will by default use MemoryAggregationRepository

      Parameters:
      aggregationRepository - the aggregate repository to use
      Returns:
      the builder
    • aggregationRepository

      public AggregateDefinition aggregationRepository(String aggregationRepository)
      Sets the custom aggregate repository to use.

      Will by default use MemoryAggregationRepository

      Parameters:
      aggregationRepository - reference to the repository to lookup in the registry
      Returns:
      the builder
    • completionPredicate

      public AggregateDefinition completionPredicate(@AsPredicate org.apache.camel.Predicate predicate)
      A Predicate to indicate when an aggregated exchange is complete. If this is not specified and the AggregationStrategy object implements Predicate, the aggregationStrategy object will be used as the completionPredicate.
    • completionPredicate

      @AsPredicate public PredicateClause<AggregateDefinition> completionPredicate()
      A Predicate to indicate when an aggregated exchange is complete. If this is not specified and the AggregationStrategy object implements Predicate, the aggregationStrategy object will be used as the completionPredicate.
    • completion

      @AsPredicate public PredicateClause<AggregateDefinition> completion()
      A Predicate to indicate when an aggregated exchange is complete. If this is not specified and the AggregationStrategy object implements Predicate, the aggregationStrategy object will be used as the completionPredicate.
    • completion

      public AggregateDefinition completion(@AsPredicate org.apache.camel.Predicate predicate)
      A Predicate to indicate when an aggregated exchange is complete. If this is not specified and the AggregationStrategy object implements Predicate, the aggregationStrategy object will be used as the completionPredicate.
    • forceCompletionOnStop

      public AggregateDefinition forceCompletionOnStop()
      Indicates to complete all current aggregated exchanges when the context is stopped
    • completeAllOnStop

      public AggregateDefinition completeAllOnStop()
      Indicates to wait to complete all current and partial (pending) aggregated exchanges when the context is stopped.

      This also means that we will wait for all pending exchanges which are stored in the aggregation repository to complete so the repository is empty before we can stop.

      You may want to enable this when using the memory based aggregation repository that is memory based only, and do not store data on disk. When this option is enabled, then the aggregator is waiting to complete all those exchanges before its stopped, when stopping CamelContext or the route using it.

    • parallelProcessing

      public AggregateDefinition parallelProcessing()
      When aggregated are completed they are being send out of the aggregator. This option indicates whether or not Camel should use a thread pool with multiple threads for concurrency. If no custom thread pool has been specified then Camel creates a default pool with 10 concurrent threads.
    • parallelProcessing

      public AggregateDefinition parallelProcessing(boolean parallelProcessing)
      When aggregated are completed they are being send out of the aggregator. This option indicates whether or not Camel should use a thread pool with multiple threads for concurrency. If no custom thread pool has been specified then Camel creates a default pool with 10 concurrent threads.
    • optimisticLocking

      public AggregateDefinition optimisticLocking()
      Turns on using optimistic locking, which requires the aggregationRepository being used, is supporting this by implementing OptimisticLockingAggregationRepository.
    • optimisticLockRetryPolicy

      public AggregateDefinition optimisticLockRetryPolicy(org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy policy)
      Allows to configure retry settings when using optimistic locking.
    • executorService

      public AggregateDefinition executorService(ExecutorService executorService)
      If using parallelProcessing you can specify a custom thread pool to be used. In fact also if you are not using parallelProcessing this custom thread pool is used to send out aggregated exchanges as well.
      Specified by:
      executorService in interface ExecutorServiceAwareDefinition<AggregateDefinition>
      Parameters:
      executorService - the executor service
      Returns:
      the builder
    • executorService

      public AggregateDefinition executorService(String executorService)
      If using parallelProcessing you can specify a custom thread pool to be used. In fact also if you are not using parallelProcessing this custom thread pool is used to send out aggregated exchanges as well.
      Specified by:
      executorService in interface ExecutorServiceAwareDefinition<AggregateDefinition>
      Parameters:
      executorService - reference for a ExecutorService to lookup in the Registry
      Returns:
      the builder
    • timeoutCheckerExecutorService

      public AggregateDefinition timeoutCheckerExecutorService(ScheduledExecutorService executorService)
      If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the completion for every aggregator. Set this option to provide a custom thread pool to be used rather than creating a new thread for every aggregator.
    • timeoutCheckerExecutorService

      public AggregateDefinition timeoutCheckerExecutorService(String executorServiceRef)
      If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the completion for every aggregator. Set this option to provide a custom thread pool to be used rather than creating a new thread for every aggregator.
    • aggregateController

      public AggregateDefinition aggregateController(org.apache.camel.processor.aggregate.AggregateController aggregateController)
      To use a AggregateController to allow external sources to control this aggregator.
    • aggregateController

      public AggregateDefinition aggregateController(String aggregateController)
      To use a AggregateController to allow external sources to control this aggregator.
    • getExpression

      public ExpressionDefinition getExpression()
    • setExpression

      public void setExpression(ExpressionDefinition expression)
    • setExpression

      public void setExpression(org.apache.camel.Expression expression)
    • checkNoCompletedPredicate

      protected void checkNoCompletedPredicate()
    • getOutputs

      public List<ProcessorDefinition<?>> getOutputs()
      Overrides:
      getOutputs in class OutputDefinition<AggregateDefinition>
    • setOutputs

      public void setOutputs(List<ProcessorDefinition<?>> outputs)
      Overrides:
      setOutputs in class OutputDefinition<AggregateDefinition>