On 2/21/2011 9:57 AM, Peter Kriens wrote:
Ok, I guess I figured it out :-) At least I hope.

The problem is that Equinox and Felix have been working together to make the 
visibility of services workable in practice but forgot to update the spec. The 
magic to make it work is to create a dummy bundle and use that for service 
proxy registration. You only need one for all service proxies.

It turns out that both Equinox and Felix detect an "extender" by looking at the 
implementation class of the Service Factory. If the Bundle Context does not corresponds 
to the class loader of the Service Factory implementation then they assume you are an 
extender and they always grant you visibility.

I have a couple of questions about this logic

1) Is this 'extender' notion part of the existing specification...or it's just not been specified yet? 2) If a bundle can create, install, manage, etc a new bundle that satisfies this extender condition...and then use it to register a ServiceFactory, then why can't it simply register a ServiceFactory directly? That is...why is it necessary to have an extender at all? 3) Which versions of Equinox and Felix have this extender logic...and is it possible to do something that will work properly (or at least tolerably) on older versions of the framework?


Otherwise, the original OSGi rules come into play that are much more restricted.
So by using a dummy bundle for your service registrations you tell Equinox and 
Felix that you're an extender and they will give you some more leeway. An added 
benefit is that this dummy bundle can also have no imports and exports so never 
give you a problem with conflicting imports/exports.

I had thought from BJ's notes that imports (of the service type packages + versions) would be needed in the dummy bundle. Is that not correct? More generally, what must this dummy bundle consist of? Finally...dummy bundle creation code that satisfies the necessary extender bundle conditions would be much appreciated (as I don't want to fumble around with creating an extender that isn't structured as necessary, etc).

Thanks,

Scott


_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to