Class AbstractAggregatingMessageGroupProcessor

java.lang.Object
org.springframework.integration.aggregator.AbstractAggregatingMessageGroupProcessor
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, MessageGroupProcessor
Direct Known Subclasses:
DefaultAggregatingMessageGroupProcessor, ExpressionEvaluatingMessageGroupProcessor, MethodInvokingMessageGroupProcessor

public abstract class AbstractAggregatingMessageGroupProcessor
extends java.lang.Object
implements MessageGroupProcessor, org.springframework.beans.factory.BeanFactoryAware
Base class for MessageGroupProcessor implementations that aggregate the group of Messages into a single Message.
Since:
2.0
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected org.apache.commons.logging.Log logger  
  • Constructor Summary

    Constructors 
    Constructor Description
    AbstractAggregatingMessageGroupProcessor()  
  • Method Summary

    Modifier and Type Method Description
    protected java.util.Map<java.lang.String,​java.lang.Object> aggregateHeaders​(MessageGroup group)
    This default implementation simply returns all headers that have no conflicts among the group.
    protected abstract java.lang.Object aggregatePayloads​(MessageGroup group, java.util.Map<java.lang.String,​java.lang.Object> defaultHeaders)  
    protected java.util.function.Function<MessageGroup,​java.util.Map<java.lang.String,​java.lang.Object>> getHeadersFunction()  
    protected MessageBuilderFactory getMessageBuilderFactory()  
    java.lang.Object processMessageGroup​(MessageGroup group)
    Process the given MessageGroup.
    void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)  
    void setHeadersFunction​(java.util.function.Function<MessageGroup,​java.util.Map<java.lang.String,​java.lang.Object>> headersFunction)
    Specify a Function to map MessageGroup into composed headers for output message.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • logger

      protected final org.apache.commons.logging.Log logger
  • Constructor Details

  • Method Details

    • setBeanFactory

      public void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
      Specified by:
      setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
      Throws:
      org.springframework.beans.BeansException
    • setHeadersFunction

      public void setHeadersFunction​(java.util.function.Function<MessageGroup,​java.util.Map<java.lang.String,​java.lang.Object>> headersFunction)
      Specify a Function to map MessageGroup into composed headers for output message.
      Parameters:
      headersFunction - the Function to use.
      Since:
      5.2
    • getHeadersFunction

      protected java.util.function.Function<MessageGroup,​java.util.Map<java.lang.String,​java.lang.Object>> getHeadersFunction()
    • getMessageBuilderFactory

      protected MessageBuilderFactory getMessageBuilderFactory()
    • processMessageGroup

      public final java.lang.Object processMessageGroup​(MessageGroup group)
      Description copied from interface: MessageGroupProcessor
      Process the given MessageGroup. Implementations are free to return as few or as many messages based on the invocation as needed. For example an aggregating processor will return only a single message representing the group, while a resequencing processor will return all messages whose preceding sequence has been satisfied.

      If a multiple messages are returned the return value must be a Collection<Message>.

      Specified by:
      processMessageGroup in interface MessageGroupProcessor
      Parameters:
      group - The message group.
      Returns:
      The result of processing the group.
    • aggregateHeaders

      protected java.util.Map<java.lang.String,​java.lang.Object> aggregateHeaders​(MessageGroup group)
      This default implementation simply returns all headers that have no conflicts among the group. An absent header on one or more Messages within the group is not considered a conflict. Subclasses may override this method with more advanced conflict-resolution strategies if necessary.
      Parameters:
      group - The message group.
      Returns:
      The aggregated headers.
    • aggregatePayloads

      protected abstract java.lang.Object aggregatePayloads​(MessageGroup group, java.util.Map<java.lang.String,​java.lang.Object> defaultHeaders)