pub struct CamelContext { /* private fields */ }Expand description
Implementations§
Source§impl CamelContext
impl CamelContext
Sourcepub fn with_metrics(metrics: Arc<dyn MetricsCollector>) -> Self
pub fn with_metrics(metrics: Arc<dyn MetricsCollector>) -> Self
Create a new CamelContext with a custom metrics collector.
Sourcepub fn set_error_handler(&mut self, config: ErrorHandlerConfig)
pub fn set_error_handler(&mut self, config: ErrorHandlerConfig)
Set a global error handler applied to all routes without a per-route handler.
Sourcepub fn register_component<C: Component + 'static>(&mut self, component: C)
pub fn register_component<C: Component + 'static>(&mut self, component: C)
Register a component with this context.
Sourcepub fn register_language(
&mut self,
name: impl Into<String>,
lang: Box<dyn Language>,
) -> Result<(), LanguageError>
pub fn register_language( &mut self, name: impl Into<String>, lang: Box<dyn Language>, ) -> Result<(), LanguageError>
Register a language with this context, keyed by name.
Returns Err(LanguageError::AlreadyRegistered) if a language with the
same name is already registered. Use resolve_language
to check before registering, or choose a distinct name.
Sourcepub fn resolve_language(&self, name: &str) -> Option<&dyn Language>
pub fn resolve_language(&self, name: &str) -> Option<&dyn Language>
Resolve a language by name. Returns None if not registered.
Sourcepub fn add_route_definition(
&mut self,
definition: RouteDefinition,
) -> Result<(), CamelError>
pub fn add_route_definition( &mut self, definition: RouteDefinition, ) -> Result<(), CamelError>
Add a route definition to this context.
The route must have an ID. Steps are resolved immediately using registered components.
Sourcepub fn registry(&self) -> MutexGuard<'_, Registry>
pub fn registry(&self) -> MutexGuard<'_, Registry>
Access the component registry.
Sourcepub fn route_controller(&self) -> &Arc<Mutex<DefaultRouteController>>
pub fn route_controller(&self) -> &Arc<Mutex<DefaultRouteController>>
Access the route controller.
Sourcepub fn metrics(&self) -> Arc<dyn MetricsCollector>
pub fn metrics(&self) -> Arc<dyn MetricsCollector>
Get the metrics collector.
Sourcepub fn route_status(&self, route_id: &str) -> Option<RouteStatus>
pub fn route_status(&self, route_id: &str) -> Option<RouteStatus>
Get the status of a route by ID.
Sourcepub async fn start(&mut self) -> Result<(), CamelError>
pub async fn start(&mut self) -> Result<(), CamelError>
Start all routes. Each route’s consumer will begin producing exchanges.
Only routes with auto_startup == true will be started, in order of their
startup_order (lower values start first).
Sourcepub async fn stop(&mut self) -> Result<(), CamelError>
pub async fn stop(&mut self) -> Result<(), CamelError>
Graceful shutdown with default 30-second timeout.
Sourcepub async fn stop_timeout(
&mut self,
_timeout: Duration,
) -> Result<(), CamelError>
pub async fn stop_timeout( &mut self, _timeout: Duration, ) -> Result<(), CamelError>
Graceful shutdown with custom timeout.
Note: The timeout parameter is currently not used directly; the RouteController manages its own shutdown timeout. This may change in a future version.