Class JmsItemReader<T>

  • All Implemented Interfaces:
    ItemReader<T>, org.springframework.beans.factory.InitializingBean

    public class JmsItemReader<T>
    extends java.lang.Object
    implements ItemReader<T>, org.springframework.beans.factory.InitializingBean
    An ItemReader for JMS using a JmsTemplate. The template should have a default destination, which will be used to provide items in read().

    The implementation is thread-safe after its properties are set (normal singleton behavior).
    Author:
    Dave Syer
    • Field Summary

      Fields 
      Modifier and TypeFieldDescription
      protected java.lang.Class<? extends T>itemType 
      protected org.springframework.jms.core.JmsOperationsjmsTemplate 
      protected org.apache.commons.logging.Loglogger 
    • Constructor Summary

      Constructors 
      ConstructorDescription
      JmsItemReader() 
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidafterPropertiesSet() 
      Tread()
      Reads a piece of input data and advance to the next one.
      voidsetItemType​(java.lang.Class<? extends T> itemType)
      Set the expected type of incoming message payloads.
      voidsetJmsTemplate​(org.springframework.jms.core.JmsOperations jmsTemplate)
      Setter for JMS template.
      • Methods inherited from class java.lang.Object

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

      • logger

        protected org.apache.commons.logging.Log logger
      • itemType

        protected java.lang.Class<? extends T> itemType
      • jmsTemplate

        protected org.springframework.jms.core.JmsOperations jmsTemplate
    • Constructor Detail

      • JmsItemReader

        public JmsItemReader()
    • Method Detail

      • setJmsTemplate

        public void setJmsTemplate​(org.springframework.jms.core.JmsOperations jmsTemplate)
        Setter for JMS template.
        Parameters:
        jmsTemplate - a JmsOperations instance
      • setItemType

        public void setItemType​(java.lang.Class<? extends T> itemType)
        Set the expected type of incoming message payloads. Set this to Message to receive the raw underlying message.
        Parameters:
        itemType - the java class of the items to be delivered. Typically the same as the class parameter
        Throws:
        java.lang.IllegalStateException - if the message payload is of the wrong type.
      • read

        public T read()
        Description copied from interface: ItemReader
        Reads a piece of input data and advance to the next one. Implementations must return null at the end of the input data set. In a transactional setting, caller might get the same item twice from successive calls (or otherwise), if the first call was in a transaction that rolled back.
        Specified by:
        read in interface ItemReader<T>
        Returns:
        T the item to be processed or null if the data source is exhausted
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception