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]

Reply via email to