[
https://issues.apache.org/jira/browse/CAMEL-7875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14184138#comment-14184138
]
Jyrki Ruuskanen commented on CAMEL-7875:
----------------------------------------
If the embedded registry is empty by default and used in the lookups first it
won't cause any surprises or unwanted side-effects. If the user doesn't use the
embedded registry, everything works exactly as before.
If the user decided to put beans in the embedded registry they should know that
the bean initializations are up to them, as it is for Simple and Jndi
registries now. These beans will stay in their CamelContext's scope and won't
cause problems elsewhere.
Pretty much the only visible change required for all of this is to provide
access to a SimpleRegistry inside CamelContext with public
getEmbeddedRegistry() method. Most of the remaining functionality already
exists in [Osgi]DefaultCamelContext(new SimpleRegistry()) code path.
> Easier write access to Camel context registry
> ---------------------------------------------
>
> Key: CAMEL-7875
> URL: https://issues.apache.org/jira/browse/CAMEL-7875
> Project: Camel
> Issue Type: Improvement
> Components: camel-core
> Reporter: Jyrki Ruuskanen
> Assignee: Willem Jiang
> Priority: Minor
>
> I haven't found a nice way to add beans to Camel context registry through
> Camel context reference in plain Java. Some beans are only needed by a
> certain endpoint and it would make sense to set the bean up with the endpoint
> in routebuilder configure method.
> If we added a reference to self in SimpleRegistry we could setup the Camel
> context by DefaultCamelContext(new SimpleRegistry()) or
> OsgiDefaultCamelContext(bundleContext, new SimpleRegistry()) and easily
> access the registry from the routebuilder with SimpleRegistry registry =
> (SimpleRegistry) getContext().lookupByName(SimpleRegistry.NAME);.
> Then we can set up beans in routebuilder configure and simply add them with
> registry.put. And the same routebuilder could be used in plain Java, in OSGi
> or elsewhere.
> All that is needed is this change in SimpleRegistry:
> {code}
> public static final String NAME;
> static {
> NAME = java.util.UUID.randomUUID().tostring();
> }
> public SimpleRegistry() {
> put.(NAME, this);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)