On Wed, Apr 16, 2008 at 5:20 PM, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> However, lots of these spec jars define factories (stax, saaj for example) > that use the META-INF/services/ discovery mechanism to find an > implementation of the spec and load it. This mechanism does not fit well in > OSGi (really, it does not), mainly because usually, the classloader > containing the spec jar will not contain the implementation. > I'd like to work on these spec jars so that they will contain an OSGi > BundleActivator that would change the behavior of these factories when > deployed in an OSGi environment (without changing the behavior in other > case). The idea is that the activator would scan OSGi bundles when they are > started to find META-INF/services and populate a map that would be used by > the factory when creating an object before using the standard mechanism. Just to ensure I'm following, you are about to create a activator that would be a bundle listener (o.o.f.BundleListener) and whenever a bundle is registered the activator will scan it for provided services? Can you explain how osgi works now without these META-INF/services-based services? Doesn't it use them at all? > The only real difference compared to what we currently have would be the > addition of a package named org.apache.geronimo.specs.stax (for example) > that would contain the needed classes (i suppose two classes), and the > modification of the factories to delegate to one of these class before using > the standard behavior (the class would do nothing if not deployed in an OSGi > environment). > Has anyone any objection with such an enhancement in the specs jar ? Unless I'm mistaken it shouldn't cause any troubles on non-osgi environments and big +1 for the upcoming changes. Jacek -- Jacek Laskowski http://www.JacekLaskowski.pl