org.jvnet.hk2.osgiadapter
Class AbstractOSGiModulesRegistryImpl

java.lang.Object
  extended by com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
      extended by org.jvnet.hk2.osgiadapter.AbstractOSGiModulesRegistryImpl
All Implemented Interfaces:
ModuleChangeListener, ModulesRegistry, InhabitantsParserFactory
Direct Known Subclasses:
OSGiModulesRegistryImpl, OSGiObrModulesRegistryImpl

public abstract class AbstractOSGiModulesRegistryImpl
extends AbstractModulesRegistryImpl

Author:
sanjeeb.sahoo@oracle.com

Field Summary
protected  org.osgi.service.packageadmin.PackageAdmin pa
           
 
Fields inherited from class com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
modules, parent, providers, repositories
 
Constructor Summary
protected AbstractOSGiModulesRegistryImpl(org.osgi.framework.BundleContext bctx)
           
 
Method Summary
 void addModuleChangeListener(ModuleChangeListener listener, OSGiModuleImpl module)
           
 ModulesRegistry createChild()
          Creates a new child ModulesRegistry in this ModulesRegistry.
 void detachAll()
          Detaches all the modules from this registry.
 Module find(Class clazz)
          Finds the Module that owns the given class.
 ClassLoader getModulesClassLoader(ClassLoader parent, Collection<ModuleDefinition> defs)
          Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition
 ClassLoader getModulesClassLoader(ClassLoader parent, Collection<ModuleDefinition> mds, URL[] urls)
          Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition and also load new urls.
 org.osgi.service.packageadmin.PackageAdmin getPackageAdmin()
           
 ClassLoader getParentClassLoader()
          Returns the parent class loader parenting the class loaders created by modules associated with this registry.
 void parseInhabitants(Module module, String name, ServiceLocator serviceLocator)
           
 void register(ModuleLifecycleListener listener)
          Add a ModuleLifecycleListener to this registry.
 boolean removeModuleChangeListener(ModuleChangeListener listener)
           
 void setParentClassLoader(ClassLoader parent)
          Sets the classloader parenting the class loaders created by the modules associated with this registry.
 void shutdown()
          Shuts down this module's registry, apply housekeeping tasks
 void unregister(ModuleLifecycleListener listener)
          Removes an ModuleLifecycleListener from this registry.
 
Methods inherited from class com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
add, add, add, addRepository, addRepository, changed, createInhabitantsParser, createServiceLocator, dumpState, getModules, getModules, getModulesProvider, getProvidersClass, getProvidingModule, getRepository, getRunningServices, initializeServiceLocator, loadFromRepository, makeModuleFor, makeModuleFor, makeModuleFor, newModule, newServiceLocator, newServiceLocator, populateConfig, populateServiceLocator, print, registerRunningService, remove, removeRepository, unregisterRunningService
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

pa

protected org.osgi.service.packageadmin.PackageAdmin pa
Constructor Detail

AbstractOSGiModulesRegistryImpl

protected AbstractOSGiModulesRegistryImpl(org.osgi.framework.BundleContext bctx)
Method Detail

shutdown

public void shutdown()
Description copied from interface: ModulesRegistry
Shuts down this module's registry, apply housekeeping tasks


parseInhabitants

public void parseInhabitants(Module module,
                             String name,
                             ServiceLocator serviceLocator)
                      throws IOException,
                             BootException
Specified by:
parseInhabitants in class AbstractModulesRegistryImpl
Throws:
IOException
BootException

createChild

public ModulesRegistry createChild()
Description copied from interface: ModulesRegistry
Creates a new child ModulesRegistry in this ModulesRegistry.


detachAll

public void detachAll()
Description copied from interface: ModulesRegistry
Detaches all the modules from this registry. The modules are not deconstructed when calling this method.


setParentClassLoader

public void setParentClassLoader(ClassLoader parent)
Sets the classloader parenting the class loaders created by the modules associated with this registry.

Parameters:
parent - parent class loader

getParentClassLoader

public ClassLoader getParentClassLoader()
Returns the parent class loader parenting the class loaders created by modules associated with this registry.

Returns:
the parent classloader

getModulesClassLoader

public ClassLoader getModulesClassLoader(ClassLoader parent,
                                         Collection<ModuleDefinition> mds,
                                         URL[] urls)
                                  throws ResolveError
Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition and also load new urls.

Parameters:
parent - the parent class loader for the returned class loader instance
mds - module definitions for all modules this classloader should be capable of loading
urls - urls to be added to the module classloader
Returns:
class loader instance
Throws:
ResolveError - if one of the provided module definition cannot be resolved

getModulesClassLoader

public ClassLoader getModulesClassLoader(ClassLoader parent,
                                         Collection<ModuleDefinition> defs)
                                  throws ResolveError
Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition

Parameters:
parent - the parent class loader for the returned class loader instance
defs - module definitions for all modules this classloader should be capable of loading classes from
Returns:
class loader instance
Throws:
ResolveError - if one of the provided module definition cannot be resolved

find

public Module find(Class clazz)
Description copied from interface: ModulesRegistry
Finds the Module that owns the given class.

Returns:
null if the class is loaded outside the module system.

getPackageAdmin

public org.osgi.service.packageadmin.PackageAdmin getPackageAdmin()

addModuleChangeListener

public void addModuleChangeListener(ModuleChangeListener listener,
                                    OSGiModuleImpl module)

removeModuleChangeListener

public boolean removeModuleChangeListener(ModuleChangeListener listener)

register

public void register(ModuleLifecycleListener listener)
Description copied from interface: ModulesRegistry
Add a ModuleLifecycleListener to this registry. The listener will be notified for each module startup and shutdown.

Parameters:
listener - the listener implementation

unregister

public void unregister(ModuleLifecycleListener listener)
Description copied from interface: ModulesRegistry
Removes an ModuleLifecycleListener from this registry. Notification of module startup and shutdown will not be emitted to this listener any longer.

Parameters:
listener - the listener to unregister


Copyright © 2013 Oracle Corporation. All Rights Reserved.