Writing Components
Apache Camel is designed to make it very easy to drop in new components whether they be routing components, transformers, transports etc. The idea of a component is to be a factory and manager of Endpoints.
Here are the main steps to writing a component.
- write a POJO which implements the Component interface. The simplest approach is just to derive from DefaultComponent
- to support auto-discovery of your component add a file to META-INF/services/org/apache/camel/component/FOO where FOO is the URI scheme for your component and any related endpoints on the fly
Users can then either explicitly create your component, configure it and register with a CamelContext or users can use a URI which auto-creates your component.
Dependency injection and auto-discovery
When using auto-discovery the CamelContext will default to its Injector implementation to inject any required or optional dependencies on the component. This allows you to use auto-discovery of components via URIs while still getting the benefits of dependency injection.
For example your component can depend on a JDBC DataSource or JMS ConnectionFactory which can be provided in the ApplicationContext in Spring or Module in Guice.