## org.apache.geronimo.osgi.locator
Class ProviderLocator

    java.lang.Object
      org.apache.geronimo.osgi.locator.ProviderLocator

    public class ProviderLocator

extends java.lang.Object

Method Summary
`static void` `destroy()` Cleanup resources on bundle shutdown.
`static java.lang.Object` `getService(java.lang.String iface, java.lang.Class<?> contextClass, java.lang.ClassLoader loader)` Get a single service instance that matches an interface definition.
`static java.lang.Class<?>` `getServiceClass(java.lang.String iface, java.lang.Class<?> contextClass, java.lang.ClassLoader loader)` Locate a service class that matches an interface definition.
`static java.util.List<java.lang.Class<?>>` `getServiceClasses(java.lang.String iface, java.lang.Class<?> contextClass, java.lang.ClassLoader loader)` Get a list of service class implementations that match an interface name.
`static java.util.List<java.lang.Object>` `getServices(java.lang.String iface, java.lang.Class<?> contextClass, java.lang.ClassLoader loader)` Get a list of services that match a given interface name.
`static void` `init(org.osgi.framework.BundleContext c)` initialize the tracker statics for this bundle
`static java.lang.Class<?>` `loadClass(java.lang.String className)` Utility class for locating a class with OSGi registry support.
`static java.lang.Class<?>` `loadClass(java.lang.String className, java.lang.Class<?> contextClass)` Utility class for locating a class with OSGi registry support.
`static java.lang.Class<?>` `loadClass(java.lang.String className, java.lang.Class<?> contextClass, java.lang.ClassLoader loader)` Standardized utility method for performing class lookups with support for OSGi registry lookups.
`static java.lang.Class<?>` `locate(java.lang.String providerId)` Locate a class by its provider id indicator.
`static java.util.List<java.lang.Class<?>>` `locateAll(java.lang.String providerId)` Locate all class files that match a given factory id.
`static java.lang.String` `lookupByJREPropertyFile(java.lang.String path, java.lang.String property)` Perform a service class discovery by looking for a property in a target properties file located in the java.home directory.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### init

    public static void init(org.osgi.framework.BundleContext c)

  initialize the tracker statics for this bundle

  Parameters:
    `c` - The starup BundleContext.

### destroy

    public static void destroy()

  Cleanup resources on bundle shutdown.

### locate

    public static java.lang.Class<?> locate(java.lang.String providerId)

  Locate a class by its provider id indicator. .

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

### locateAll

    public static java.util.List<java.lang.Class<?>> locateAll(java.lang.String providerId)

  Locate all class files that match a given factory id.

  Parameters:
    `providerId` - The target provider identifier.
  Returns:
    A List containing the class objects corresponding to the provider identifier. Returns an empty list if no matching classes can be located.

### loadClass

    public static java.lang.Class<?> loadClass(java.lang.String className)
                                        throws java.lang.ClassNotFoundException

  Utility class for locating a class with OSGi registry support. Uses the thread context classloader as part of the search order.

  Parameters:
    `className` - The name of the target class.
  Returns:
    The loaded class.
  Throws:
    `java.lang.ClassNotFoundException` - Thrown if the class cannot be located.

### loadClass

    public static java.lang.Class<?> loadClass(java.lang.String className,
                                               java.lang.Class<?> contextClass)
                                        throws java.lang.ClassNotFoundException

  Utility class for locating a class with OSGi registry support. Uses the thread context classloader as part of the search order.

  Parameters:
    `className` - The name of the target class.
  Returns:
    The loaded class.
  Throws:
    `java.lang.ClassNotFoundException` - Thrown if the class cannot be located.

### loadClass

    public static java.lang.Class<?> loadClass(java.lang.String className,
                                               java.lang.Class<?> contextClass,
                                               java.lang.ClassLoader loader)
                                        throws java.lang.ClassNotFoundException

  Standardized utility method for performing class lookups with support for OSGi registry lookups.

  Parameters:
    `className` - The name of the target class.
    `loader` - An optional class loader.
  Returns:
    The loaded class
  Throws:
    `java.lang.ClassNotFoundException` - Thrown if the class cannot be loaded.

### getService

    public static java.lang.Object getService(java.lang.String iface,
                                              java.lang.Class<?> contextClass,
                                              java.lang.ClassLoader loader)
                                       throws java.lang.Exception

  Get a single service instance that matches an interface definition.

  Parameters:
    `iface` - The name of the required interface.
    `contextClass` - The class requesting the lookup (used for class resolution).
    `loader` - A class loader to use for searching for service definitions and loading classes.
  Returns:
    The service instance, or null if no matching services can be found.
  Throws:
    `java.lang.Exception` - Thrown for any classloading or exceptions thrown trying to instantiate a service instance.

### getServiceClass

    public static java.lang.Class<?> getServiceClass(java.lang.String iface,
                                                     java.lang.Class<?> contextClass,
                                                     java.lang.ClassLoader loader)
                                              throws java.lang.ClassNotFoundException

  Locate a service class that matches an interface definition.

  Parameters:
    `iface` - The name of the required interface.
    `contextClass` - The class requesting the lookup (used for class resolution).
    `loader` - A class loader to use for searching for service definitions and loading classes.
  Returns:
    The located class, or null if no matching services can be found.
  Throws:
    `java.lang.Exception` - Thrown for any classloading exceptions thrown trying to load the class.
    `java.lang.ClassNotFoundException`

### getServices

    public static java.util.List<java.lang.Object> getServices(java.lang.String iface,
                                                               java.lang.Class<?> contextClass,
                                                               java.lang.ClassLoader loader)
                                                        throws java.lang.Exception

  Get a list of services that match a given interface name. This searches both the current class path and the global repository for matches.

  Parameters:
    `iface` - The name of the required interface.
    `contextClass` - The class requesting the lookup (used for class resolution).
    `loader` - A class loader to use for searching for service definitions and loading classes.
  Returns:
    A list of matching services. Returns an empty list if there are no matches.
  Throws:
    `java.lang.Exception` - Thrown for any classloading or exceptions thrown trying to instantiate a service instance.

### getServiceClasses

    public static java.util.List<java.lang.Class<?>> getServiceClasses(java.lang.String iface,
                                                                       java.lang.Class<?> contextClass,
                                                                       java.lang.ClassLoader loader)
                                                                throws java.lang.Exception

  Get a list of service class implementations that match an interface name. This searches both the current class path and the global repository for matches.

  Parameters:
    `iface` - The name of the required interface.
    `contextClass` - The class requesting the lookup (used for class resolution).
    `loader` - A class loader to use for searching for service definitions and loading classes.
  Returns:
    A list of matching provider classes. Returns an empty list if there are no matches.
  Throws:
    `java.lang.Exception` - Thrown for any classloading exceptions thrown trying to load a provider class.

### lookupByJREPropertyFile

    public static java.lang.String lookupByJREPropertyFile(java.lang.String path,
                                                           java.lang.String property)
                                                    throws java.io.IOException

  Perform a service class discovery by looking for a property in a target properties file located in the java.home directory.

  Parameters:
    `path` - The relative path to the desired properties file.
    `property` - The name of the required property.
  Returns:
    The value of the named property within the properties file. Returns null if the property doesn't exist or the properties file doesn't exist.
  Throws:
    `java.io.IOException`