[ https://issues.apache.org/jira/browse/CAMEL-22423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Otavio Rodolfo Piske updated CAMEL-22423: ----------------------------------------- Component/s: camel-core > 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 > Priority: Major > > 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)