org.apache.camel.model
Class IdempotentConsumerDefinition

java.lang.Object
  extended by org.apache.camel.model.OptionalIdentifiedDefinition<Type>
      extended by org.apache.camel.model.ProcessorDefinition<ExpressionNode>
          extended by org.apache.camel.model.ExpressionNode
              extended by org.apache.camel.model.IdempotentConsumerDefinition
All Implemented Interfaces:
Block, NamedNode

public class IdempotentConsumerDefinition
extends ExpressionNode

Represents an XML <idempotentConsumer/> element


Field Summary
 
Fields inherited from class org.apache.camel.model.ProcessorDefinition
inheritErrorHandler, log
 
Constructor Summary
IdempotentConsumerDefinition()
           
IdempotentConsumerDefinition(Expression messageIdExpression, IdempotentRepository<?> idempotentRepository)
           
 
Method Summary
 Processor createProcessor(RouteContext routeContext)
          Override this in definition class and implement logic to create the processor based on the definition model.
 IdempotentConsumerDefinition eager(boolean eager)
          Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete.
 Boolean getEager()
           
 String getLabel()
          Returns a label to describe this node such as the expression if some kind of expression node
 IdempotentRepository<?> getMessageIdRepository()
           
 String getMessageIdRepositoryRef()
           
 Boolean getRemoveOnFailure()
           
 String getShortName()
          Returns a short name for this node which can be useful for ID generation or referring to related resources like images
 Boolean getSkipDuplicate()
           
 boolean isEager()
           
 boolean isRemoveOnFailure()
           
 boolean isSkipDuplicate()
           
 IdempotentConsumerDefinition messageIdRepository(IdempotentRepository<?> idempotentRepository)
          Sets the the message id repository for the idempotent consumer
 IdempotentConsumerDefinition messageIdRepositoryRef(String messageIdRepositoryRef)
          Sets the reference name of the message id repository
 IdempotentConsumerDefinition removeOnFailure(boolean removeOnFailure)
          Sets whether to remove or keep the key on failure.
protected  IdempotentRepository<?> resolveMessageIdRepository(RouteContext routeContext)
          Strategy method to resolve the IdempotentRepository to use
 void setEager(Boolean eager)
           
 void setMessageIdRepository(IdempotentRepository<?> idempotentRepository)
           
 void setMessageIdRepositoryRef(String messageIdRepositoryRef)
           
 void setRemoveOnFailure(Boolean removeOnFailure)
           
 void setSkipDuplicate(Boolean skipDuplicate)
           
 IdempotentConsumerDefinition skipDuplicate(boolean skipDuplicate)
          Sets whether to skip duplicates or not.
 String toString()
           
 
Methods inherited from class org.apache.camel.model.ExpressionNode
configureChild, createFilterProcessor, createPredicate, getExpression, getOutputs, isOutputSupported, preCreateProcessor, setExpression, setOutputs
 
Methods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategies, addInterceptStrategy, addOutput, addRoutes, aggregate, aggregate, aggregate, aggregate, aop, attribute, bean, bean, bean, bean, beanRef, beanRef, choice, clearOutput, convertBodyTo, convertBodyTo, createChannel, createChildProcessor, createCompositeProcessor, createOutputsProcessor, createOutputsProcessor, delay, delay, delay, doTry, dynamicRouter, dynamicRouter, end, endChoice, endDoTry, endParent, enrich, enrich, enrichRef, filter, filter, filter, filter, getInterceptStrategies, getNodeFactory, getOtherAttributes, getParent, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, inOnly, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, inOut, isAbstract, isInheritErrorHandler, loadBalance, loadBalance, log, log, log, log, loop, loop, loop, makeProcessor, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, onCompletion, onException, onException, pipeline, pipeline, pipeline, pipeline, placeholder, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichRef, process, processRef, recipientList, recipientList, recipientList, recipientList, removeFaultHeader, removeHeader, removeHeaders, removeHeaders, removeProperty, resequence, resequence, resolveKnownConstantFields, resolvePropertyPlaceholders, rollback, rollback, routeId, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, routingSlip, sample, sample, sample, setBody, setBody, setExchangePattern, setFaultBody, setFaultHeader, setHeader, setHeader, setInheritErrorHandler, setNodeFactory, setOtherAttributes, setOutHeader, setOutHeader, setParent, setProperty, setProperty, sort, sort, sort, split, split, split, stop, threads, threads, threads, threads, throttle, throttle, throwException, to, to, to, to, to, to, to, to, to, to, toF, transacted, transacted, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTap, wireTap, wireTap, wireTap, wireTap, wrapChannel, wrapInErrorHandler, wrapProcessor
 
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, getDescription, getDescriptionText, getId, hasCustomIdAssigned, idOrCreate, setDescription, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IdempotentConsumerDefinition

public IdempotentConsumerDefinition()

IdempotentConsumerDefinition

public IdempotentConsumerDefinition(Expression messageIdExpression,
                                    IdempotentRepository<?> idempotentRepository)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getLabel

public String getLabel()
Description copied from class: ProcessorDefinition
Returns a label to describe this node such as the expression if some kind of expression node

Overrides:
getLabel in class ExpressionNode

getShortName

public String getShortName()
Description copied from class: OptionalIdentifiedDefinition
Returns a short name for this node which can be useful for ID generation or referring to related resources like images

Specified by:
getShortName in interface NamedNode
Overrides:
getShortName in class ExpressionNode
Returns:
defaults to "node" but derived nodes should overload this to provide a unique name

messageIdRepositoryRef

public IdempotentConsumerDefinition messageIdRepositoryRef(String messageIdRepositoryRef)
Sets the reference name of the message id repository

Parameters:
messageIdRepositoryRef - the reference name of message id repository
Returns:
builder

messageIdRepository

public IdempotentConsumerDefinition messageIdRepository(IdempotentRepository<?> idempotentRepository)
Sets the the message id repository for the idempotent consumer

Parameters:
idempotentRepository - the repository instance of idempotent
Returns:
builder

eager

public IdempotentConsumerDefinition eager(boolean eager)
Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete. Eager is default enabled.

Parameters:
eager - true to add the key before processing, false to wait until the exchange is complete.
Returns:
builder

removeOnFailure

public IdempotentConsumerDefinition removeOnFailure(boolean removeOnFailure)
Sets whether to remove or keep the key on failure.

The default behavior is to remove the key on failure.

Parameters:
removeOnFailure - true to remove the key, false to keep the key if the exchange fails.
Returns:
builder

skipDuplicate

public IdempotentConsumerDefinition skipDuplicate(boolean skipDuplicate)
Sets whether to skip duplicates or not.

The default behavior is to skip duplicates.

A duplicate message would have the Exchange property Exchange.DUPLICATE_MESSAGE set to a Boolean.TRUE value. A none duplicate message will not have this property set.

Parameters:
skipDuplicate - true to skip duplicates, false to allow duplicates.
Returns:
builder

getMessageIdRepositoryRef

public String getMessageIdRepositoryRef()

setMessageIdRepositoryRef

public void setMessageIdRepositoryRef(String messageIdRepositoryRef)

getMessageIdRepository

public IdempotentRepository<?> getMessageIdRepository()

setMessageIdRepository

public void setMessageIdRepository(IdempotentRepository<?> idempotentRepository)

getEager

public Boolean getEager()

setEager

public void setEager(Boolean eager)

isEager

public boolean isEager()

getSkipDuplicate

public Boolean getSkipDuplicate()

setSkipDuplicate

public void setSkipDuplicate(Boolean skipDuplicate)

isSkipDuplicate

public boolean isSkipDuplicate()

getRemoveOnFailure

public Boolean getRemoveOnFailure()

setRemoveOnFailure

public void setRemoveOnFailure(Boolean removeOnFailure)

isRemoveOnFailure

public boolean isRemoveOnFailure()

createProcessor

public Processor createProcessor(RouteContext routeContext)
                          throws Exception
Description copied from class: ProcessorDefinition
Override this in definition class and implement logic to create the processor based on the definition model.

Overrides:
createProcessor in class ProcessorDefinition<ExpressionNode>
Throws:
Exception

resolveMessageIdRepository

protected IdempotentRepository<?> resolveMessageIdRepository(RouteContext routeContext)
Strategy method to resolve the IdempotentRepository to use

Parameters:
routeContext - route context
Returns:
the repository


Apache CAMEL