Package org.springframework.batch.integration.chunk

# 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
  `MessageSourcePollerInterceptor()`
  Convenient default constructor for configuration purposes.
  `MessageSourcePollerInterceptor(org.springframework.integration.core.MessageSource<?> source)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `afterPropertiesSet()`
  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)`