It will scan the META-INF/services folder in the classpath. That
includes all loaded jars and classes, so as long as your provider jar
contains that file, it should be properly loaded.

On 1 July 2013 14:08, fivos <[email protected]> wrote:
> I've checked the META-INF/services folder and it only contains this file :
> org.jclouds.logging.config.LoggingModule
>
> However the bundle activator is scanning for
> "/META-INF/services/org.jclouds.providers.ProviderMetadata" .
> My main question should be if I create a new Provider, how will I make sure
> it gets registered in OSGi?
>
>
> On Mon, Jul 1, 2013 at 12:40 PM, fivos <[email protected]> wrote:
>
>> Thanks for the reply, It was very helpful. I wasn't aware of  OSGi and how
>> it works. I looked it up and your answer is clear to me now.
>>
>>
>> On Sat, Jun 29, 2013 at 9:20 PM, Ioannis Canellos <[email protected]>wrote:
>>
>>> 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