Package org.apache.camel.model
Class SagaDefinition
java.lang.Object
- All Implemented Interfaces:
org.apache.camel.CamelContextAware,org.apache.camel.LineNumberAware,Block,OutputNode,org.apache.camel.NamedNode,org.apache.camel.spi.HasCamelContext,org.apache.camel.spi.HasId,org.apache.camel.spi.IdAware
Enables Sagas on the route
-
Field Summary
Fields inherited from class org.apache.camel.model.OutputDefinition
outputsFields inherited from class org.apache.camel.model.ProcessorDefinition
disabled, inheritErrorHandler -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncompensation(String compensation) completion(String completion) completionMode(String completionMode) completionMode(SagaCompletionMode completionMode) protected StringgetLabel()Returns a label to describe this node such as the expression if some kind of expression nodeorg.apache.camel.saga.CamelSagaServicebooleanWhether this model is abstract or not.booleanWhether this definition can only be added as top-level directly on the route itself (such as onException,onCompletion,intercept, etc.)booleanWhether this definition is wrapping the entire output.propagation(SagaPropagation propagation) sagaService(String sagaService) sagaService(org.apache.camel.saga.CamelSagaService sagaService) voidsetCompensation(SagaActionUriDefinition compensation) The compensation endpoint URI that must be called to compensate all changes done in the route.voidsetCompletion(SagaActionUriDefinition completion) The completion endpoint URI that will be called when the Saga is completed successfully.voidsetCompletionMode(String completionMode) Determine how the saga should be considered complete.voidsetOptions(List<PropertyExpressionDefinition> options) Allows to save properties of the current exchange in order to re-use them in a compensation/completion callback route.voidsetOutputs(List<ProcessorDefinition<?>> outputs) voidsetPropagation(String propagation) Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER).voidsetSagaService(String sagaService) Refers to the id to lookup in the registry for the specific CamelSagaService to use.voidsetTimeout(String timeout) Set the maximum amount of time for the Saga.toString()Methods inherited from class org.apache.camel.model.OutputDefinition
getShortNameMethods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategy, addOutput, aggregate, aggregate, aggregate, aggregate, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, choice, circuitBreaker, claimCheck, claimCheck, claimCheck, claimCheck, clearOutput, configureChild, convertBodyTo, convertBodyTo, convertBodyTo, convertHeaderTo, convertHeaderTo, convertHeaderTo, delay, delay, delay, disabled, disabled, disabled, doTry, dynamicRouter, dynamicRouter, end, endChoice, endCircuitBreaker, endDoCatch, endDoTry, endParent, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, filter, filter, filter, filter, getDisabled, getIndex, getInterceptStrategies, getParent, getRouteConfiguration, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, isInheritErrorHandler, kamelet, loadBalance, loadBalance, log, log, log, log, log, log, loop, loop, loop, loopDoWhile, loopDoWhile, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, nodePrefixId, onCompletion, onException, onException, onException, onException, pausable, pausable, pausable, pausable, pipeline, pipeline, pipeline, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, preCreateProcessor, process, process, process, recipientList, recipientList, recipientList, recipientList, removeHeader, removeHeaders, removeHeaders, removeProperties, removeProperties, removeProperty, resequence, resequence, resumable, resumable, resumable, rollback, rollback, routeDescription, routeGroup, routeId, routingSlip, routingSlip, routingSlip, saga, sample, sample, sample, sample, script, script, serviceCall, serviceCall, serviceCall, setBody, setBody, setBody, setDisabled, setExchangePattern, setExchangePattern, setHeader, setHeader, setHeader, setHeaders, setInheritErrorHandler, setParent, setProperty, setProperty, setProperty, setRouteConfiguration, sort, sort, sort, split, split, split, split, startupOrder, step, step, stop, threads, threads, threads, threads, throttle, throttle, throttle, throttle, throttle, throwException, throwException, to, to, to, to, to, to, to, to, to, to, to, to, toD, toD, toD, toD, toD, toD, toD, toF, transacted, transacted, transform, transform, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTapMethods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, getCamelContext, getCustomId, getDescription, getDescriptionText, getId, getLineNumber, getLocation, getNodePrefixId, hasCustomIdAssigned, idOrCreate, setCamelContext, setCustomId, setDescription, setGeneratedId, setId, setLineNumber, setLocation
-
Constructor Details
-
SagaDefinition
public SagaDefinition()
-
-
Method Details
-
getOutputs
- Overrides:
getOutputsin classOutputDefinition<SagaDefinition>
-
setOutputs
- Overrides:
setOutputsin classOutputDefinition<SagaDefinition>
-
isAbstract
public boolean isAbstract()Description copied from class:ProcessorDefinitionWhether 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:
isAbstractin classProcessorDefinition<SagaDefinition>- Returns:
- true for abstract, otherwise false for regular.
-
isTopLevelOnly
public boolean isTopLevelOnly()Description copied from class:ProcessorDefinitionWhether 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 theProcessorDefinition.addOutput(ProcessorDefinition)method.- Overrides:
isTopLevelOnlyin classProcessorDefinition<SagaDefinition>
-
isWrappingEntireOutput
public boolean isWrappingEntireOutput()Description copied from class:ProcessorDefinitionWhether this definition is wrapping the entire output. When a definition is wrapping the entire output, the check to ensure that a route definition is empty should be done on the wrapped output.- Overrides:
isWrappingEntireOutputin classProcessorDefinition<SagaDefinition>- Returns:
- true when wrapping the entire output.
-
getLabel
Description copied from class:ProcessorDefinitionReturns a label to describe this node such as the expression if some kind of expression node- Specified by:
getLabelin interfaceorg.apache.camel.NamedNode- Overrides:
getLabelin classProcessorDefinition<SagaDefinition>
-
toString
- Overrides:
toStringin classOutputDefinition<SagaDefinition>
-
getSagaServiceBean
public org.apache.camel.saga.CamelSagaService getSagaServiceBean() -
getSagaService
-
setSagaService
Refers to the id to lookup in the registry for the specific CamelSagaService to use. -
getCompensation
-
setCompensation
The compensation endpoint URI that must be called to compensate all changes done in the route. The route corresponding to the compensation URI must perform compensation and complete without error. If errors occur during compensation, the saga service may call again the compensation URI to retry. -
getCompletion
-
setCompletion
The completion endpoint URI that will be called when the Saga is completed successfully. The route corresponding to the completion URI must perform completion tasks and terminate without error. If errors occur during completion, the saga service may call again the completion URI to retry. -
getPropagation
-
setPropagation
Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER). -
getCompletionMode
-
setCompletionMode
Determine how the saga should be considered complete. When set to AUTO, the saga is completed when the exchange that initiates the saga is processed successfully, or compensated when it completes exceptionally. When set to MANUAL, the user must complete or compensate the saga using the "saga:complete" or "saga:compensate" endpoints. -
getOptions
-
setOptions
Allows to save properties of the current exchange in order to re-use them in a compensation/completion callback route. Options are usually helpful e.g. to store and retrieve identifiers of objects that should be deleted in compensating actions. Option values will be transformed into input headers of the compensation/completion exchange. -
getTimeout
-
setTimeout
Set the maximum amount of time for the Saga. After the timeout is expired, the saga will be compensated automatically (unless a different decision has been taken in the meantime). -
compensation
-
completion
-
propagation
-
sagaService
-
sagaService
-
completionMode
-
completionMode
-
option
-
timeout
-
timeout
-
timeout
-
description
-