pub enum BuilderStep {
Show 22 variants
Processor(BoxProcessor),
To(String),
Stop,
Log {
level: LogLevel,
message: String,
},
DeclarativeSetHeader {
key: String,
value: ValueSourceDef,
},
DeclarativeSetBody {
value: ValueSourceDef,
},
DeclarativeFilter {
predicate: LanguageExpressionDef,
steps: Vec<BuilderStep>,
},
DeclarativeChoice {
whens: Vec<DeclarativeWhenStep>,
otherwise: Option<Vec<BuilderStep>>,
},
DeclarativeScript {
expression: LanguageExpressionDef,
},
DeclarativeSplit {
expression: LanguageExpressionDef,
aggregation: AggregationStrategy,
parallel: bool,
parallel_limit: Option<usize>,
stop_on_exception: bool,
steps: Vec<BuilderStep>,
},
Split {
config: SplitterConfig,
steps: Vec<BuilderStep>,
},
Aggregate {
config: AggregatorConfig,
},
Filter {
predicate: FilterPredicate,
steps: Vec<BuilderStep>,
},
Choice {
whens: Vec<WhenStep>,
otherwise: Option<Vec<BuilderStep>>,
},
WireTap {
uri: String,
},
Multicast {
steps: Vec<BuilderStep>,
config: MulticastConfig,
},
DeclarativeLog {
level: LogLevel,
message: ValueSourceDef,
},
Bean {
name: String,
method: String,
},
Script {
language: String,
script: String,
},
Throttle {
config: ThrottlerConfig,
steps: Vec<BuilderStep>,
},
LoadBalance {
config: LoadBalancerConfig,
steps: Vec<BuilderStep>,
},
DynamicRouter {
config: DynamicRouterConfig,
},
}Expand description
A step in an unresolved route definition.
Variants§
Processor(BoxProcessor)
A pre-built Tower processor service.
To(String)
A destination URI — resolved at start time by CamelContext.
Stop
A stop step that halts processing immediately.
Log
A static log step.
DeclarativeSetHeader
Declarative set_header (literal or language-based value), resolved at route-add time.
DeclarativeSetBody
Declarative set_body (literal or language-based value), resolved at route-add time.
Fields
value: ValueSourceDefDeclarativeFilter
Declarative filter using a language predicate, resolved at route-add time.
DeclarativeChoice
Declarative choice/when/otherwise using language predicates, resolved at route-add time.
DeclarativeScript
Declarative script step evaluated by language and written to body.
Fields
expression: LanguageExpressionDefDeclarativeSplit
Declarative split using a language expression, resolved at route-add time.
Split
A Splitter sub-pipeline: config + nested steps to execute per fragment.
Aggregate
An Aggregator step: collects exchanges by correlation key, emits when complete.
Fields
config: AggregatorConfigFilter
A Filter sub-pipeline: predicate + nested steps executed only when predicate is true.
Choice
A Choice step: evaluates when-clauses in order, routes to the first match. If no when matches, the optional otherwise branch is used.
WireTap
A WireTap step: sends a clone of the exchange to a tap endpoint (fire-and-forget).
Multicast
A Multicast step: sends the same exchange to multiple destinations.
DeclarativeLog
Declarative log step with a language-evaluated message, resolved at route-add time.
Bean
Bean invocation step — resolved at route-add time.
Script
Script step: executes a script that can mutate the exchange.
The script has access to headers, properties, and body.
Throttle
Throttle step: rate limiting with configurable behavior when limit exceeded.
LoadBalance
LoadBalance step: distributes exchanges across multiple endpoints using a strategy.
DynamicRouter
DynamicRouter step: routes exchanges dynamically based on expression evaluation.
Fields
config: DynamicRouterConfig