org.springframework.batch.integration.chunk

## Class MessageSourcePollerInterceptor

- java.lang.Object
- - org.springframework.messaging.support.ChannelInterceptorAdapter
  - - org.springframework.batch.integration.chunk.MessageSourcePollerInterceptor

- All Implemented Interfaces:
    org.springframework.beans.factory.InitializingBean, org.springframework.messaging.support.ChannelInterceptor

      public class MessageSourcePollerInterceptor
      extends org.springframework.messaging.support.ChannelInterceptorAdapter
      implements 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 and Description
    `MessageSourcePollerInterceptor()` Convenient default constructor for configuration purposes.
    `MessageSourcePollerInterceptor(org.springframework.integration.core.MessageSource<?> source)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 org.springframework.messaging.support.ChannelInterceptorAdapter

      `postReceive, postSend, preSend`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### 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 Detail

    - #### 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 java.lang.Exception

      Asserts that mandatory properties are set.
      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `java.lang.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`
      Overrides:
        `preReceive` in class `org.springframework.messaging.support.ChannelInterceptorAdapter`
      See Also:
        `ChannelInterceptorAdapter.preReceive(MessageChannel)`