CamelContext Auto Configuration
The CamelContext is autoconfigured when running Camel with either Camel Main, Camel Spring Boot, Camel Quarkus, or Camel K.
Camel Auto Configuration
Under these runtimes then the auto configuration is performed by shared code from the camel-main
JAR to ensure the configuration is similar on these runtimes.
The auto configuration is executed in several steps:
-
Configure
CamelContext
(and more such as components) from properties from external sources likeapplication.properties|yaml
-
Configure optional services that has been registering in the Registry
Auto configuration of Properties
This is used for configuring the standard set of options (more than 100 options) which is listed in the Camel Main Options table at Camel Main.
When using Camel on Spring Boot then these options are prefixed with camel.springboot , and not camel.main . |
Auto configuration of Optional Services
After configuring the standard options, then Camel will look in the Registry for custom services to be used. For example to plugin a custom UnitOfWorkFactory
.
The services can be anything that can be plugged into Camel (typically services that implement an SPI interface org.apache.camel.spi
).
The following SPI services, can only a single instance (singleton) be in the Registry.
SPI | Description |
---|---|
| To use a custom async processor await manager |
| To use a custom backlog tracer |
| To use a custom class resolver (only needed if you run Camel on a special application server to deal with classloading) |
| To use a custom debugger |
| To use a custom event notifier factory |
| To use a custom exchange factory |
| To use a custom thread pool manager |
| To use a custom factory finder resolver (only needed if you run Camel on a special application server to deal with classloading) |
| To use a custom health check registry |
| To use a custom inflight repository |
| To use a custom JMX MBean object naming |
| To use a custom JMX management strategy |
| To use a custom factory for message history |
| To use a custom |
| To use a custom factory for creating auto generated node ids |
| To use a custom factory for creating EIP processors |
| To use a custom properties component |
| To use a custom reactive engine in the Camel routing engine |
| To use a custom route controller |
| To use a custom runtime endpoint registry |
| To use a custom shutdown strategy |
| To use a custom startup recorder |
| To use a custom thread pool factory |
| To use a custom unit of work factory |
| To use a custom uuid generator |
For the following SPI services, there can be multiple (1..n) implementations in the Registry.
SPIs | Description |
---|---|
| Adds all the custom camel-cluster services |
| Adds all the custom endpoint strategies |
| Adds all the custom event notifiers |
| To use a custom supplier for JSSE (Java Security) |
| Adds all the custom intercept strategies |
| Adds all the custom lifecycle strategies |
| Adds all the log listeners |
| Adds all the custom model lifecycle strategies |
| Adds all the custom route policy factories |
| Adds all the custom camel-cloud service registries |
| Adds all the thread pool profiles |
| Adds all the custom type converters |