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.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 asIdempotentRepository
.- See Also:
IdempotentRepository
-
-
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 repositoryprotected 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 messageboolean
process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
void
resetDuplicateMessageCount()
Resets the duplicate message counter to0L
.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.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
-
-
-
-
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 interfaceorg.apache.camel.CamelContextAware
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext)
- Specified by:
setCamelContext
in interfaceorg.apache.camel.CamelContextAware
-
getId
public String getId()
- Specified by:
getId
in interfaceorg.apache.camel.spi.HasId
-
setId
public void setId(String id)
- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
-
getRouteId
public String getRouteId()
- Specified by:
getRouteId
in interfaceorg.apache.camel.spi.RouteIdAware
-
setRouteId
public void setRouteId(String routeId)
- 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
public List<org.apache.camel.Processor> 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
protected void doStart() throws Exception
- Overrides:
doStart
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
doStop
protected void doStop() throws Exception
- Overrides:
doStop
in classorg.apache.camel.support.AsyncProcessorSupport
- Throws:
Exception
-
doShutdown
protected void doShutdown() throws Exception
- 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
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 exchangemessageId
- the message ID of this exchange
-
-