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:
-
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
ConstructorsConstructorDescriptionIdempotentConsumer(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 TypeMethodDescriptionvoidclear()Clear the idempotent repositoryprotected voidprotected voiddoStart()protected voiddoStop()org.apache.camel.CamelContextlonggetId()org.apache.camel.spi.IdempotentRepositoryorg.apache.camel.Expressionorg.apache.camel.ProcessorbooleanhasNext()booleanbooleanisEager()booleanbooleanList<org.apache.camel.Processor> next()protected voidonDuplicateMessage(org.apache.camel.Exchange exchange, String messageId) A strategy method to allow derived classes to overload the behaviour of processing a duplicate messagebooleanprocess(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) voidResets the duplicate message counter to0L.voidsetCamelContext(org.apache.camel.CamelContext camelContext) voidvoidsetRouteId(String routeId) toString()Methods inherited from class org.apache.camel.support.AsyncProcessorSupport
process, processAsyncMethods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doInit, doLifecycleChange, doResume, doSuspend, fail, getInternalLock, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.camel.spi.IdAware
setGeneratedIdMethods inherited from interface org.apache.camel.Service
build, close, init, start, stopMethods inherited from interface org.apache.camel.ShutdownableService
shutdownMethods inherited from interface org.apache.camel.StatefulService
getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspendingMethods 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
-
getCamelContext
public org.apache.camel.CamelContext getCamelContext()- Specified by:
getCamelContextin interfaceorg.apache.camel.spi.HasCamelContext
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext) - Specified by:
setCamelContextin interfaceorg.apache.camel.CamelContextAware
-
getId
- Specified by:
getIdin interfaceorg.apache.camel.spi.HasId
-
setId
- Specified by:
setIdin interfaceorg.apache.camel.spi.IdAware
-
getRouteId
- Specified by:
getRouteIdin interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
- Specified by:
setRouteIdin interfaceorg.apache.camel.spi.RouteIdAware
-
process
public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) - Specified by:
processin interfaceorg.apache.camel.AsyncProcessor
-
next
- Specified by:
nextin interfaceorg.apache.camel.Navigate<org.apache.camel.Processor>
-
hasNext
public boolean hasNext()- Specified by:
hasNextin interfaceorg.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
- Overrides:
doStartin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
doStop
- Overrides:
doStopin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
doShutdown
- Overrides:
doShutdownin classorg.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 to0L. -
clear
public void clear()Clear the idempotent repository -
onDuplicateMessage
A strategy method to allow derived classes to overload the behaviour of processing a duplicate message- Parameters:
exchange- the exchangemessageId- the message ID of this exchange
-