The fromRegistry() method has meaning only inside the OSGi context.
The java service loader doesn't work well unless you are using a flat class 
loader. In OSGi this is not the case, so we are also looking up the OSGi 
Service Registry for registered providers & apis.

So how do those providers and apis get registered in OSGi? The Bundle Activator 
of the jclouds-core module is listening for installed bundles and its scanning 
for META-INF/services/.… which then registers to the OSGi service registry. It 
acts like a bridge between java.util.ServiceLoader and the OSGi Service 
Registry (if that makes it easier to understand).


On Jun 28, 2013, at 7:30 PM, fivos <[email protected]> wrote:

> Hi,
> 
> I was going through some code in org.jclouds.providers.
> providers.java
> 
>    /**
>     * Returns all available providers.
>     * 
>     * @return all available providers
>     */
>    public static Iterable<ProviderMetadata> all() {
>      return ImmutableSet.<ProviderMetadata>builder()
>                         .addAll(fromServiceLoader())
>                         .addAll(ProviderRegistry.fromRegistry()).build();
>    }
> 
> Apparently fromRegistry() returns  all the providers which are supposed to be 
> stored in a variable called providers in ProviderRegistry class. Now could 
> someone point to me when/where this providers variable gets initialized with 
> all the provider metadata supported by jclouds? 
> 
> Thanks in advance, I am attaching the code I am using to create a server
> 
> Fivos K.
> 
> p.s: i m sorry if i accidentally sent this twice.

Reply via email to