Class IdempotentConsumer

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.AsyncProcessor, org.apache.camel.CamelContextAware, org.apache.camel.Navigate<org.apache.camel.Processor>, org.apache.camel.Processor, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

    public class IdempotentConsumer
    extends org.apache.camel.support.AsyncProcessorSupport
    implements org.apache.camel.CamelContextAware, org.apache.camel.Navigate<org.apache.camel.Processor>, org.apache.camel.spi.IdAware, org.apache.camel.spi.RouteIdAware
    An implementation of the Idempotent Consumer pattern.

    This implementation supports idempotent repositories implemented as IdempotentRepository.

    See Also:
    IdempotentRepository
    • Field Summary

      • Fields inherited from class org.apache.camel.support.service.BaseService

        BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
    • Constructor Summary

      Constructors 
      Constructor Description
      IdempotentConsumer​(org.apache.camel.Expression messageIdExpression, org.apache.camel.spi.IdempotentRepository idempotentRepository, boolean eager, boolean completionEager, boolean skipDuplicate, boolean removeOnFailure, org.apache.camel.Processor processor)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Clear the idempotent repository
      protected void doShutdown()  
      protected void doStart()  
      protected void doStop()  
      org.apache.camel.CamelContext getCamelContext()  
      long getDuplicateMessageCount()  
      String getId()  
      org.apache.camel.spi.IdempotentRepository getIdempotentRepository()  
      org.apache.camel.Expression getMessageIdExpression()  
      org.apache.camel.Processor getProcessor()  
      String getRouteId()  
      boolean hasNext()  
      boolean isCompletionEager()  
      boolean isEager()  
      boolean isRemoveOnFailure()  
      boolean isSkipDuplicate()  
      List<org.apache.camel.Processor> next()  
      protected void onDuplicateMessage​(org.apache.camel.Exchange exchange, String messageId)
      A strategy method to allow derived classes to overload the behaviour of processing a duplicate message
      boolean process​(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)  
      void resetDuplicateMessageCount()
      Resets the duplicate message counter to 0L.
      void setCamelContext​(org.apache.camel.CamelContext camelContext)  
      void setId​(String id)  
      void setRouteId​(String routeId)  
      String toString()  
      • Methods inherited from class org.apache.camel.support.AsyncProcessorSupport

        process, processAsync
      • Methods inherited from class org.apache.camel.support.service.BaseService

        build, doBuild, doFail, doInit, doLifecycleChange, doResume, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
      • Methods inherited from interface org.apache.camel.spi.IdAware

        setGeneratedId
      • Methods inherited from interface org.apache.camel.Service

        build, close, init, start, stop
      • Methods inherited from interface org.apache.camel.ShutdownableService

        shutdown
      • Methods inherited from interface org.apache.camel.StatefulService

        getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending
      • Methods inherited from interface org.apache.camel.SuspendableService

        isSuspended, resume, suspend
    • Constructor Detail

      • IdempotentConsumer

        public IdempotentConsumer​(org.apache.camel.Expression messageIdExpression,
                                  org.apache.camel.spi.IdempotentRepository idempotentRepository,
                                  boolean eager,
                                  boolean completionEager,
                                  boolean skipDuplicate,
                                  boolean removeOnFailure,
                                  org.apache.camel.Processor processor)
    • Method Detail

      • getCamelContext

        public org.apache.camel.CamelContext getCamelContext()
        Specified by:
        getCamelContext in interface org.apache.camel.CamelContextAware
      • setCamelContext

        public void setCamelContext​(org.apache.camel.CamelContext camelContext)
        Specified by:
        setCamelContext in interface org.apache.camel.CamelContextAware
      • getId

        public String getId()
        Specified by:
        getId in interface org.apache.camel.spi.HasId
      • setId

        public void setId​(String id)
        Specified by:
        setId in interface org.apache.camel.spi.IdAware
      • getRouteId

        public String getRouteId()
        Specified by:
        getRouteId in interface org.apache.camel.spi.RouteIdAware
      • setRouteId

        public void setRouteId​(String routeId)
        Specified by:
        setRouteId in interface org.apache.camel.spi.RouteIdAware
      • process

        public boolean process​(org.apache.camel.Exchange exchange,
                               org.apache.camel.AsyncCallback callback)
        Specified by:
        process in interface org.apache.camel.AsyncProcessor
      • next

        public List<org.apache.camel.Processor> next()
        Specified by:
        next in interface org.apache.camel.Navigate<org.apache.camel.Processor>
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface org.apache.camel.Navigate<org.apache.camel.Processor>
      • getMessageIdExpression

        public org.apache.camel.Expression getMessageIdExpression()
      • getIdempotentRepository

        public org.apache.camel.spi.IdempotentRepository getIdempotentRepository()
      • getProcessor

        public org.apache.camel.Processor getProcessor()
      • getDuplicateMessageCount

        public long getDuplicateMessageCount()
      • doStart

        protected void doStart()
                        throws Exception
        Overrides:
        doStart in class org.apache.camel.support.AsyncProcessorSupport
        Throws:
        Exception
      • doStop

        protected void doStop()
                       throws Exception
        Overrides:
        doStop in class org.apache.camel.support.AsyncProcessorSupport
        Throws:
        Exception
      • doShutdown

        protected void doShutdown()
                           throws Exception
        Overrides:
        doShutdown in class org.apache.camel.support.service.BaseService
        Throws:
        Exception
      • isEager

        public boolean isEager()
      • isCompletionEager

        public boolean isCompletionEager()
      • isSkipDuplicate

        public boolean isSkipDuplicate()
      • isRemoveOnFailure

        public boolean isRemoveOnFailure()
      • resetDuplicateMessageCount

        public void resetDuplicateMessageCount()
        Resets the duplicate message counter to 0L.
      • clear

        public void clear()
        Clear the idempotent repository
      • onDuplicateMessage

        protected void onDuplicateMessage​(org.apache.camel.Exchange exchange,
                                          String messageId)
        A strategy method to allow derived classes to overload the behaviour of processing a duplicate message
        Parameters:
        exchange - the exchange
        messageId - the message ID of this exchange