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
ConstructorDescriptionIdempotentConsumer
(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 TypeMethodDescriptionvoid
clear()
Clear the idempotent repositoryprotected void
protected void
doStart()
protected void
doStop()
org.apache.camel.CamelContext
long
getId()
org.apache.camel.spi.IdempotentRepository
org.apache.camel.Expression
org.apache.camel.Processor
boolean
hasNext()
boolean
boolean
isEager()
boolean
boolean
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 messageboolean
process
(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) void
Resets the duplicate message counter to0L
.void
setCamelContext
(org.apache.camel.CamelContext camelContext) void
void
setRouteId
(String routeId) 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 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
-
getCamelContext
public org.apache.camel.CamelContext getCamelContext()- Specified by:
getCamelContext
in interfaceorg.apache.camel.spi.HasCamelContext
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext) - Specified by:
setCamelContext
in interfaceorg.apache.camel.CamelContextAware
-
getId
- Specified by:
getId
in interfaceorg.apache.camel.spi.HasId
-
setId
- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
-
getRouteId
- Specified by:
getRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
- Specified by:
setRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
process
public boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback) - Specified by:
process
in interfaceorg.apache.camel.AsyncProcessor
-
next
- Specified by:
next
in interfaceorg.apache.camel.Navigate<org.apache.camel.Processor>
-
hasNext
public boolean hasNext()- Specified by:
hasNext
in 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:
doStart
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
doStop
- Overrides:
doStop
in classorg.apache.camel.support.service.BaseService
- Throws:
Exception
-
doShutdown
- Overrides:
doShutdown
in 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
-