Class ServiceLoaderImpl
java.lang.Object
org.glassfish.hk2.osgiresourcelocator.ServiceLoader
org.glassfish.hk2.osgiresourcelocator.ServiceLoaderImpl
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class
private static class
private static class
List ofServiceLoaderImpl.ProvidersPerBundle
Synchronisation is handled by outer class.private static class
Map of service name to provider names for a particular bundleNested classes/interfaces inherited from class org.glassfish.hk2.osgiresourcelocator.ServiceLoader
ServiceLoader.ProviderFactory<T>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.osgi.framework.BundleContext
private org.osgi.framework.BundleListener
private ServiceLoaderImpl.ProvidersList
private ReadWriteLock
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addProviders
(org.osgi.framework.Bundle bundle) private void
private void
private org.osgi.framework.BundleContext
getBundleContextSecured
(org.osgi.framework.Bundle bundle) private boolean
isCompatible
(Class providerClass, Class serviceClass) load
(InputStream is) Loads a single service file and returns the names of the providers.private Class
loadClassSecured
(org.osgi.framework.Bundle bundle, String name) lookupProviderClasses1
(Class<T> serviceClass) (package private) <T> Iterable
<? extends T> lookupProviderInstances1
(Class<T> serviceClass, ServiceLoader.ProviderFactory<T> factory) private void
removeProviders
(org.osgi.framework.Bundle bundle) void
Methods inherited from class org.glassfish.hk2.osgiresourcelocator.ServiceLoader
initialize, lookupProviderClasses, lookupProviderInstances, lookupProviderInstances, reset
-
Field Details
-
rwLock
-
bundleTracker
private org.osgi.framework.BundleListener bundleTracker -
bundleContext
private org.osgi.framework.BundleContext bundleContext -
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 classServiceLoader
-
lookupProviderClasses1
- Specified by:
lookupProviderClasses1
in classServiceLoader
-
loadClassSecured
private Class loadClassSecured(org.osgi.framework.Bundle bundle, String name) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
isCompatible
-
load
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
-
debug
-