This section gives a brief overview of the steps required to implement a custom Fuse Mediation Router component.
When implementing a component, it is usually necessary to implement the following Java interfaces:
org.apache.camel.Componentorg.apache.camel.Endpointorg.apache.camel.Consumerorg.apache.camel.Producer
In addition, it can also be necessary to implement the following Java interfaces:
org.apache.camel.Exchangeorg.apache.camel.Message
You typically implement a custom component as follows:
Implement the
Componentinterface—A component object acts as an endpoint factory. You extend theDefaultComponentclass and implement thecreateEndpoint()method.See Component Interface.
Implement the
Endpointinterface—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 the
DefaultEndpointclass and implementing the following methods:createProducer()createConsumer()
For a scheduled poll pattern, implement the endpoint by extending the
ScheduledPollEndpointclass and implementing the following methods:createProducer()createConsumer()
For a polling pattern, implement the endpoint by extending the
DefaultPollingEndpointclass and implementing the following methods:createProducer()createPollConsumer()
See Endpoint Interface.
Implement the
Consumerinterface—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 the
Producerinterface—To implement a producer, you extend theDefaultProducerclass and implement theprocess()method.See Producer Interface.
Optionally implement the Exchange or the Message interface—The default implementations of
ExchangeandMessagecan be used directly, but occasionally, you might find it necessary to customize these types.See Exchange Interface and Message Interface.
You can install a custom component in one of the following ways:
Add the component directly to the CamelContext—The
CamelContext.addComponent()method adds a component programatically.Add the component using Spring configuration—The standard Spring
beanelement creates a component instance. The bean'sidattribute implicitly defines the component prefix. For details, see Configuring a Component.Configure Fuse Mediation Router to auto-discover the component—Auto-discovery, ensures that Fuse Mediation Router automatically loads the component on demand. For details, see Setting Up Auto-Discovery.








