[
https://issues.apache.org/jira/browse/CAMEL-22423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Federico Mariani reassigned CAMEL-22423:
----------------------------------------
Assignee: Federico Mariani
> 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
> Components: camel-core
> Reporter: Federico Mariani
> Assignee: Federico Mariani
> Priority: Major
> Fix For: 4.15.0
>
>
> 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)