Federico Mariani created CAMEL-22423:
----------------------------------------
Summary: Make Camel extensible from 3d party dependencies via
ServiceLoader
Key: CAMEL-22423
URL: https://issues.apache.org/jira/browse/CAMEL-22423
Project: Camel
Issue Type: New Feature
Reporter: Federico Mariani
Right now, it is not possible to customize the CamelContext from a 3d party
dependency that has no access to Camel Main. During the Camel startup, an hook
should be provided that can be used to customize the CamelContext without
access to Camel Main. To achieve this an SPI that loads implementation via
ServiceLoader may be provided during the CamelContext startup.
This way third-party components can provide custom _ContextServicePlugin_
implementations in
_META-INF/services/org.apache.camel.spi.ContextServicePlugin_ and customize the
CamelContext. For example, provide beans, add EventNotifier, and so on.
example of ContextServicePlugin implementation
{code:java}
public class MyContextServicePlugin implements ContextServicePlugin {
@Override
public void load(CamelContext camelContext) {
camelContext.getRegistry().bind("myBean", new TestBean());
camelContext.getRegistry().bind("mySecondBean", new AnotherTestBean());
...
}
}
{code}
This code should be executed during the CamelContext startup, early in the
lifcycle, before the Camel Components are loaded for example.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)