Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.Ce contenu n'est pas disponible dans la langue sélectionnée.
46.2. How to Implement a Component
Overview
Copier lienLien copié sur presse-papiers!
					This section gives a brief overview of the steps required to implement a custom Apache Camel component.
				
Which interfaces do you need to implement?
Copier lienLien copié sur presse-papiers!
					When implementing a component, it is usually necessary to implement the following Java interfaces:
				
- org.apache.camel.Component
- org.apache.camel.Endpoint
- org.apache.camel.Consumer
- org.apache.camel.Producer
					In addition, it can also be necessary to implement the following Java interfaces:
				
- org.apache.camel.Exchange
- org.apache.camel.Message
Implementation steps
Copier lienLien copié sur presse-papiers!
					You typically implement a custom component as follows:
				
- Implement theComponentinterface—A component object acts as an endpoint factory. You extend theDefaultComponentclass and implement thecreateEndpoint()method.
- Implement theEndpointinterface—An endpoint represents a resource identified by a specific URI. The approach taken when implementing an endpoint depends on whether the consumers follow an event-driven pattern, a scheduled poll pattern, or a polling pattern.For an event-driven pattern, implement the endpoint by extending theDefaultEndpointclass and implementing the following methods:- createProducer()
- createConsumer()
 For a scheduled poll pattern, implement the endpoint by extending theScheduledPollEndpointclass and implementing the following methods:- createProducer()
- createConsumer()
 For a polling pattern, implement the endpoint by extending theDefaultPollingEndpointclass and implementing the following methods:- createProducer()
- createPollConsumer()
 
- Implement theConsumerinterface—There are several different approaches you can take to implementing a consumer, depending on which pattern you need to implement (event-driven, scheduled poll, or polling). The consumer implementation is also crucially important for determining the threading model used for processing a message exchange.
- Implement theProducerinterface—To implement a producer, you extend theDefaultProducerclass and implement theprocess()method.
- Optionally implement the Exchange or the Message interface—The default implementations ofExchangeandMessagecan be used directly, but occasionally, you might find it necessary to customize these types.
Installing and configuring the component
Copier lienLien copié sur presse-papiers!
					You can install a custom component in one of the following ways:
				
- Add the component directly to the CamelContext—TheCamelContext.addComponent()method adds a component programatically.
- Add the component using Spring configuration—The standard Springbeanelement creates a component instance. The bean'sidattribute implicitly defines the component prefix. For details, see Section 46.3.2, “Configuring a Component”.
- Configure Apache Camel to auto-discover the component—Auto-discovery, ensures that Apache Camel automatically loads the component on demand. For details, see Section 46.3.1, “Setting Up Auto-Discovery”.