ProviderRegistry
Date: 2016-06-24

org.apache.geronimo.osgi.registry.api

## Interface ProviderRegistry

- All Known Implementing Classes:
    ProviderRegistryImpl

      public interface ProviderRegistry

  The implementation of the factory registry used to store the bundle registrations.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `getService(java.lang.String providerId)` Locate and instantiate an instance of a service provider defined in the META-INF/services directory of tracked bundles.
    `java.lang.Class<?>` | `getServiceClass(java.lang.String providerId)` Locate and return the class for a service provider defined in the META-INF/services directory of tracked bundles.
    `java.util.List<java.lang.Class<?>>` | `getServiceClasses(java.lang.String providerId)` Locate all services that match a given provider id and return the implementation classes
    `java.util.List<java.lang.Object>` | `getServices(java.lang.String providerId)` Locate all services that match a given provider id and create instances.
    `java.lang.Class<?>` | `locate(java.lang.String factoryId)` Locate a class by its factory id indicator.
    `java.util.List<java.lang.Class<?>>` | `locateAll(java.lang.String factoryId)` Locate all class files that match a given factory id.

- - ### Method Detail

    - #### locate

          java.lang.Class<?> locate(java.lang.String factoryId)

      Locate a class by its factory id indicator. .
      Parameters:
        `factoryId` - The factory id (generally, a fully qualified class name).
      Returns:
        The Class corresponding to this factory id. Returns null if this is not registered or the indicated class can't be loaded.

    - #### locateAll

          java.util.List<java.lang.Class<?>> locateAll(java.lang.String factoryId)

      Locate all class files that match a given factory id.
      Parameters:
        `factoryId` - The target factory identifier.
      Returns:
        A List containing the class objects corresponding to the factory identifier. Returns an empty list if no matching classes can be located.

    - #### getService

          java.lang.Object getService(java.lang.String providerId)
                                      throws java.lang.Exception

      Locate and instantiate an instance of a service provider defined in the META-INF/services directory of tracked bundles.
      Parameters:
        `providerId` - The name of the target interface class.
      Returns:
        The service instance. Returns null if no service defintions can be located.
      Throws:
        `java.lang.Exception` - Any classloading or other exceptions thrown during the process of creating this service instance.

    - #### getServices

          java.util.List<java.lang.Object> getServices(java.lang.String providerId)

      Locate all services that match a given provider id and create instances.
      Parameters:
        `providerId` - The target provider identifier.
      Returns:
        A List containing the instances corresponding to the provider identifier. Returns an empty list if no matching classes can be located or created

    - #### getServiceClass

          java.lang.Class<?> getServiceClass(java.lang.String providerId)
                                             throws java.lang.ClassNotFoundException

      Locate and return the class for a service provider defined in the META-INF/services directory of tracked bundles.
      Parameters:
        `providerId` - The name of the target interface class.
      Returns:
        The provider class. Returns null if no service defintions can be located.
      Throws:
        `java.lang.Exception` - Any classloading or other exceptions thrown during the process of loading this service provider class.
        `java.lang.ClassNotFoundException`

    - #### getServiceClasses

          java.util.List<java.lang.Class<?>> getServiceClasses(java.lang.String providerId)

      Locate all services that match a given provider id and return the implementation classes
      Parameters:
        `providerId` - The target provider identifier.
      Returns:
        A List containing the classes corresponding to the provider identifier. Returns an empty list if no matching classes can be located.