key: commentCase

description: Comment


key: functionCase

description: Function

type: string

default: upper


key: dateFormatCase

description: Date format


key: compilerDirectiveCase

description: Compiler directive


key: endOfAreaB

description:
End of Area B

If -1, will use Margin R as the end of Area B

type: integer


key: lineWrappingStyle

description: If indentation moves code beyond Area B

default: wrapToNextLine

enum: wrapToNextLine noIndent indentToAreaB indentPastAreaB


key: codeCase

description: Format copybook code in uppercase


description: Format copybook comments in uppercase


key: startOfAreaA

description:
Start of Area A
Cannot be used if enableIndentation is false


key: indentLength

description:
Indent Length
Cannot be used if enableIndentation is false


key: startOfAreaB

description:
Start of Area B
Cannot be used if enableIndentation is false


key: indentMultipleLineStatements

description:
Multiple line statement indent length
Cannot be used if enableIndentation is false
use -1 to disable


key: alignLists

description:
Align lists
Cannot be used if enableIndentation is false

type: boolean


key: indentForAllBlocks

description:
Fixed indent length to use for all blocks
Cannot be used if enableIndentation is false
Cannot be used with other individual block indent values


key: blocks

description: Individual block indent values

type: object


key: indentAtEndBlock

description:
Indent length of AT END block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentAtEndOfPageBlock

description:
Indent length of AT END OF PAGE block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentExecBlock

description:
Indent length of EXEC block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentEndExecPhrase

description:
Indent END-EXEC phrase
Cannot be used if enableIndentation is false
END-EXEC phrase will be indented with Exec Block


key: indentIfBlock

description:
Indent length of IF block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentInvalidKeyBlock

description:
Indent length of INVALID KEY block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotAtEndBlock

description:
Indent length of NOT AT END block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotAtEndOfPageBlock

description:
Indent length of NOT AT END OF PAGE block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotInvalidKeyBlock

description:
Indent length of INVALID KEY
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotOnExceptionBlock

description:
Indent length of NOT ON EXCEPTION block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotOnOverflowBlock

description:
Indent length of NOT ON OVERFLOW block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentNotOnSizeErrorBlock

description:
Indent length of NOT ON SIZE ERROR block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentOnExceptionBlock

description:
Indent length of ON EXCEPTION block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentOnOverflowBlock

description:
Indent length of ON OVERFLOW block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentOnSizeErrorBlock

description:
Indent length of ON SIZE ERROR block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentPerformBlock

description:
Indent length of PERFORM block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


key: indentWhenBlock

description:
Indent length of WHEN block
Cannot be used if enableIndentation is false
Cannot be used if indentForAllBlocks is used


description: Aggregates many messages into a single message

type: number

type: array


key: aggregate-controller

description: To use a org.apache.camel.processor.aggregate.AggregateController to allow external sources to control this aggregator.


key: aggregation-repository

description: The AggregationRepository to use. Sets the custom aggregate repository to use. Will by default use org.apache.camel.processor.aggregate.MemoryAggregationRepository


key: aggregation-strategy

description: The AggregationStrategy to use. For example to lookup a bean with the name foo, the value is simply just #bean:foo. Configuring an AggregationStrategy is required, and is used to merge the incoming Exchange with the existing already merged exchanges. At first call the oldExchange parameter is null. On subsequent invocations the oldExchange contains the merged exchanges and newExchange is of course the new incoming Exchange.


key: aggregation-strategy-method-allow-null

description: If this option is false then the aggregate method is not used for the very first aggregation. If this option is true then null values is used as the oldExchange (at the very first aggregation), when using beans as the AggregationStrategy.


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using beans as the AggregationStrategy.


key: close-correlation-key-on-completion

description: Closes a correlation key when its complete. Any late received exchanges which has a correlation key that has been closed, it will be defined and a ClosedCorrelationKeyException is thrown.


key: complete-all-on-stop

description: Indicates to wait to complete all current and partial (pending) aggregated exchanges when the context is stopped. This also means that we will wait for all pending exchanges which are stored in the aggregation repository to complete so the repository is empty before we can stop. You may want to enable this when using the memory based aggregation repository that is memory based only, and do not store data on disk. When this option is enabled, then the aggregator is waiting to complete all those exchanges before its stopped, when stopping CamelContext or the route using it.


key: completion-from-batch-consumer

description: Enables the batch completion mode where we aggregate from a org.apache.camel.BatchConsumer and aggregate the total number of exchanges the org.apache.camel.BatchConsumer has reported as total by checking the exchange property org.apache.camel.Exchange#BATCH_COMPLETE when its complete. This option cannot be used together with discardOnAggregationFailure.


key: completion-interval

description: A repeating period in millis by which the aggregator will complete all current aggregated exchanges. Camel has a background task which is triggered every period. You cannot use this option together with completionTimeout, only one of them can be used.


key: completion-on-new-correlation-group

description: Enables completion on all previous groups when a new incoming correlation group. This can for example be used to complete groups with same correlation keys when they are in consecutive order. Notice when this is enabled then only 1 correlation group can be in progress as when a new correlation group starts, then the previous groups is forced completed.


key: completion-predicate

description: A Predicate to indicate when an aggregated exchange is complete. If this is not specified and the AggregationStrategy object implements Predicate, the aggregationStrategy object will be used as the completionPredicate.


key: completion-size

description: Number of messages aggregated before the aggregation is complete. This option can be set as either a fixed value or using an Expression which allows you to evaluate a size dynamically - will use Integer as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0.


key: completion-size-expression


key: completion-timeout

description: Time in millis that an aggregated exchange should be inactive before its complete (timeout). This option can be set as either a fixed value or using an Expression which allows you to evaluate a timeout dynamically - will use Long as result. If both are set Camel will fallback to use the fixed value if the Expression result was null or 0. You cannot use this option together with completionInterval, only one of the two can be used. By default the timeout checker runs every second, you can use the completionTimeoutCheckerInterval option to configure how frequently to run the checker. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.


key: completion-timeout-checker-interval

description: Interval in millis that is used by the background task that checks for timeouts ( org.apache.camel.TimeoutMap ). By default the timeout checker runs every second. The timeout is an approximation and there is no guarantee that the a timeout is triggered exactly after the timeout value. It is not recommended to use very low timeout values or checker intervals.


key: completion-timeout-expression


key: correlation-expression

description: The expression used to calculate the correlation key to use for aggregation. The Exchange which has the same correlation key is aggregated together. If the correlation key could not be evaluated an Exception is thrown. You can disable this by using the ignoreBadCorrelationKeys option.


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: discard-on-aggregation-failure

description: Discards the aggregated message when aggregation failed (an exception was thrown from AggregationStrategy . This means the partly aggregated message is dropped and not sent out of the aggregator. This option cannot be used together with completionFromBatchConsumer.


key: discard-on-completion-timeout

description: Discards the aggregated message on completion timeout. This means on timeout the aggregated message is dropped and not sent out of the aggregator.


key: eager-check-completion

description: Use eager completion checking which means that the completionPredicate will use the incoming Exchange. As opposed to without eager completion checking the completionPredicate will use the aggregated Exchange.


key: executor-service

description: If using parallelProcessing you can specify a custom thread pool to be used. In fact also if you are not using parallelProcessing this custom thread pool is used to send out aggregated exchanges as well.


key: force-completion-on-stop

description: Indicates to complete all current aggregated exchanges when the context is stopped


key: id

description: Sets the id of this node


key: ignore-invalid-correlation-keys

description: If a correlation key cannot be successfully evaluated it will be ignored by logging a DEBUG and then just ignore the incoming Exchange.


key: optimistic-lock-retry-policy

description: Allows to configure retry settings when using optimistic locking.


key: optimistic-locking

description: Turns on using optimistic locking, which requires the aggregationRepository being used, is supporting this by implementing org.apache.camel.spi.OptimisticLockingAggregationRepository .


key: parallel-processing

description: When aggregated are completed they are being send out of the aggregator. This option indicates whether or not Camel should use a thread pool with multiple threads for concurrency. If no custom thread pool has been specified then Camel creates a default pool with 10 concurrent threads.


key: timeout-checker-executor-service

description: If using either of the completionTimeout, completionTimeoutExpression, or completionInterval options a background thread is created to check for the completion for every aggregator. Set this option to provide a custom thread pool to be used rather than creating a new thread for every aggregator.


description: Calls a Java bean

default: Singleton

enum: Singleton Request Prototype


key: bean-type

description: Sets the class name (fully qualified) of the bean to use


key: method

description: Sets the method name on the bean to use


key: ref

description: Sets a reference to an exiting bean to use, which is looked up from the registry


key: scope

description: Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using prototype scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. So when using prototype scope then this depends on the bean registry implementation.


description: Catches exceptions as part of a try, catch, finally block


key: description

description: Sets the id of this node


key: disabled


key: exception

description: The exception(s) to catch.


key: on-when

description: Sets an additional predicate that should be true before the onCatch is triggered. To be used for fine grained controlling whether a thrown exception should be intercepted by this exception type or not.


description: Route messages based on a series of predicates


description: Sets the id of this node


key: otherwise

description: Sets the otherwise node


key: precondition

description: Indicates whether this Choice EIP is in precondition mode or not. If so its branches (when/otherwise) are evaluated during startup to keep at runtime only the branch that matched.


key: when

description: Sets the when nodes


description: Route messages in a fault tolerance way using Circuit Breaker


key: configuration

description: Refers to a circuit breaker configuration (such as resillience4j, or microprofile-fault-tolerance) to use for configuring the circuit breaker EIP.


key: fault-tolerance-configuration

description: Configures the circuit breaker to use MicroProfile Fault Tolerance with the given configuration.


key: on-fallback

description: The fallback route path to execute that does not go over the network. This should be a static or cached result that can immediately be returned upon failure. If the fallback requires network connection then use onFallbackViaNetwork() .


Configures the circuit breaker to use Resilience4j with the given configuration.


description: The Claim Check EIP allows you to replace message content with a claim check (a unique key), which can be used to retrieve the message content at a later time.

enum: Get GetAndRemove Set Push Pop


key: aggregation-strategy

description: To use a custom AggregationStrategy instead of the default implementation. Notice you cannot use both custom aggregation strategy and configure data at the same time.


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.


description: Sets the id of this node


description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: filter

description: Specify a filter to control what data gets merged data back from the claim check repository. The following syntax is supported: body - to aggregate the message body attachments - to aggregate all the message attachments headers - to aggregate all the message headers header:pattern - to aggregate all the message headers that matches the pattern. The following pattern rules are applied in this order: exact match, returns true wildcard match (pattern ends with a and the name starts with the pattern), returns true regular expression match, returns true otherwise returns false You can specify multiple rules separated by comma. For example, the following includes the message body and all headers starting with foo: body,header:foo. The syntax supports the following prefixes which can be used to specify include,exclude, or remove - to include (which is the default mode) - - to exclude (exclude takes precedence over include) -- - to remove (remove takes precedence) For example to exclude a header name foo, and remove all headers starting with bar, -header:foo,--headers:bar Note you cannot have both include and exclude header:pattern at the same time.


key: key

description: To use a specific key for claim check id (for dynamic keys use simple language syntax as the key).


key: operation

description: The claim check operation to use. The following operations are supported: Get - Gets (does not remove) the claim check by the given key. GetAndRemove - Gets and removes the claim check by the given key. Set - Sets a new (will override if key already exists) claim check with the given key. Push - Sets a new claim check on the stack (does not use key). Pop - Gets the latest claim check from the stack (does not use key).


description: Scans for Java org.apache.camel.builder.RouteBuilder instances in the context org.apache.camel.spi.Registry .


key: excludes

description: Exclude finding route builder from these java package names.


key: include-non-singletons

description: Whether to include non-singleton beans (prototypes) By default only singleton beans is included in the context scan


key: includes

description: Include finding route builder from these java package names.


description: Converts the message body to another type


key: charset

description: To use a specific charset when converting


key: id

description: Sets the id of this node


key: mandatory

description: When mandatory then the conversion must return a value (cannot be null), if this is not possible then NoTypeConversionAvailableException is thrown. Setting this to false could mean conversion is not possible and the value is null.


key: type

description: The java type to convert to


description: Delays processing for a specified length of time


key: async-delayed

description: Enables asynchronous delay which means the thread will not block while delaying.


key: caller-runs-when-rejected

description: Whether or not the caller should run the task when it was rejected by the thread pool. Is by default true


key: description

description: Sets the id of this node


key: disabled


key: executor-service

description: To use a custom Thread Pool if asyncDelay has been enabled.


key: expression

description: Expression to define how long time to wait (in millis)


description: Route messages based on dynamic rules


key: cache-size

description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this dynamic router, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


description: Expression to call that returns the endpoint(s) to route to in the dynamic routing. Important: The expression will be called in a while loop fashion, until the expression returns null which means the dynamic router is finished.


key: ignore-invalid-endpoints

description: Ignore the invalidate endpoint exception when try to create a producer with that endpoint


key: uri-delimiter

description: Sets the uri delimiter to use


description: Enriches a message with data from a secondary resource


key: aggregate-on-exception

description: If this option is false then the aggregate method is not used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to true allows end users to control what to do if there was an exception in the aggregate method. For example to suppress the exception or set a custom message body etc.


key: aggregation-strategy

description: Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message.


key: aggregation-strategy-method-allow-null

description: If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.


key: allow-optimised-components

description: Whether to allow components to optimise enricher if they are org.apache.camel.spi.SendDynamicAware .


description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producer when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


description: Expression that computes the endpoint uri to use as the resource endpoint to enrich from


key: id

description: Sets the id of this node


key: ignore-invalid-endpoint


key: share-unit-of-work

description: Shares the org.apache.camel.spi.UnitOfWork with the parent and the resource exchange. Enrich will by default not share unit of work between the parent exchange and the resource exchange. This means the resource exchange has its own individual unit of work.


description: Camel error handling.


description: The id of this node


description: MicroProfile Fault Tolerance Circuit Breaker EIP configuration


key: bulkhead-enabled

description: Whether bulkhead is enabled or not on the circuit breaker. Default is false.


key: bulkhead-executor-service

description: References to a custom thread pool to use when bulkhead is enabled.


key: bulkhead-max-concurrent-calls

description: Configures the max amount of concurrent calls the bulkhead will support.


key: bulkhead-waiting-task-queue

description: Configures the task queue size for holding waiting tasks to be processed by the bulkhead.


key: circuit-breaker

description: Refers to an existing io.smallrye.faulttolerance.core.circuit.breaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use.


key: delay

description: Control how long the circuit breaker stays open. The default is 5 seconds.


key: failure-ratio

description: Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage.


key: request-volume-threshold

description: Controls the size of the rolling window used when the circuit breaker is closed


key: success-threshold

description: Controls the number of trial calls which are allowed when the circuit breaker is half-open


key: timeout-duration

description: Configures the thread execution timeout. Default value is 1 second.


key: timeout-enabled

description: Whether timeout is enabled or not on the circuit breaker. Default is false.


key: timeout-pool-size

description: Configures the pool size of the thread pool when timeout is enabled. Default value is 10.


key: timeout-scheduled-executor-service

description: References to a custom thread pool to use when timeout is enabled


description: Filter out messages based using a predicate


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: expression

description: Expression to determine if the message should be filtered or not. If the expression returns an empty value or false then the message is filtered (dropped), otherwise the message is continued being routed.


key: id

description: Sets the id of this node


key: status-property-name

description: Name of exchange property to use for storing the status of the filtering. Setting this allows to know if the filter predicate evaluated as true or false.


description: Path traversed when a try, catch, finally block exits


description: Models a string key/value pair for configuring some global options on a Camel context such as max debug log length.

required: key value


key: key

description: Global option key


key: value

description: Global option value


description: Models a series of string key/value pairs for configuring some global options on a Camel context such as max debug log length.


key: global-option

description: A series of global options as key value pairs


description: Filters out duplicate messages


key: completion-eager

description: Sets whether to complete the idempotent consumer eager or when the exchange is done. If this option is true to complete eager, then the idempotent consumer will trigger its completion when the exchange reached the end of the block of the idempotent consumer pattern. So if the exchange is continued routed after the block ends, then whatever happens there does not affect the state. If this option is false (default) to not complete eager, then the idempotent consumer will complete when the exchange is done being routed. So if the exchange is continued routed after the block ends, then whatever happens there also affect the state. For example if the exchange failed due to an exception, then the state of the idempotent consumer will be a rollback.


key: eager

description: Sets whether to eagerly add the key to the idempotent repository or wait until the exchange is complete. Eager is default enabled.


description: Expression used to calculate the correlation key to use for duplicate check. The Exchange which has the same correlation key is regarded as a duplicate and will be rejected.


key: idempotent-repository

description: Sets the reference name of the message id repository


key: remove-on-failure

description: Sets whether to remove or keep the key on failure. The default behavior is to remove the key on failure.


key: skip-duplicate

description: Sets whether to skip duplicates or not. The default behavior is to skip duplicates. A duplicate message would have the Exchange property org.apache.camel.Exchange#DUPLICATE_MESSAGE set to a Boolean#TRUE value. A none duplicate message will not have this property set.


description: Set the expected data type of the input message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the transformation from/to XML.


description: Sets the id of this node


description: Sets the id of this node


key: urn

description: The input type URN.


key: validate

description: Whether if validation is required for this input type.


description: Intercepts a message at each step in the route


description: Intercepts incoming messages


key: uri

description: Intercept incoming messages from the uri or uri pattern. If this option is not configured, then all incoming messages is intercepted.


description: Intercepts messages being sent to an endpoint


key: after-uri

description: After sending to the endpoint then send the message to this uri which allows to process its result.


description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: skip-send-to-original-endpoint

description: If set to true then the message is not sent to the original endpoint. By default (false) the message is both intercepted and then sent to the original endpoint.


description: Intercept sending to the uri or uri pattern.


description: Balances message processing among a number of nodes


key: inherit-error-handler

description: Sets whether or not to inherit the configured error handler. The default value is true. You can use this to disable using the inherited error handler for a given DSL such as a load balancer where you want to use a custom error handler strategy.


description: Logs the defined message to the logger

default: INFO

enum: TRACE DEBUG INFO WARN ERROR OFF


key: log-name

description: Sets the name of the logger


key: logger

description: To refer to a custom logger instance to lookup from the registry.


key: logging-level

description: Sets the logging level. The default value is INFO


key: marker

description: To use slf4j marker


key: message

description: Sets the log message (uses simple language)


description: Processes a message multiple times


key: break-on-shutdown

description: If the breakOnShutdown attribute is true, then the loop will not iterate until it reaches the end when Camel is shut down.


key: copy

description: If the copy attribute is true, a copy of the input Exchange is used for each iteration. That means each iteration will start from a copy of the same message. By default loop will loop the same exchange all over, so each iteration may have different message content.


key: description

description: Sets the id of this node


key: do-while

description: Enables the while loop that loops until the predicate evaluates to false or null.


key: expression

description: Expression to define how many times we should loop. Notice the expression is only evaluated once, and should return a number as how many times to loop. A value of zero or negative means no looping. The loop is like a for-loop fashion, if you want a while loop, then the dynamic router may be a better choice.


key: id

description: Sets the id of this node


description: Marshals data into a specified format for transmission over a transport or component


key: disabled


description: Routes the same message to multiple paths either sequentially or in parallel.


key: aggregation-strategy

description: Refers to an AggregationStrategy to be used to assemble the replies from the multicasts, into a single outgoing message from the Multicast. By default Camel will use the last reply as the outgoing message. You can also use a POJO as the AggregationStrategy


key: aggregation-strategy-method-allow-null

description: If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.


key: executor-service

description: Refers to a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well.


key: on-prepare

description: Uses the Processor when preparing the org.apache.camel.Exchange to be send. This can be used to deep-clone messages that should be send, or any custom logic needed before the exchange is send.


key: parallel-aggregate

description: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive higher performance when the AggregationStrategy is implemented as thread-safe.


key: parallel-processing

description: If enabled then sending messages to the multicasts occurs concurrently. Note the caller thread will still wait until all messages has been fully processed, before it continues. Its only the sending and processing the replies from the multicasts which happens concurrently. When parallel processing is enabled, then the Camel routing engin will continue processing using last used thread from the parallel thread pool. However, if you want to use the original thread that called the multicast, then make sure to enable the synchronous option as well.


key: share-unit-of-work

description: Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Multicast will by default not share unit of work between the parent exchange and each multicasted exchange. This means each sub exchange has its own individual unit of work.


key: stop-on-exception

description: Will now stop further processing if an exception or failure occurred during processing of an org.apache.camel.Exchange and the caused exception will be thrown. Will also stop if processing the exchange failed (has a fault message) or an exception was thrown and handled by the error handler (such as using onException). In all situations the multicast will stop further processing. This is the same behavior as in pipeline, which is used by the routing engine. The default behavior is to not stop but continue processing till the end


key: streaming

description: If enabled then Camel will process replies out-of-order, eg in the order they come back. If disabled, Camel will process replies in the same order as defined by the multicast.


key: synchronous

description: Sets whether synchronous processing should be strictly used. When enabled then the same thread is used to continue routing after the multicast is complete, even if parallel processing is enabled.


key: timeout

description: Sets a total timeout specified in millis, when using parallel processing. If the Multicast hasn't been able to send and process all replies within the given timeframe, then the timeout triggers and the Multicast breaks out and continues. Notice if you provide a TimeoutAwareAggregationStrategy then the timeout method is invoked before breaking out. If the timeout is reached with running tasks still remaining, certain tasks for which it is difficult for Camel to shut down in a graceful manner may continue to run. So use this option with a bit of care.


description: Route to be executed when normal route processing completes

default: AfterConsumer

enum: AfterConsumer BeforeConsumer


key: description

description: Sets the id of this node


description: To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well.


description: Sets the id of this node


key: mode

description: Sets the on completion mode. The default value is AfterConsumer


key: on-complete-only

description: Will only synchronize when the org.apache.camel.Exchange completed successfully (no errors).


key: on-failure-only

description: Will only synchronize when the org.apache.camel.Exchange ended with failure (exception or FAULT message).


key: on-when

description: 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


description: If enabled then the on completion process will run asynchronously by a separate thread from a thread pool. By default this is false, meaning the on completion process will run synchronously using the same caller thread as from the route.


key: use-original-message

description: Will use the original input message body when an org.apache.camel.Exchange for this on completion. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.


description: Route to be executed when an exception is thrown


key: continued

description: Sets whether the exchange should handle and continue routing from the point of failure. If this option is enabled then its considered handled as well.


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: exception

description: A set of exceptions to react upon.


key: handled

description: Sets whether the exchange should be marked as handled or not.


key: on-exception-occurred-ref

description: Sets a reference to a processor that should be processed just after an exception occurred. Can be used to perform custom logging about the occurred exception at the exact time it happened. Important: Any exception thrown from this processor will be ignored.


key: on-redelivery-ref

description: Sets a reference to a processor that should be processed before a redelivery attempt. Can be used to change the org.apache.camel.Exchange before its being redelivered.


description: Sets an additional predicate that should be true before the onException is triggered. To be used for fine grained controlling whether a thrown exception should be intercepted by this exception type or not.


key: redelivery-policy

description: Used for configuring redelivery options


key: redelivery-policy-ref

description: Sets a reference to a redelivery policy to lookup in the org.apache.camel.spi.Registry to be used.


key: retry-while

description: Sets the retry while predicate. Will continue retrying until predicate returns false.


key: use-original-body

description: Will use the original input org.apache.camel.Message body (original body only) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.


description: Will use the original input org.apache.camel.Message (original body and headers) when an org.apache.camel.Exchange is moved to the dead letter queue. Notice: this only applies when all redeliveries attempt have failed and the org.apache.camel.Exchange is doomed for failure. Instead of using the current inprogress org.apache.camel.Exchange IN message we use the original IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress snapshot of the IN message. For instance if you route transform the IN body during routing and then failed. With the original exchange store in the dead letter queue it might be easier to manually re submit the org.apache.camel.Exchange again as the IN message is the same as when Camel received it. So you should be able to send the org.apache.camel.Exchange to the same input. The difference between useOriginalMessage and useOriginalBody is that the former includes both the original body and headers, where as the latter only includes the original body. You can use the latter to enrich the message with custom headers and include the original message body. The former wont let you do this, as its using the original message body and headers as they are. You cannot enable both useOriginalMessage and useOriginalBody. The original input message is defensively copied, and the copied message body is converted to org.apache.camel.StreamCache if possible (stream caching is enabled, can be disabled globally or on the original route), to ensure the body can be read when the original message is being used later. If the body is converted to org.apache.camel.StreamCache then the message body on the current org.apache.camel.Exchange is replaced with the org.apache.camel.StreamCache body. If the body is not converted to org.apache.camel.StreamCache then the body will not be able to re-read when accessed later. Important: The original input means the input message that are bounded by the current org.apache.camel.spi.UnitOfWork . An unit of work typically spans one route, or multiple routes if they are connected using internal endpoints such as direct or seda. When messages is passed via external endpoints such as JMS or HTTP then the consumer will create a new unit of work, with the message it received as input as the original input. Also some EIP patterns such as splitter, multicast, will create a new unit of work boundary for the messages in their sub-route (eg the split message); however these EIPs have an option named shareUnitOfWork which allows to combine with the parent unit of work in regard to error handling and therefore use the parent original message. By default this feature is off.


description: Route to be executed when Circuit Breaker EIP executes fallback


description: Sets the id of this node


key: fallback-via-network

description: Whether the fallback goes over the network. If the fallback will go over the network it is another possible point of failure. It is important to execute the fallback command on a separate thread-pool, otherwise if the main command were to become latent and fill the thread-pool this would prevent the fallback from running if the two commands share the same pool.


key: id

description: Sets the id of this node


description: To configure optimistic locking


key: exponential-back-off

description: Enable exponential backoff


key: maximum-retries

description: Sets the maximum number of retries


key: maximum-retry-delay

description: Sets the upper value of retry in millis between retries, when using exponential or random backoff


key: random-back-off

description: Enables random backoff


key: retry-delay

description: Sets the delay in millis between retries


description: Route to be executed when all other choices evaluate to false


description: Set the expected data type of the output message. If the actual message type is different at runtime, camel look for a required Transformer and apply if exists. If validate attribute is true then camel applies Validator as well. Type name consists of two parts, 'scheme' and 'name' connected with ':'. For Java type 'name' is a fully qualified class name. For example {code java:java.lang.String} , {code json:ABCOrder} . It's also possible to specify only scheme part, so that it works like a wildcard. If only 'xml' is specified, all the XML message matches. It's handy to add only one transformer/validator for all the XML-Java transformation.


key: urn

description: Set output type URN.


key: validate

description: Whether if validation is required for this output type.


description: Scans for Java org.apache.camel.builder.RouteBuilder classes in java packages


key: excludes

description: Exclude finding route builder from these java package names.


key: includes

description: Include finding route builder from these java package names.


key: package

description: Sets the java package names to use for scanning for route builder classes


description: Pausable EIP to support resuming processing from last known offset.

required: consumer-listener until-check


key: consumer-listener

description: Sets the consumer listener to use


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: Sets the id of this node


key: until-check

description: References to a java.util.function.Predicate to use for until checks. The predicate is responsible for evaluating whether the processing can resume or not. Such predicate should return true if the consumption can resume, or false otherwise. The exact point of when the predicate is called is dependent on the component, and it may be called on either one of the available events. Implementations should not assume the predicate to be called at any specific point.


description: Routes the message to a sequence of processors.


description: Defines a policy the route will use


key: ref

description: Sets a reference to use for lookup the policy in the registry.


description: Enriches messages with data polled from a secondary resource


key: aggregate-on-exception

description: If this option is false then the aggregate method is not used if there was an exception thrown while trying to retrieve the data to enrich from the resource. Setting this option to true allows end users to control what to do if there was an exception in the aggregate method. For example to suppress the exception or set a custom message body etc.


key: aggregation-strategy

description: Sets the AggregationStrategy to be used to merge the reply from the external service, into a single outgoing message. By default Camel will use the reply from the external service as outgoing message.


key: aggregation-strategy-method-allow-null

description: If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy.


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.


key: cache-size

description: Sets the maximum size used by the org.apache.camel.spi.ConsumerCache which is used to cache and reuse consumers when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


key: expression

description: Expression that computes the endpoint uri to use as the resource endpoint to enrich from


key: ignore-invalid-endpoint

description: Ignore the invalidate endpoint exception when try to create a producer with that endpoint


key: timeout

description: Timeout in millis when polling from the external service. The timeout has influence about the poll enrich behavior. It basically operations in three different modes: negative value - Waits until a message is available and then returns it. Warning that this method could block indefinitely if no messages are available. 0 - Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet. positive value - Attempts to receive a message exchange, waiting up to the given timeout to expire if a message is not yet available. Returns null if timed out The default value is -1 and therefore the method could block indefinitely, and therefore its recommended to use a timeout value


description: Calls a Camel processor


description: Sets the id of this node


description: Reference to the Processor to lookup in the registry to use. Can also be used for creating new beans by their class name by prefixing with #class, eg #class:com.foo.MyClassType. And it is also possible to refer to singleton beans by their type in the registry by prefixing with #type: syntax, eg #type:com.foo.MyClassType


description: A key value pair where the value is a literal value


key: key

description: Property key


key: value

description: Property value


description: A key value pair where the value is an expression.


description: Property values as an expression


description: Route messages to a number of dynamically specified recipients


description: Sets the AggregationStrategy to be used to assemble the replies from the recipients, into a single outgoing message from the RecipientList. By default Camel will use the last reply as the outgoing message. You can also use a POJO as the AggregationStrategy


description: If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy


description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this recipient list, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


key: delimiter

description: Delimiter used if the Expression returned multiple endpoints. Can be turned off using the value false. The default value is ,


description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: executor-service

description: To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatic implied, and you do not have to enable that option as well.


description: Expression that returns which endpoints (url) to send the message to (the recipients). If the expression return an empty value then the message is not sent to any recipients.


key: id

description: Sets the id of this node


key: ignore-invalid-endpoints


key: on-prepare

description: Uses the Processor when preparing the org.apache.camel.Exchange to be used send. This can be used to deep-clone messages that should be send, or any custom logic needed before the exchange is send.


key: parallel-aggregate

description: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive higher performance when the AggregationStrategy is implemented as thread-safe.


key: parallel-processing

description: If enabled then sending messages to the recipients occurs concurrently. Note the caller thread will still wait until all messages has been fully processed, before it continues. Its only the sending and processing the replies from the recipients which happens concurrently. When parallel processing is enabled, then the Camel routing engin will continue processing using last used thread from the parallel thread pool. However, if you want to use the original thread that called the recipient list, then make sure to enable the synchronous option as well.


key: share-unit-of-work

description: Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Recipient List will by default not share unit of work between the parent exchange and each recipient exchange. This means each sub exchange has its own individual unit of work.


key: stop-on-exception

description: Will now stop further processing if an exception or failure occurred during processing of an org.apache.camel.Exchange and the caused exception will be thrown. Will also stop if processing the exchange failed (has a fault message) or an exception was thrown and handled by the error handler (such as using onException). In all situations the recipient list will stop further processing. This is the same behavior as in pipeline, which is used by the routing engine. The default behavior is to not stop but continue processing till the end


key: streaming

description: If enabled then Camel will process replies out-of-order, eg in the order they come back. If disabled, Camel will process replies in the same order as defined by the recipient list.


key: synchronous

description: Sets whether synchronous processing should be strictly used. When enabled then the same thread is used to continue routing after the recipient list is complete, even if parallel processing is enabled.


description: Sets a total timeout specified in millis, when using parallel processing. If the Recipient List hasn't been able to send and process all replies within the given timeframe, then the timeout triggers and the Recipient List breaks out and continues. Notice if you provide a TimeoutAwareAggregationStrategy then the timeout method is invoked before breaking out. If the timeout is reached with running tasks still remaining, certain tasks for which it is difficult for Camel to shut down in a graceful manner may continue to run. So use this option with a bit of care.


description: To configure re-delivery for error handling

default: ERROR

default: DEBUG


key: allow-redelivery-while-stopping

description: Controls whether to allow redelivery while stopping/shutting down a route that uses error handling.


key: async-delayed-redelivery

description: Allow asynchronous delayed redelivery. The route, in particular the consumer's component, must support the Asynchronous Routing Engine (e.g. seda).


key: back-off-multiplier

description: Sets the back off multiplier


key: collision-avoidance-factor

description: Sets the collision avoidance factor


key: delay-pattern

description: Sets the delay pattern with delay intervals.


key: disable-redelivery

description: Disables redelivery (same as setting maximum redeliveries to 0)


key: exchange-formatter-ref

description: Sets the reference of the instance of org.apache.camel.spi.ExchangeFormatter to generate the log message from exchange.


description: The id of this node


key: log-continued

description: Sets whether continued exceptions should be logged or not. Can be used to include or reduce verbose.


key: log-exhausted

description: Sets whether exhausted exceptions should be logged or not. Can be used to include or reduce verbose.


key: log-exhausted-message-body

description: Sets whether exhausted message body should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose. Requires logExhaustedMessageHistory to be enabled.


key: log-exhausted-message-history

description: Sets whether exhausted exceptions should be logged including message history or not (supports property placeholders). Can be used to include or reduce verbose.


key: log-handled

description: Sets whether handled exceptions should be logged or not. Can be used to include or reduce verbose.


key: log-new-exception

description: Sets whether new exceptions should be logged or not. Can be used to include or reduce verbose. A new exception is an exception that was thrown while handling a previous exception.


key: log-retry-attempted

description: Sets whether retry attempts should be logged or not. Can be used to include or reduce verbose.


key: log-retry-stack-trace

description: Sets whether stack traces should be logged when an retry attempt failed. Can be used to include or reduce verbose.


key: log-stack-trace

description: Sets whether stack traces should be logged. Can be used to include or reduce verbose.


key: maximum-redeliveries

description: Sets the maximum redeliveries x = redeliver at most x times 0 = no redeliveries -1 = redeliver forever


key: maximum-redelivery-delay

description: Sets the maximum delay between redelivery


key: redelivery-delay

description: Sets the initial redelivery delay


key: retries-exhausted-log-level

description: Sets the logging level to use when retries have been exhausted


key: retry-attempted-log-interval

description: Sets the interval to use for logging retry attempts


key: retry-attempted-log-level

description: Sets the logging level to use for logging retry attempts


key: use-collision-avoidance

description: Turn on collision avoidance.


key: use-exponential-back-off

description: Turn on exponential backk off


description: Removes a named header from the message


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: id

description: Sets the id of this node


key: name

description: Name of header to remove


description: Removes message headers whose name matches a specified pattern


key: exclude-pattern

description: Name or patter of headers to not remove. The pattern is matched in the following order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).


key: pattern

description: Name or pattern of headers to remove. The pattern is matched in the following order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).


description: Removes message exchange properties whose name matches a specified pattern


description: Name or pattern of properties to not remove. The pattern is matched in the following order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).


description: Name or pattern of properties to remove. The pattern is matched in the following order: 1 = exact match 2 = wildcard (pattern ends with a and the name starts with the pattern) 3 = regular expression (all of above is case in-sensitive).


description: Removes a named property from the message exchange


description: Name of property to remove.


description: Resequences (re-order) messages based on an expression


key: expression

description: Expression to use for re-ordering the messages, such as a header with a sequence number


description: Resilience4j Circuit Breaker EIP configuration


description: Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed.


key: bulkhead-enabled

description: Whether bulkhead is enabled or not on the circuit breaker. Default is false.


key: bulkhead-max-concurrent-calls

description: Configures the max amount of concurrent calls the bulkhead will support.


key: bulkhead-max-wait-duration

description: Configures a maximum amount of time which the calling thread will wait to enter the bulkhead. If bulkhead has space available, entry is guaranteed and immediate. If bulkhead is full, calling threads will contest for space, if it becomes available. maxWaitDuration can be set to 0. Note: for threads running on an event-loop or equivalent (rx computation pool, etc), setting maxWaitDuration to 0 is highly recommended. Blocking an event-loop thread will most likely have a negative effect on application throughput.


key: circuit-breaker

description: Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use.


key: config

description: Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup and use from the registry.


key: failure-rate-threshold

description: Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage.


description: The id of this node


key: minimum-number-of-calls

description: Configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate. For example, if minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the failure rate can be calculated. If only 9 calls have been recorded the CircuitBreaker will not transition to open even if all 9 calls have failed. Default minimumNumberOfCalls is 100


description: Configures the number of permitted calls when the CircuitBreaker is half open. The size must be greater than 0. Default size is 10.


key: sliding-window-size

description: Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. slidingWindowSize configures the size of the sliding window. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. The slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be greater than 0. If the slidingWindowType is COUNT_BASED, the minimumNumberOfCalls cannot be greater than slidingWindowSize . If the slidingWindowType is TIME_BASED, you can pick whatever you want. Default slidingWindowSize is 100.


key: sliding-window-type

description: Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. Default slidingWindowType is COUNT_BASED.


key: slow-call-duration-threshold

description: Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds.


key: slow-call-rate-threshold

description: Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that all recorded calls must be slower than slowCallDurationThreshold.


description: Whether to throw io.github.resilience4j.circuitbreaker.CallNotPermittedException when the call is rejected due circuit breaker is half open or open.


key: timeout-cancel-running-future

description: Configures whether cancel is called on the running future. Defaults to true.


key: timeout-duration

description: Configures the thread execution timeout. Default value is 1 second.


key: timeout-enabled

description: Whether timeout is enabled or not on the circuit breaker. Default is false.


key: timeout-executor-service

description: References to a custom thread pool to use when timeout is enabled (uses ForkJoinPool#commonPool() by default)


key: wait-duration-in-open-state

description: Configures the wait duration (in seconds) which specifies how long the CircuitBreaker should stay open, before it switches to half open. Default value is 60 seconds.


key: writable-stack-trace-enabled

description: Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls).


description: To refer to an XML file with rest services defined using the rest-dsl


key: ref

description: Reference to the rest-dsl


description: Resume EIP to support resuming processing from last known offset.


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: id

description: Sets the id of this node


key: intermittent

description: Sets whether the offsets will be intermittently present or whether they must be present in every exchange


key: resume-strategy

description: Sets the resume strategy to use


description: Forces a rollback by stopping routing the message


key: mark-rollback-only

description: Mark the transaction for rollback only (cannot be overruled to commit)


key: mark-rollback-only-last

description: Mark only last sub transaction for rollback only. When using sub transactions (if the transaction manager support this)


key: message

description: Message to use in rollback exception


description: To refer to a Java org.apache.camel.builder.RouteBuilder instance to use.


description: The id of this node


description: Reference to the route builder instance


description: To refer to an XML file with route configuration defined using the xml-dsl


description: Reference to the route templates in the xml dsl


description: To refer to an XML file with routes defined using the xml-dsl


description: Reference to the routes in the xml dsl


description: A route template parameter


key: default-value

description: Default value of the parameter. If a default value is provided then the parameter is implied not to be required.


description: Description of the parameter


key: name

description: The name of the parameter


key: required

description: Whether the parameter is required or not. A parameter is required unless this option is set to false or a default value has been configured.


description: Routes a message through a series of steps that are pre-determined (the slip)


key: cache-size

description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this routing slip, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


description: Sets the id of this node


key: expression

description: Expression to define the routing slip, which defines which endpoints to route the message in a pipeline style. Notice the expression is evaluated once, if you want a more dynamic style, then the dynamic router eip is a better choice.


description: Sets the id of this node


key: ignore-invalid-endpoints

description: Ignore the invalidate endpoint exception when try to create a producer with that endpoint


key: uri-delimiter

description: Sets the uri delimiter to use


description: Enables Sagas on the route

default: AUTO

enum: AUTO MANUAL

default: REQUIRED

enum: REQUIRED REQUIRES_NEW MANDATORY SUPPORTS NOT_SUPPORTED NEVER


key: compensation

description: 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.


key: completion

description: 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.


key: completion-mode

description: 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.


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


key: option

description: 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.


key: propagation

description: Set the Saga propagation mode (REQUIRED, REQUIRES_NEW, MANDATORY, SUPPORTS, NOT_SUPPORTED, NEVER).


key: saga-service

description: Refers to the id to lookup in the registry for the specific CamelSagaService to use.


key: timeout

description: 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).


description: Extract a sample of the messages passing through a route


key: message-frequency

description: Sets the sample message count which only a single Exchange will pass through after this many received.


key: sample-period

description: Sets the sample period during which only a single Exchange will pass through.


description: Executes a script from a language which does not change the message body.


key: description

description: Sets the id of this node


description: Expression to return the transformed message body (the new message body to use)


key: id

description: Sets the id of this node


description: Sets the contents of the message body


description: Expression that returns the new body to use


description: Sets the exchange pattern on the message exchange

enum: InOnly InOut


key: pattern

description: Sets the new exchange pattern of the Exchange to be used from this point forward


description: Sets the value of a message header


description: Expression to return the value of the header


key: name

description: Name of message header to set a new value The simple language can be used to define a dynamic evaluated header name to be used. Otherwise a constant name will be used.


description: Sets a named property on the message exchange


key: expression

description: Expression to return the value of the message exchange property


description: Name of exchange property to set a new value. The simple language can be used to define a dynamic evaluated exchange property name to be used. Otherwise a constant name will be used.


description: Sorts the contents of the message


key: comparator

description: Sets the comparator to use for sorting


description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: Optional expression to sort by something else than the message body


description: Splits a single message into many sub-messages.


key: aggregation-strategy

description: Sets a reference to the AggregationStrategy to be used to assemble the replies from the split messages, into a single outgoing message from the Splitter. By default Camel will use the original incoming message to the splitter (leave it unchanged). You can also use a POJO as the AggregationStrategy


key: aggregation-strategy-method-allow-null

description: If this option is false then the aggregate method is not used if there was no data to enrich. If this option is true then null values is used as the oldExchange (when no data to enrich), when using POJOs as the AggregationStrategy


key: aggregation-strategy-method-name

description: This option can be used to explicit declare the method name to use, when using POJOs as the AggregationStrategy.


key: delimiter

description: Delimiter used in splitting messages. Can be turned off using the value false. The default value is ,


description: Sets the id of this node


key: executor-service

description: To use a custom Thread Pool to be used for parallel processing. Notice if you set this option, then parallel processing is automatically implied, and you do not have to enable that option as well.


description: Expression of how to split the message body, such as as-is, using a tokenizer, or using a xpath.


description: Sets the id of this node


key: on-prepare

description: Uses the Processor when preparing the org.apache.camel.Exchange to be sent. This can be used to deep-clone messages that should be sent, or any custom logic needed before the exchange is sent.


key: parallel-aggregate

description: If enabled then the aggregate method on AggregationStrategy can be called concurrently. Notice that this would require the implementation of AggregationStrategy to be implemented as thread-safe. By default this is false meaning that Camel synchronizes the call to the aggregate method. Though in some use-cases this can be used to archive higher performance when the AggregationStrategy is implemented as thread-safe.


key: parallel-processing

description: If enabled then processing each split messages occurs concurrently. Note the caller thread will still wait until all messages has been fully processed, before it continues. It's only processing the sub messages from the splitter which happens concurrently. When parallel processing is enabled, then the Camel routing engin will continue processing using last used thread from the parallel thread pool. However, if you want to use the original thread that called the splitter, then make sure to enable the synchronous option as well.


key: share-unit-of-work

description: Shares the org.apache.camel.spi.UnitOfWork with the parent and each of the sub messages. Splitter will by default not share unit of work between the parent exchange and each split exchange. This means each split exchange has its own individual unit of work.


key: stop-on-exception

description: Will now stop further processing if an exception or failure occurred during processing of an org.apache.camel.Exchange and the caused exception will be thrown. Will also stop if processing the exchange failed (has a fault message) or an exception was thrown and handled by the error handler (such as using onException). In all situations the splitter will stop further processing. This is the same behavior as in pipeline, which is used by the routing engine. The default behavior is to not stop but continue processing till the end


key: streaming

description: When in streaming mode, then the splitter splits the original message on-demand, and each split message is processed one by one. This reduces memory usage as the splitter do not split all the messages first, but then we do not know the total size, and therefore the org.apache.camel.Exchange#SPLIT_SIZE is empty. In non-streaming mode (default) the splitter will split each message first, to know the total size, and then process each message one by one. This requires to keep all the split messages in memory and therefore requires more memory. The total size is provided in the org.apache.camel.Exchange#SPLIT_SIZE header. The streaming mode also affects the aggregation behavior. If enabled then Camel will process replies out-of-order, e.g. in the order they come back. If disabled, Camel will process replies in the same order as the messages was split.


key: synchronous

description: Sets whether synchronous processing should be strictly used. When enabled then the same thread is used to continue routing after the split is complete, even if parallel processing is enabled.


key: timeout

description: Sets a total timeout specified in millis, when using parallel processing. If the Splitter hasn't been able to split and process all the sub messages within the given timeframe, then the timeout triggers and the Splitter breaks out and continues. Notice if you provide a TimeoutAwareAggregationStrategy then the timeout method is invoked before breaking out. If the timeout is reached with running tasks still remaining, certain tasks for which it is difficult for Camel to shut down in a graceful manner may continue to run. So use this option with a bit of care.


description: Routes the message to a sequence of processors which is grouped together as one logical name


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: Stops the processing of the current message


description: An input parameter of a route template.

required: name value


key: name

description: The name of the parameter


key: value

description: The value of the parameter.


description: To configure thread pools

enum: Abort CallerRuns

enum: NANOSECONDS MICROSECONDS MILLISECONDS SECONDS MINUTES HOURS DAYS


key: allow-core-thread-time-out

description: Whether idle core threads is allowed to timeout and therefore can shrink the pool size below the core pool size Is by default true


key: default-profile

description: Whether this profile is the default thread pool profile


key: description

description: Sets the id of this node


key: id

description: Sets the id of this node


key: keep-alive-time

description: Sets the keep alive time for idle threads in the pool


key: max-pool-size

description: Sets the maximum pool size


key: max-queue-size

description: Sets the maximum number of tasks in the work queue. Use -1 or Integer.MAX_VALUE for an unbounded queue


key: pool-size

description: Sets the core pool size


key: rejected-policy

description: Sets the handler for tasks which cannot be executed by the thread pool.


key: time-unit

description: Sets the time unit to use for keep alive time By default SECONDS is used.


description: Specifies that all steps after this node are processed asynchronously

default: true

default: Threads


description: Whether idle core threads are allowed to timeout and therefore can shrink the pool size below the core pool size Is by default false


key: caller-runs-when-rejected

description: Whether or not to use as caller runs as fallback when a task is rejected being added to the thread pool (when its full). This is only used as fallback if no rejectedPolicy has been configured, or the thread pool has no configured rejection handler. Is by default true


key: executor-service

description: To use a custom thread pool


description: Sets the keep alive time for idle threads


key: thread-name

description: Sets the thread name to use.


description: Sets the keep alive time unit. By default SECONDS is used.


description: Controls the rate at which messages are passed to the next node in the route


key: async-delayed

description: Enables asynchronous delay which means the thread will not block while delaying.


description: Whether or not the caller should run the task when it was rejected by the thread pool. Is by default true


key: correlation-expression

description: The expression used to calculate the correlation key to use for throttle grouping. The Exchange which has the same correlation key is throttled together.


description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: To use a custom thread pool (ScheduledExecutorService) by the throttler.


key: expression

description: Expression to configure the maximum number of messages to throttle per request


description: Sets the id of this node


key: reject-execution

description: Whether or not throttler throws the ThrottlerRejectedExecutionException when the exchange exceeds the request limit Is by default false


key: time-period-millis

description: Sets the time period during which the maximum request count is valid for


description: Throws an exception


key: exception-type

description: The class of the exception to create using the message.


key: message

description: To create a new exception instance and use the given message as caused message (supports simple language)


key: ref

description: Reference to the exception instance to lookup from the registry to throw


description: Sends the message to a static endpoint


key: pattern

description: Sets the optional ExchangePattern used to invoke this endpoint


key: uri

description: Sets the uri of the endpoint to send to.


description: Sends the message to a dynamic endpoint


key: allow-optimised-components

description: Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware .


key: auto-start-components

description: Whether to auto startup components when toD is starting up.


key: cache-size

description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this recipient list, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


key: description

description: Sets the id of this node


key: ignore-invalid-endpoint

description: Whether to ignore invalid endpoint URIs and skip sending the message.


description: The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression.


description: Enables transaction on the route


key: id

description: Sets the id of this node


description: Sets a reference to use for lookup the policy in the registry.


description: Transforms the message body based on an expression


description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: Expression to return the transformed message body (the new message body to use)


key: from-type

description: From type used in data type transformation.


key: to-type

description: To type used as a target data type in the transformation.


description: Marks the beginning of a try, catch, finally block


description: Converts the message data received from the wire into a format that Apache Camel processors can consume


key: allow-null-body

description: Indicates whether null is allowed as value of a body to unmarshall.


description: Validates a message based on an expression


key: expression

description: Expression to use for validation as a predicate. The expression should return either true or false. If returning false the message is invalid and an exception is thrown.


key: predicate-exception-factory

description: The bean id of custom PredicateExceptionFactory to use for creating the exception when the validation fails. By default, Camel will throw PredicateValidationException. By using a custom factory you can control which exception to throw instead.


description: A single value


key: value

description: Property value


description: Triggers a route when the expression evaluates to true


description: Sets the id of this node


description: Expression used as the predicate to evaluate whether this when should trigger and route the message or not.


description: Sets the id of this node


description: Predicate to determine if the message should be sent or not to the endpoint, when using interceptSentToEndpoint.


key: disabled


description: Expression used as the predicate to evaluate whether the message should be sent or not to the endpoint


description: Routes a copy of a message (or creates a new message) to a secondary destination while continue routing the original message.


description: Whether to allow components to optimise toD if they are org.apache.camel.spi.SendDynamicAware .


description: Whether to auto startup components when toD is starting up.


description: Sets the maximum size used by the org.apache.camel.spi.ProducerCache which is used to cache and reuse producers when using this recipient list, when uris are reused. Beware that when using dynamic endpoints then it affects how well the cache can be utilized. If each dynamic endpoint is unique then its best to turn off caching by setting this to -1, which allows Camel to not cache both the producers and endpoints; they are regarded as prototype scoped and will be stopped and discarded after use. This reduces memory usage as otherwise producers/endpoints are stored in memory in the caches. However if there are a high degree of dynamic endpoints that have been used before, then it can benefit to use the cache to reuse both producers and endpoints and therefore the cache size can be set accordingly or rely on the default size (1000). If there is a mix of unique and used before dynamic endpoints, then setting a reasonable cache size can help reduce memory usage to avoid storing too many non frequent used producers.


key: copy

description: Uses a copy of the original exchange


key: dynamic-uri

description: Whether the uri is dynamic or static. If the uri is dynamic then the simple language is used to evaluate a dynamic uri to use as the wire-tap destination, for each incoming message. This works similar to how the toD EIP pattern works. If static then the uri is used as-is as the wire-tap destination.


key: executor-service

description: Uses a custom thread pool


description: Whether to ignore invalid endpoint URIs and skip sending the message.


key: on-prepare

description: Uses the Processor when preparing the org.apache.camel.Exchange to be sent. This can be used to deep-clone messages that should be sent, or any custom logic needed before the exchange is sent.


key: pattern

description: Sets the optional ExchangePattern used to invoke this endpoint


key: uri

description: The uri of the endpoint to send to. The uri can be dynamic computed using the org.apache.camel.language.simple.SimpleLanguage expression.


description: If beans reminds Spring application too much, we can use camel.


description: A grouping POJO (and related XML root element) that's historically associated with entire application (or its distinguished fragment). This class is not meant to be used with Camel Java DSL, but it's needed to generate XML Schema and MX parser methods.


description: The id of this node


key: properties

description: Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service in use.


key: servers

description: Sets the server blacklist. Each entry can be a list of servers separated by comma in the format: servicehost:port,servicehost2:port,servicehost3:port


key: timeout

description: Set the time the services will be retained.


key: units

description: Set the time unit for the timeout.

default: SECONDS


key: acl-token

description: Sets the ACL token to be used with Consul


key: block-seconds

description: The seconds to wait for a watch event, default 10 seconds


key: connect-timeout-millis

description: Connect timeout for OkHttpClient


key: datacenter

description: The data center


key: password

description: Sets the password to be used for basic authentication


key: read-timeout-millis

description: Read timeout for OkHttpClient


key: url

description: The Consul agent URL


key: user-name

description: Sets the username to be used for basic authentication


key: write-timeout-millis

description: Write timeout for OkHttpClient


key: ref

description: Reference of a ServiceFilter


key: domain

description: The domain name;


key: proto

description: The transport protocol of the desired service.


key: id

description: The id of this node


key: properties


key: api-version

description: Sets the API version when using client lookup


key: ca-cert-data

description: Sets the Certificate Authority data when using client lookup


key: ca-cert-file

description: Sets the Certificate Authority data that are loaded from the file when using client lookup


key: client-cert-data

description: Sets the Client Certificate data when using client lookup


key: client-cert-file

description: Sets the Client Certificate data that are loaded from the file when using client lookup


key: client-key-algo

description: Sets the Client Keystore algorithm, such as RSA when using client lookup


key: client-key-data

description: Sets the Client Keystore data when using client lookup


key: client-key-file

description: Sets the Client Keystore data that are loaded from the file when using client lookup


key: client-key-passphrase

description: Sets the Client Keystore passphrase when using client lookup


key: dns-domain

description: Sets the DNS domain to use for DNS lookup.


key: lookup

description: How to perform service lookup. Possible values: client, dns, environment. When using client, then the client queries the kubernetes master to obtain a list of active pods that provides the service, and then random (or round robin) select a pod. When using dns the service name is resolved as name.namespace.svc.dnsDomain. When using dnssrv the service name is resolved with SRV query for _._...svc... When using environment then environment variables are used to lookup the service. By default environment is used.

default: environment

enum: environment dns client


key: master-url

description: Sets the URL to the master when using client lookup


key: namespace

description: Sets the namespace to use. Will by default use namespace from the ENV variable KUBERNETES_MASTER.


key: oauth-token

description: Sets the OAUTH token for authentication (instead of username/password) when using client lookup


key: password

description: Sets the password for authentication when using client lookup


key: port-name

description: Sets the Port Name to use for DNS/DNSSRV lookup.


key: port-protocol

description: Sets the Port Protocol to use for DNS/DNSSRV lookup.


key: properties

description: Set client properties to use. These properties are specific to what service call implementation are in use. For example if using a different one, then the client properties are defined according to the specific service in use.


key: trust-certs

description: Sets whether to turn on trust certificate check when using client lookup


key: username

description: Sets the username for authentication when using client lookup


key: id

description: The id of this node


description: Remote service call configuration

default: http


key: component

description: The component to use.


key: expression

description: Configures the Expression using the given configuration.


key: expression-ref

description: Set a reference to a custom Expression to use.


key: load-balancer-ref

description: Sets a reference to a custom ServiceLoadBalancer to use.


key: pattern

description: Sets the optional ExchangePattern used to invoke this endpoint


key: service-chooser-ref

description: Sets a reference to a custom ServiceChooser to use.


key: service-discovery-ref

description: Sets a reference to a custom ServiceDiscovery to use.


key: service-filter-ref

description: Sets a reference to a custom ServiceFilter to use.


key: uri

description: The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression.


description: To call remote services


key: configuration-ref

description: Refers to a ServiceCall configuration to use


key: description

description: Sets the id of this node


key: disabled

description: Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime.


description: Sets the id of this node


key: name

description: Sets the name of the service to use