Annotation Interface Aggregator


Indicates that a method is capable of aggregating messages.

A method annotated with @Aggregator may accept a collection of Messages or Message payloads and should return a single Message or a single Object to be used as a Message payload.

Author:
Marius Bogoevici, Oleg Zhurakousky, Artem Bilan, Chris Bono
  • Element Details

    • inputChannel

      String inputChannel
      Returns:
      The channel name for receiving messages to be aggregated
      Default:
      ""
    • outputChannel

      String outputChannel
      Returns:
      The channel name for sending aggregated result messages
      Default:
      ""
    • discardChannel

      String discardChannel
      Returns:
      The channel name for sending discarded messages (due to a timeout)
      Default:
      ""
    • sendTimeout

      String sendTimeout
      Specify the maximum amount of time in milliseconds to wait when sending a reply Message to the outputChannel(). Defaults to 30 seconds. It is applied only if the output channel has some 'sending' limitations, e.g. QueueChannel with a fixed 'capacity' and is currently full. In this case a MessageDeliveryException is thrown. The 'sendTimeout' is ignored in case of AbstractSubscribableChannel implementations. Can be specified as 'property placeholder', e.g. ${spring.integration.sendTimeout}.
      Returns:
      The timeout for sending results to the reply target (in milliseconds)
      Default:
      ""
    • sendPartialResultsOnExpiry

      String sendPartialResultsOnExpiry
      Specify whether messages that expired should be aggregated and sent to the outputChannel() or replyChannel from message headers. Messages are expired when their containing MessageGroup expires. One of the ways of expiring MessageGroups is by configuring a MessageGroupStoreReaper. However, MessageGroups can alternatively be expired by simply calling MessageGroupStore.expireMessageGroup(groupId). That could be accomplished via a ControlBus operation or by simply invoking that method if you have a reference to the MessageGroupStore instance. Defaults to false. * Can be specified as 'property placeholder', e.g. ${spring.integration.sendPartialResultsOnExpiry}.
      Returns:
      Indicates whether to send an incomplete aggregate on expiry of the message group
      Default:
      ""
    • autoStartup

      String autoStartup
      The SmartLifecycle autoStartup option. Can be specified as 'property placeholder', e.g. ${foo.autoStartup}. Defaults to true.
      Returns:
      the auto startup boolean flag.
      Default:
      ""
    • phase

      String phase
      Specify a SmartLifecycle phase option. Defaults Integer.MAX_VALUE / 2 for PollingConsumer and Integer.MIN_VALUE for EventDrivenConsumer. Can be specified as 'property placeholder', e.g. ${foo.phase}.
      Returns:
      the SmartLifecycle phase.
      Default:
      ""
    • poller

      Poller poller
      Returns:
      the Poller options for a polled endpoint (PollerMetadata). Mutually exclusive with reactive().
      Default:
      @org.springframework.integration.annotation.Poller("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")
    • reactive

      Reactive reactive
      Returns:
      the Reactive marker for a consumer endpoint. Mutually exclusive with poller().
      Since:
      5.5
      Default:
      @org.springframework.integration.annotation.Reactive("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")