You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by smokemaker <sm...@mail.ru> on 2013/03/06 09:18:23 UTC
Catch NoSuchComponentException in
org.apache.camel.impl.CompositeRegistry#lookup
Hi, all!
I use Camel 2.10.3 in ServiceMix 4.5.0
Could someone please explain how to use
org.apache.camel.impl.CompositeRegistry?
I've got CamelContext, defined in bundle "A" and want to dynamically add to
it a registry for resolving components from bundle "B".
1. I get the context's registry:
Registry registry = camelContext().getRegistry();
if (registry instanceof
org.apache.camel.impl.PropertyPlaceholderDelegateRegistry)
registry =
((org.apache.camel.impl.PropertyPlaceholderDelegateRegistry)registry).getRegistry();
2. create registry for current bundle:
BlueprintContainerRegistry selfRegistry = new
BlueprintContainerRegistry(blueprintContainer);
3. add selfRegistry to context's CompositeRegistry:
if (registry instanceof org.apache.camel.impl.CompositeRegistry) {
((org.apache.camel.impl.CompositeRegistry)registry).addRegistry(selfRegistry);
----------------------
Now, what we have in composite registry:
1. OsgiServiceRegistry [for bundle A]
2. BlueprintContainerRegistry [for bundle A]
3. BlueprintContainerRegistry [for bundle B]
---------------------
When trying to lookup component from bundle B I've got exception
org.osgi.service.blueprint.container.NoSuchComponentException
CompositeRegistry#lookup just lookups iterating the rigistries it has. And
gets exception on the second one (BlueprintContainerRegistry [for bundle
A]).
1. Am I using CompositeRegistry not in proper way?
2. If not, may be it's a bug and must be placed into the issue tracker? To
fix it the exception must be caught in CompositeRegistry#lookup
Thanks a lot!
--
View this message in context: http://camel.465427.n5.nabble.com/Catch-NoSuchComponentException-in-org-apache-camel-impl-CompositeRegistry-lookup-tp5728645.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Re: Catch NoSuchComponentException in
org.apache.camel.impl.CompositeRegistry#lookup
Posted by Willem jiang <wi...@gmail.com>.
Yes, The CompositeRegistry should keep looking the registry and catch the exception.
I just fill a JIRA[1] for it.
[1]https://issues.apache.org/jira/browse/CAMEL-6135
--
Willem Jiang
Red Hat, Inc.
FuseSource is now part of Red Hat
Web: http://www.fusesource.com | http://www.redhat.com
Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English)
http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
Twitter: willemjiang
Weibo: 姜宁willem
On Wednesday, March 6, 2013 at 4:18 PM, smokemaker wrote:
> Hi, all!
>
>
> I use Camel 2.10.3 in ServiceMix 4.5.0
> Could someone please explain how to use
> org.apache.camel.impl.CompositeRegistry?
> I've got CamelContext, defined in bundle "A" and want to dynamically add to
> it a registry for resolving components from bundle "B".
> 1. I get the context's registry:
>
> Registry registry = camelContext().getRegistry();
> if (registry instanceof
> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry)
> registry =
> ((org.apache.camel.impl.PropertyPlaceholderDelegateRegistry)registry).getRegistry();
> 2. create registry for current bundle:
> BlueprintContainerRegistry selfRegistry = new
> BlueprintContainerRegistry(blueprintContainer);
> 3. add selfRegistry to context's CompositeRegistry:
> if (registry instanceof org.apache.camel.impl.CompositeRegistry) {
>
> ((org.apache.camel.impl.CompositeRegistry)registry).addRegistry(selfRegistry);
> ----------------------
> Now, what we have in composite registry:
> 1. OsgiServiceRegistry [for bundle A]
> 2. BlueprintContainerRegistry [for bundle A]
> 3. BlueprintContainerRegistry [for bundle B]
> ---------------------
>
> When trying to lookup component from bundle B I've got exception
> org.osgi.service.blueprint.container.NoSuchComponentException
>
> CompositeRegistry#lookup just lookups iterating the rigistries it has. And
> gets exception on the second one (BlueprintContainerRegistry [for bundle
> A]).
>
> 1. Am I using CompositeRegistry not in proper way?
> 2. If not, may be it's a bug and must be placed into the issue tracker? To
> fix it the exception must be caught in CompositeRegistry#lookup
>
> Thanks a lot!
>
>
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Catch-NoSuchComponentException-in-org-apache-camel-impl-CompositeRegistry-lookup-tp5728645.html
> Sent from the Camel - Users mailing list archive at Nabble.com (http://Nabble.com).