Class MessageSourcePollerInterceptor

java.lang.Object
org.springframework.batch.integration.chunk.MessageSourcePollerInterceptor
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.messaging.support.ChannelInterceptor

public class MessageSourcePollerInterceptor extends Object implements org.springframework.messaging.support.ChannelInterceptor, org.springframework.beans.factory.InitializingBean
A ChannelInterceptor that turns a pollable channel into a "pass-thru channel": if a client calls receive() on the channel it will delegate to a MessageSource to pull the message directly from an external source. This is particularly useful in combination with a message channel in thread scope, in which case the receive() can join a transaction which was started by the caller.
Author:
Dave Syer
  • Constructor Summary

    Constructors
    Constructor
    Description
    Convenient default constructor for configuration purposes.
    MessageSourcePollerInterceptor(org.springframework.integration.core.MessageSource<?> source)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Asserts that mandatory properties are set.
    boolean
    preReceive(org.springframework.messaging.MessageChannel channel)
    Receive from the MessageSource and send immediately to the input channel, so that the call that we are intercepting always a message to receive.
    void
    setChannel(org.springframework.messaging.MessageChannel channel)
    Optional MessageChannel for injecting the message received from the source (defaults to the channel intercepted in preReceive(MessageChannel)).
    void
    setMessageSource(org.springframework.integration.core.MessageSource<?> source)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.messaging.support.ChannelInterceptor

    afterReceiveCompletion, afterSendCompletion, postReceive, postSend, preSend
  • Constructor Details

    • MessageSourcePollerInterceptor

      public MessageSourcePollerInterceptor()
      Convenient default constructor for configuration purposes.
    • MessageSourcePollerInterceptor

      public MessageSourcePollerInterceptor(org.springframework.integration.core.MessageSource<?> source)
      Parameters:
      source - a message source to poll for messages on receive.
  • Method Details

    • setChannel

      public void setChannel(org.springframework.messaging.MessageChannel channel)
      Optional MessageChannel for injecting the message received from the source (defaults to the channel intercepted in preReceive(MessageChannel)).
      Parameters:
      channel - the channel to set
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Asserts that mandatory properties are set.
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
      See Also:
      • InitializingBean.afterPropertiesSet()
    • setMessageSource

      public void setMessageSource(org.springframework.integration.core.MessageSource<?> source)
      Parameters:
      source - a message source to poll for messages on receive.
    • preReceive

      public boolean preReceive(org.springframework.messaging.MessageChannel channel)
      Receive from the MessageSource and send immediately to the input channel, so that the call that we are intercepting always a message to receive.
      Specified by:
      preReceive in interface org.springframework.messaging.support.ChannelInterceptor
      See Also:
      • ChannelInterceptor.preReceive(MessageChannel)