Hi, I recently stumbled upon something that makes me wonder about OSGI specs APIs. As Metatype was the one API that made me start thinking about the issue, I'll use it as an example but the question is about APIs in general.
So while attempting to replace Felix's Metatype with Equinox one, I realized Felix implementation jar provides also the API while Equinox does not. So my first thought was that there should be another jar with the API alone but I couldn't find one. Second thought was to install osgi.cmpn.jar (it's a bundle after all) but I was told I should never do that and that those jars are provided to be only used as compile time dependencies. So here comes the question - who should provide the APIs at runtime for a OSGI specs? I would actually split the question into a few: - is it really forbidden/nor recommended to use osgi.cmpn.jar at runtime? If so can someone please elaborate? - shouldn't there be independent (perhaps released by OSGI alliance) API bundles? If there should be but they are missing at the moment then why Felix does not provide APIs in a separate bundles instead of packaging them with the implementation? - finally if the expectation is that each implementation provides also the API isn't this leading to split package condition? I'm aware for most specs it probably makes no sense to have 2 different implementations at the same time but still ... I would appreciate if someone can throw more light on the subject. Regards, Milen