Class ServiceLoaderImpl

java.lang.Object
org.glassfish.hk2.osgiresourcelocator.ServiceLoader
org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl

public final class ServiceLoaderImpl extends ServiceLoader
  • Field Details

    • rwLock

      private ReadWriteLock rwLock
    • bundleTracker

      private org.osgi.framework.BundleListener bundleTracker
    • bundleContext

      private org.osgi.framework.BundleContext bundleContext
    • providersList

      private ServiceLoaderImpl.ProvidersList providersList
  • Constructor Details

    • ServiceLoaderImpl

      public ServiceLoaderImpl()
  • Method Details

    • getBundleContextSecured

      private org.osgi.framework.BundleContext getBundleContextSecured(org.osgi.framework.Bundle bundle)
    • trackBundles

      public void trackBundles()
    • lookupProviderInstances1

      <T> Iterable<? extends T> lookupProviderInstances1(Class<T> serviceClass, ServiceLoader.ProviderFactory<T> factory)
      Specified by:
      lookupProviderInstances1 in class ServiceLoader
    • lookupProviderClasses1

      <T> Iterable<Class> lookupProviderClasses1(Class<T> serviceClass)
      Specified by:
      lookupProviderClasses1 in class ServiceLoader
    • loadClassSecured

      private Class loadClassSecured(org.osgi.framework.Bundle bundle, String name) throws ClassNotFoundException
      Throws:
      ClassNotFoundException
    • isCompatible

      private boolean isCompatible(Class providerClass, Class serviceClass)
    • load

      private List<String> load(InputStream is) throws IOException
      Loads a single service file and returns the names of the providers. If the same provider appears multiple times, the list contains only one entry for all of the duplicates.
      Returns:
      names of providers, empty list if none is found
      Throws:
      IOException
    • addProviders

      private void addProviders(org.osgi.framework.Bundle bundle)
    • removeProviders

      private void removeProviders(org.osgi.framework.Bundle bundle)
    • debug

      private void debug(String s)
    • debug

      private void debug(String s, Throwable t)