Class GenericJmsConsumer

  • All Implemented Interfaces:
    javax.jms.MessageListener, org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>, org.ikasan.spec.component.endpoint.EndpointListener<javax.jms.Message,​java.lang.Throwable>, org.ikasan.spec.component.endpoint.MultiThreadedCapable, org.ikasan.spec.component.transformation.Converter<javax.jms.Message,​java.lang.Object>, org.ikasan.spec.configuration.Configured<GenericJmsConsumerConfiguration>, org.ikasan.spec.configuration.ConfiguredResource<GenericJmsConsumerConfiguration>, org.ikasan.spec.management.ManagedIdentifierService<org.ikasan.spec.event.ManagedRelatedEventIdentifierService>, org.ikasan.spec.resubmission.ResubmissionService<javax.jms.Message>

    public class GenericJmsConsumer
    extends java.lang.Object
    implements org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>, javax.jms.MessageListener, org.ikasan.spec.management.ManagedIdentifierService<org.ikasan.spec.event.ManagedRelatedEventIdentifierService>, org.ikasan.spec.component.endpoint.EndpointListener<javax.jms.Message,​java.lang.Throwable>, org.ikasan.spec.configuration.ConfiguredResource<GenericJmsConsumerConfiguration>, org.ikasan.spec.resubmission.ResubmissionService<javax.jms.Message>, org.ikasan.spec.component.transformation.Converter<javax.jms.Message,​java.lang.Object>, org.ikasan.spec.component.endpoint.MultiThreadedCapable
    Implementation of a generic client consumer based on the JMS specification.
    Author:
    Ikasan Development Team
    • Field Detail

      • connectionFactory

        protected javax.jms.ConnectionFactory connectionFactory
        JMS Connection Factory
      • destination

        protected javax.jms.Destination destination
        JMS Destination instance
      • connection

        protected javax.jms.Connection connection
        JMS Connection
      • session

        protected javax.jms.Session session
        session has to be closed prior to connection being closed
      • flowEventFactory

        protected org.ikasan.spec.event.EventFactory<org.ikasan.spec.flow.FlowEvent<?,​?>> flowEventFactory
        consumer event factory
      • eventListener

        protected org.ikasan.spec.event.EventListener eventListener
        consumer event listener
      • managedEventIdentifierService

        protected org.ikasan.spec.event.ManagedRelatedEventIdentifierService<?,​javax.jms.Message> managedEventIdentifierService
        default event identifier service - can be overridden via the setter
      • configuredResourceId

        protected java.lang.String configuredResourceId
        configured resource id
      • messageListener

        protected javax.jms.MessageListener messageListener
        tech endpoint listener for callbacks from the endpoint
      • destinationResolver

        protected DestinationResolver destinationResolver
        destination resolver for locating and returning the configured destination instance
      • messageConsumer

        protected javax.jms.MessageConsumer messageConsumer
        session message consumer
      • resubmissionEventFactory

        protected org.ikasan.spec.resubmission.ResubmissionEventFactory<org.ikasan.spec.event.Resubmission> resubmissionEventFactory
        resubmission event factory
    • Constructor Detail

      • GenericJmsConsumer

        public GenericJmsConsumer()
        Default constructor
      • GenericJmsConsumer

        public GenericJmsConsumer​(javax.jms.ConnectionFactory connectionFactory,
                                  javax.jms.Destination destination)
        Constructor
        Parameters:
        connectionFactory -
        destination -
      • GenericJmsConsumer

        public GenericJmsConsumer​(javax.jms.ConnectionFactory connectionFactory,
                                  DestinationResolver destinationResolver)
        Constructor
        Parameters:
        connectionFactory -
        destinationResolver -
    • Method Detail

      • setMessageListener

        public void setMessageListener​(javax.jms.MessageListener messageListener)
      • setEventFactory

        public void setEventFactory​(org.ikasan.spec.event.EventFactory flowEventFactory)
        Specified by:
        setEventFactory in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>
      • start

        public void start()
        Start the underlying JMS
        Specified by:
        start in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>
      • isActive

        public boolean isActive()
        Specified by:
        isActive in interface org.ikasan.spec.component.endpoint.EndpointListener<javax.jms.Message,​java.lang.Throwable>
      • stop

        public void stop()
        Stop the underlying JMS
        Specified by:
        stop in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>
      • isRunning

        public boolean isRunning()
        Is the underlying JMS actively running
        Specified by:
        isRunning in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>
        Returns:
        boolean
      • setListener

        public void setListener​(org.ikasan.spec.event.EventListener eventListener)
        Set the consumer event listener
        Specified by:
        setListener in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>
        Parameters:
        eventListener -
      • setManagedIdentifierService

        public void setManagedIdentifierService​(org.ikasan.spec.event.ManagedRelatedEventIdentifierService managedEventIdentifierService)
        Override the default consumer event life identifier service
        Specified by:
        setManagedIdentifierService in interface org.ikasan.spec.management.ManagedIdentifierService<org.ikasan.spec.event.ManagedRelatedEventIdentifierService>
        Parameters:
        managedEventIdentifierService -
      • onMessage

        public void onMessage​(javax.jms.Message message)
        Callback method from the underlying JMS tech. On invocation this method creates a flowEvent from the tech specific message and invokes the event listener.
        Specified by:
        onMessage in interface org.ikasan.spec.component.endpoint.EndpointListener<javax.jms.Message,​java.lang.Throwable>
        Specified by:
        onMessage in interface javax.jms.MessageListener
      • onResubmission

        public void onResubmission​(javax.jms.Message event)
        Specified by:
        onResubmission in interface org.ikasan.spec.resubmission.ResubmissionService<javax.jms.Message>
      • setResubmissionEventFactory

        public void setResubmissionEventFactory​(org.ikasan.spec.resubmission.ResubmissionEventFactory resubmissionEventFactory)
        Specified by:
        setResubmissionEventFactory in interface org.ikasan.spec.resubmission.ResubmissionService<javax.jms.Message>
      • convert

        public java.lang.Object convert​(javax.jms.Message message)
                                 throws org.ikasan.spec.component.transformation.TransformationException
        Specified by:
        convert in interface org.ikasan.spec.component.transformation.Converter<javax.jms.Message,​java.lang.Object>
        Throws:
        org.ikasan.spec.component.transformation.TransformationException
      • onException

        public void onException​(java.lang.Throwable jmsException)
        Callback method from the JMS connector for exception reporting.
        Specified by:
        onException in interface org.ikasan.spec.component.endpoint.EndpointListener<javax.jms.Message,​java.lang.Throwable>
        Parameters:
        jmsException -
      • getConfiguredResourceId

        public java.lang.String getConfiguredResourceId()
        Specified by:
        getConfiguredResourceId in interface org.ikasan.spec.configuration.ConfiguredResource<GenericJmsConsumerConfiguration>
      • setConfiguredResourceId

        public void setConfiguredResourceId​(java.lang.String configuredResourceId)
        Specified by:
        setConfiguredResourceId in interface org.ikasan.spec.configuration.ConfiguredResource<GenericJmsConsumerConfiguration>
      • getEventFactory

        public org.ikasan.spec.event.EventFactory getEventFactory()
        Specified by:
        getEventFactory in interface org.ikasan.spec.component.endpoint.Consumer<org.ikasan.spec.event.EventListener<?>,​org.ikasan.spec.event.EventFactory>