Hi Martin, You may want to take a look at the SPI Fly component in Apache Aries: http://aries.apache.org/modules/spi-fly.html - this allows you to do this relatively easily. Additionally, the OSGi Enterprise Spec 5 chapter 133 covers this [1].
Cheers, David [1] www.osgi.org/Download/Release5 On 7 September 2012 14:50, Martin Lichtin <[email protected]> wrote: > Hi > > From an OSGi bundle I need to call a library that itself uses ServiceLoader > to lookup/load a service provider class. > > This does not seem to work, however. java.util.ServiceLoader.load(x.api.z) > returns no providers. > > I embedded the library, so both file META-INF/services/x.api.z and class > x.spi.z are part of my bundle JAR. > I thought this would be enough to get ServiceLoader to work, but no :-( > > Any ideas? > > > I already tried > > ClassLoader thread = Thread.currentThread().getContextClassLoader(); > > Thread.currentThread().setContextClassLoader(getClass().getClassLoader()); > <call-library> > Thread.currentThread().setContextClassLoader(thread); > > > in case TCCL would be the problem, but that didn't help. > > Martin --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

