Class SagaDefinition

  • All Implemented Interfaces:
    org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, Block, OutputNode, org.apache.camel.NamedNode, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware

    @Metadata(label="eip,routing")
    public class SagaDefinition
    extends OutputDefinition<SagaDefinition>
    Enables Sagas on the route
    • Constructor Detail

      • SagaDefinition

        public SagaDefinition()
    • Method Detail

      • 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<SagaDefinition>
        Returns:
        true for abstract, otherwise false for regular.
      • isWrappingEntireOutput

        public boolean isWrappingEntireOutput()
        Description copied from class: ProcessorDefinition
        Whether 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:
        isWrappingEntireOutput in class ProcessorDefinition<SagaDefinition>
        Returns:
        true when wrapping the entire output.
      • getSagaServiceBean

        public org.apache.camel.saga.CamelSagaService getSagaServiceBean()
      • getSagaService

        public String getSagaService()
      • setSagaService

        public void setSagaService​(String sagaService)
        Refers to the id to lookup in the registry for the specific CamelSagaService to use.
      • setCompensation

        public void setCompensation​(SagaActionUriDefinition compensation)
        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.
      • setCompletion

        public void setCompletion​(SagaActionUriDefinition completion)
        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

        public String getPropagation()
      • setPropagation

        public void setPropagation​(String propagation)
        Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER).
      • getCompletionMode

        public String getCompletionMode()
      • setCompletionMode

        public void setCompletionMode​(String completionMode)
        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.
      • setOptions

        public void setOptions​(List<PropertyExpressionDefinition> options)
        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

        public String getTimeout()
      • setTimeout

        public void setTimeout​(String timeout)
        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).
      • sagaService

        public SagaDefinition sagaService​(org.apache.camel.saga.CamelSagaService sagaService)
      • description

        protected String description()