public class IdempotentConsumer extends ServiceSupport implements CamelContextAware, AsyncProcessor, Navigate<Processor>, IdAware
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending| Constructor and Description |
|---|
IdempotentConsumer(Expression messageIdExpression,
IdempotentRepository<String> idempotentRepository,
boolean eager,
boolean completionEager,
boolean skipDuplicate,
boolean removeOnFailure,
Processor processor) |
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Clear the idempotent repository
|
protected void |
doShutdown()
Implementations override this method to perform customized shutdown.
|
protected void |
doStart()
Implementations override this method to support customized start/stop.
|
protected void |
doStop()
Implementations override this method to support customized start/stop.
|
CamelContext |
getCamelContext()
Get the
CamelContext |
long |
getDuplicateMessageCount() |
String |
getId()
Returns the id
|
IdempotentRepository<String> |
getIdempotentRepository() |
Expression |
getMessageIdExpression() |
Processor |
getProcessor() |
boolean |
hasNext()
Are there more outputs?
Important only invoke this once, as this method do not carry state, and is not intended to be used in a while loop,
but used by a if statement instead.
|
boolean |
isCompletionEager() |
boolean |
isEager() |
boolean |
isRemoveOnFailure() |
boolean |
isSkipDuplicate() |
List<Processor> |
next()
Next group of outputs
Important only invoke this once, as this method do not carry state, and is not intended to be used in a while loop,
but used by a if statement instead.
|
protected void |
onDuplicateMessage(Exchange exchange,
String messageId)
A strategy method to allow derived classes to overload the behaviour of
processing a duplicate message
|
void |
process(Exchange exchange)
Processes the message exchange
|
boolean |
process(Exchange exchange,
AsyncCallback callback)
Processes the message exchange.
|
void |
resetDuplicateMessageCount()
Resets the duplicate message counter to
0L. |
void |
setCamelContext(CamelContext camelContext)
Injects the
CamelContext |
void |
setId(String id)
Sets the id
|
String |
toString() |
doResume, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspendpublic IdempotentConsumer(Expression messageIdExpression, IdempotentRepository<String> idempotentRepository, boolean eager, boolean completionEager, boolean skipDuplicate, boolean removeOnFailure, Processor processor)
public CamelContext getCamelContext()
CamelContextAwareCamelContextgetCamelContext in interface CamelContextAwarepublic void setCamelContext(CamelContext camelContext)
CamelContextAwareCamelContextsetCamelContext in interface CamelContextAwarecamelContext - the Camel contextpublic void process(Exchange exchange) throws Exception
Processorpublic boolean process(Exchange exchange, AsyncCallback callback)
AsyncProcessorProcessor.process(org.apache.camel.Exchange), but the caller supports having the exchange asynchronously processed.
If there was a failure processing then the caused Exception would be set on the Exchange.process in interface AsyncProcessorexchange - the message exchangecallback - the AsyncCallback will be invoked when the processing of the exchange is completed.
If the exchange is completed synchronously, then the callback is also invoked synchronously.
The callback should therefore be careful of starting recursive loop.public List<Processor> next()
Navigatepublic boolean hasNext()
Navigatepublic Expression getMessageIdExpression()
public IdempotentRepository<String> getIdempotentRepository()
public Processor getProcessor()
public long getDuplicateMessageCount()
protected void doStart() throws Exception
ServiceSupportServiceSupport.doStop() for more details.doStart in class ServiceSupportExceptionServiceSupport.doStop()protected void doStop() throws Exception
ServiceSupportServiceSupport.doStop() method when
the service is being stopped. This method will also be invoked
if the service is still in uninitialized state (eg has not
been started). The method is always called to allow the service
to do custom logic when the service is being stopped, such as when
CamelContext is shutting down.doStop in class ServiceSupportExceptionServiceSupport.doStart()protected void doShutdown() throws Exception
ServiceSupportdoShutdown in class ServiceSupportExceptionpublic boolean isEager()
public boolean isCompletionEager()
public boolean isSkipDuplicate()
public boolean isRemoveOnFailure()
public void resetDuplicateMessageCount()
0L.public void clear()
protected void onDuplicateMessage(Exchange exchange, String messageId)
exchange - the exchangemessageId - the message ID of this exchangeApache Camel