Class IdempotentConsumer

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.AsyncProcessorSupport
org.apache.camel.processor.idempotent.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.HasCamelContext, 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

    Modifier and Type
    Method
    Description
    void
    Clear the idempotent repository
    protected void
     
    protected void
     
    protected void
     
    org.apache.camel.CamelContext
     
    long
     
     
    org.apache.camel.spi.IdempotentRepository
     
    org.apache.camel.Expression
     
    org.apache.camel.Processor
     
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    List<org.apache.camel.Processor>
     
    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
    Resets the duplicate message counter to 0L.
    void
    setCamelContext(org.apache.camel.CamelContext camelContext)
     
    void
     
    void
    setRouteId(String routeId)
     
     

    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 class java.lang.Object

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

    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 Details

    • 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 Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getCamelContext

      public org.apache.camel.CamelContext getCamelContext()
      Specified by:
      getCamelContext in interface org.apache.camel.spi.HasCamelContext
    • 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.service.BaseService
      Throws:
      Exception
    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.service.BaseService
      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