Class ThreadSafeComponentManager<T>

  • Type Parameters:
    T - The type of handled extensions
    All Implemented Interfaces:
    LogEnabled, Disposable, Initializable, Contextualizable, Serviceable
    Direct Known Subclasses:
    PluginsComponentManager

    public class ThreadSafeComponentManager<T>
    extends AbstractLogEnabled
    implements Contextualizable, Initializable, Disposable, Serviceable
    Special ServiceManager able to handle extensions.
    It does not actually implements the Avalon ServiceManager interface, to be able to use the Java 5 generic parameter.
    This class is also intended to be used "locally" : its lookup(role) method does NOT propagate to the parent manager if the component does not exist.
    To use the real ServiceManager, use the PluginsServiceManager subclass instead.

    It handles the "PluginAware" interface, implemented by extensions.
    It handles the following Avalon interfaces :
    • LogEnabled
    • Contextualizable
    • Serviceable
    • Configurable
    • Parameterizable
    • Initializable
    • Startable
    • Disposable
    All handled components are considered ThreadSafe, ie only one instance is created at initialization time and returned at each lookup()