CamelContext Auto Configuration
The CamelContext is autoconfigured when running Camel with either Camel Main, Camel Spring Boot, Camel Quarkus, or Camel K.
Camel Autoconfiguration
Under these runtimes then the autoconfiguration is performed by shared code from the camel-main
JAR to ensure the configuration is similar on these runtimes.
The autoconfiguration is executed in several steps:
-
Configure
CamelContext
(and more such as components) from properties from external sources likeapplication.properties|yaml
-
Configure optional services that have been registered in the Registry
Autoconfiguration of Properties
This is used for configuring the standard set of more than 100 options which are 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 . |
Autoconfiguration of Optional Services
After configuring the standard options, then Camel will look in the Registry for custom services to be used. For example, to plug in 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. This is only necessary 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. This is only necessary if you run Camel on a special application server to deal with classloading. |
| To use a custom health check registry |
| To use a custom in flight 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 (one or more) 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 |