org.apache.camel.model
Class OnCompletionDefinition

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

public class OnCompletionDefinition
extends ProcessorDefinition<OnCompletionDefinition>
implements ExecutorServiceAwareDefinition<OnCompletionDefinition>

Represents an XML <onCompletion/> element

Version:

Field Summary
 
Fields inherited from class org.apache.camel.model.ProcessorDefinition
inheritErrorHandler, log
 
Constructor Summary
OnCompletionDefinition()
           
 
Method Summary
 Processor createProcessor(RouteContext routeContext)
          Override this in definition class and implement logic to create the processor based on the definition model.
 ProcessorDefinition<?> end()
          Ends the current block
 OnCompletionDefinition executorService(ExecutorService executorService)
          Setting the executor service for executing
 OnCompletionDefinition executorServiceRef(String executorServiceRef)
          Setting the executor service for executing
 ExecutorService getExecutorService()
          Gets the executor service
 String getExecutorServiceRef()
          Gets the reference to lookup in the Registry for the executor service to be used.
 String getLabel()
          Returns a label to describe this node such as the expression if some kind of expression node
 Boolean getOnCompleteOnly()
           
 Processor getOnCompletion(String routeId)
           
 Collection<Processor> getOnCompletions()
           
 Boolean getOnFailureOnly()
           
 WhenDefinition getOnWhen()
           
 List<ProcessorDefinition<?>> getOutputs()
           
 String getShortName()
          Returns a short name for this node which can be useful for ID generation or referring to related resources like images
 Boolean getUseOriginalMessagePolicy()
           
 boolean isAbstract()
          Whether this model is abstract or not.
 boolean isOnCompleteOnly()
           
 boolean isOnFailureOnly()
           
 boolean isOutputSupported()
           
 boolean isRouteScoped()
           
 boolean isTopLevelOnly()
          Whether this definition can only be added as top-level directly on the route itself (such as onException,onCompletion,intercept, etc.)

If trying to add a top-level only definition to a nested output would fail in the ProcessorDefinition.addOutput(ProcessorDefinition) method.

 OnCompletionDefinition onCompleteOnly()
          Will only synchronize when the Exchange completed successfully (no errors).
 OnCompletionDefinition onFailureOnly()
          Will only synchronize when the Exchange ended with failure (exception or FAULT message).
 OnCompletionDefinition onWhen(Predicate predicate)
          Sets an additional predicate that should be true before the onCompletion is triggered.
 void removeAllOnCompletionDefinition(ProcessorDefinition<?> definition)
          Removes all existing OnCompletionDefinition from the definition.
 void setExecutorService(ExecutorService executorService)
          Sets the executor service to be used.
 void setExecutorServiceRef(String executorServiceRef)
          Sets a reference to lookup in the Registry for the executor service to be used.
 void setOnCompleteOnly(Boolean onCompleteOnly)
           
 void setOnFailureOnly(Boolean onFailureOnly)
           
 void setOnWhen(WhenDefinition onWhen)
           
 void setOutputs(List<ProcessorDefinition<?>> outputs)
           
 void setUseOriginalMessagePolicy(Boolean useOriginalMessagePolicy)
           
 String toString()
           
 OnCompletionDefinition useOriginalBody()
          Will use the original input body when an Exchange for this on completion.
 
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, beanRef, beanRef, choice, clearOutput, configureChild, convertBodyTo, convertBodyTo, createChannel, createChildProcessor, createCompositeProcessor, createOutputsProcessor, createOutputsProcessor, createProcessor, delay, delay, delay, doTry, dynamicRouter, dynamicRouter, endChoice, endDoTry, endParent, enrich, enrich, enrichRef, filter, filter, filter, filter, getIndex, getInterceptStrategies, getOtherAttributes, getParent, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, inOnly, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, inOut, isInheritErrorHandler, loadBalance, loadBalance, log, log, 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, pollEnrichRef, preCreateProcessor, 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, setOtherAttributes, setOutHeader, setOutHeader, setParent, setProperty, setProperty, sort, sort, sort, split, split, split, startupOrder, 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, isCustomId, setCustomId, setDescription, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OnCompletionDefinition

public OnCompletionDefinition()
Method Detail

isRouteScoped

public boolean isRouteScoped()

getOnCompletion

public Processor getOnCompletion(String routeId)

getOnCompletions

public Collection<Processor> getOnCompletions()

toString

public String toString()
Overrides:
toString in class Object

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 OptionalIdentifiedDefinition<OnCompletionDefinition>
Returns:
defaults to "node" but derived nodes should overload this to provide a unique name

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

Specified by:
getLabel in interface NamedNode
Overrides:
getLabel in class ProcessorDefinition<OnCompletionDefinition>

isAbstract

public boolean isAbstract()
Description copied from class: ProcessorDefinition
Whether this model is abstract or not.

An abstract model is something that is used for configuring cross cutting concerns such as error handling, transaction policies, interceptors etc.

Regular definitions is what is part of the route, such as ToDefinition, WireTapDefinition and the likes.

Will by default return false to indicate regular definition, so all the abstract definitions must override this method and return true instead.

This information is used in camel-spring to let Camel work a bit on the model provided by JAXB from the Spring XML file. This is needed to handle those cross cutting concerns properly. The Java DSL does not have this issue as it can work this out directly using the fluent builder methods.

Overrides:
isAbstract in class ProcessorDefinition<OnCompletionDefinition>
Returns:
true for abstract, otherwise false for regular.

isTopLevelOnly

public boolean isTopLevelOnly()
Description copied from class: ProcessorDefinition
Whether this definition can only be added as top-level directly on the route itself (such as onException,onCompletion,intercept, etc.)

If trying to add a top-level only definition to a nested output would fail in the ProcessorDefinition.addOutput(ProcessorDefinition) method.

Overrides:
isTopLevelOnly in class ProcessorDefinition<OnCompletionDefinition>

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<OnCompletionDefinition>
Throws:
Exception

removeAllOnCompletionDefinition

public void removeAllOnCompletionDefinition(ProcessorDefinition<?> definition)
Removes all existing OnCompletionDefinition from the definition.

This is used to let route scoped onCompletion overrule any global onCompletion. Hence we remove all existing as they are global.

Parameters:
definition - the parent definition that is the route

end

public ProcessorDefinition<?> end()
Description copied from class: ProcessorDefinition
Ends the current block

Overrides:
end in class ProcessorDefinition<OnCompletionDefinition>
Returns:
the builder

onCompleteOnly

public OnCompletionDefinition onCompleteOnly()
Will only synchronize when the Exchange completed successfully (no errors).

Returns:
the builder

onFailureOnly

public OnCompletionDefinition onFailureOnly()
Will only synchronize when the Exchange ended with failure (exception or FAULT message).

Returns:
the builder

onWhen

public OnCompletionDefinition onWhen(Predicate predicate)
Sets an additional predicate that should be true before the onCompletion is triggered.

To be used for fine grained controlling whether a completion callback should be invoked or not

Parameters:
predicate - predicate that determines true or false
Returns:
the builder

useOriginalBody

public OnCompletionDefinition useOriginalBody()
Will use the original input body when an Exchange for this on completion.

By default this feature is off.

Returns:
the builder

executorService

public OnCompletionDefinition executorService(ExecutorService executorService)
Description copied from interface: ExecutorServiceAwareDefinition
Setting the executor service for executing

Specified by:
executorService in interface ExecutorServiceAwareDefinition<OnCompletionDefinition>
Parameters:
executorService - the executor service
Returns:
the builder

executorServiceRef

public OnCompletionDefinition executorServiceRef(String executorServiceRef)
Description copied from interface: ExecutorServiceAwareDefinition
Setting the executor service for executing

Specified by:
executorServiceRef in interface ExecutorServiceAwareDefinition<OnCompletionDefinition>
Parameters:
executorServiceRef - reference for a ExecutorService to lookup in the Registry
Returns:
the builder

getOutputs

public List<ProcessorDefinition<?>> getOutputs()
Specified by:
getOutputs in class ProcessorDefinition<OnCompletionDefinition>

setOutputs

public void setOutputs(List<ProcessorDefinition<?>> outputs)

isOutputSupported

public boolean isOutputSupported()
Specified by:
isOutputSupported in class ProcessorDefinition<OnCompletionDefinition>

getOnCompleteOnly

public Boolean getOnCompleteOnly()

setOnCompleteOnly

public void setOnCompleteOnly(Boolean onCompleteOnly)

isOnCompleteOnly

public boolean isOnCompleteOnly()

getOnFailureOnly

public Boolean getOnFailureOnly()

setOnFailureOnly

public void setOnFailureOnly(Boolean onFailureOnly)

isOnFailureOnly

public boolean isOnFailureOnly()

getOnWhen

public WhenDefinition getOnWhen()

setOnWhen

public void setOnWhen(WhenDefinition onWhen)

getExecutorService

public ExecutorService getExecutorService()
Description copied from interface: ExecutorServiceAware
Gets the executor service

Specified by:
getExecutorService in interface ExecutorServiceAware
Returns:
the executor

setExecutorService

public void setExecutorService(ExecutorService executorService)
Description copied from interface: ExecutorServiceAware
Sets the executor service to be used.

Specified by:
setExecutorService in interface ExecutorServiceAware
Parameters:
executorService - the executor

getExecutorServiceRef

public String getExecutorServiceRef()
Description copied from interface: ExecutorServiceAware
Gets the reference to lookup in the Registry for the executor service to be used.

Specified by:
getExecutorServiceRef in interface ExecutorServiceAware
Returns:
the reference, or null if the executor was set directly

setExecutorServiceRef

public void setExecutorServiceRef(String executorServiceRef)
Description copied from interface: ExecutorServiceAware
Sets a reference to lookup in the Registry for the executor service to be used.

Specified by:
setExecutorServiceRef in interface ExecutorServiceAware
Parameters:
executorServiceRef - reference for the executor

getUseOriginalMessagePolicy

public Boolean getUseOriginalMessagePolicy()

setUseOriginalMessagePolicy

public void setUseOriginalMessagePolicy(Boolean useOriginalMessagePolicy)


Apache Camel