Hi,

Am 02.08.2012 um 14:32 schrieb <[email protected]>:

> Hi,
> 
> Today I worked a little bit with OSGi Hooks, specially with FindHook and 
> EventListenerHook for services. I wanted to try out proxying services. The 
> EventListenerHook works fine and my services are proxied. But I realized that 
> the FindHook event would'nt be called if a service will get a reference of 
> the service implementation by annotating the related setXXX method with 
> @Reference (Bnd style). Maybe it is not a problem with the annotation, but 
> with DS in general.
> 
> This is quite bad, bc there are two services registered one without proxy and 
> one proxied. I only want to get references from the proxied one. In general, 
> without DS, you can get references by calling 
> BundleContext.getServiceReference(java.lang.Class<S> clazz) and the event 
> FindHook.find will be called, where you can decide which ServiceReference you 
> want to return.
> 
> What kind of processes will be executed when I'm using DS like approaches 
> (for me: Bnd annotation @Reference)? As I described in the above section: I 
> want to decide which services should be referenced.

I can only speak for the Apache Felix DS implementation: I use the 
BundleContext.getServiceReferences(String, String) to explicitly access service 
references using the BundleContext of the respective context (thus to also have 
OSGi security applied). I would assume that candidate service references are 
send to the FilterHook before getting the result to the DS implementation.

So, unless there is a bug in the framework implementation or in your hook 
registration, your hook should really be called. (and of course only if the 
getServiceReferences call comes after your hook is registered.

Regards
Felix

> 
> Greetings.
> Christian
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to