org.apache.avalon.phoenix.components.manager
Class AbstractSystemManager

java.lang.Object
  |
  +--AbstractLogEnabled
        |
        +--org.apache.avalon.phoenix.components.manager.AbstractSystemManager
All Implemented Interfaces:
SystemManager
Direct Known Subclasses:
AbstractJMXManager, NoopSystemManager

public abstract class AbstractSystemManager
extends AbstractLogEnabled
implements SystemManager

This is abstract implementation of SystemManager.

Author:
Peter Donald
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.apache.avalon.phoenix.interfaces.SystemManager
ROLE
 
Constructor Summary
AbstractSystemManager()
           
 
Method Summary
protected abstract  Object export(String name, Object object, Class[] interfaces)
          Export the object to the particular management medium using the supplied object and interfaces.
 SystemManager getSubContext(String parent, String type)
          Returns the subcontext of the specified name.
 void initialize()
           
 void register(String name, Object object)
          Register an object for management.
 void register(String name, Object object, Class[] interfaces)
          Register an object for management.
protected abstract  void unexport(String name, Object exportedObject)
          Stop the exported object from being managed.
 void unregister(String name)
          Unregister named object.
protected abstract  void verifyInterface(Class clazz)
          Verify that an interface conforms to the requirements of management medium.
protected  void verifyName(String name, Object object)
          Verfify that name is well formed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSystemManager

public AbstractSystemManager()
Method Detail

initialize

public void initialize()
                throws Exception
Exception

register

public void register(String name,
                     Object object,
                     Class[] interfaces)
              throws ManagerException,
                     IllegalArgumentException
Description copied from interface: SystemManager
Register an object for management. The object is exported through some management scheme (typically JMX) and the management is restricted to the interfaces passed in as a parameter to method.

Specified by:
register in interface SystemManager
Parameters:
name - the name to register object under
object - the object
interfaces - the interfaces to register the component under
Throws:
ManagerException - if an error occurs. An error could occur if the object doesn't implement the interfaces, the interfaces parameter contain non-instance classes, the name is already registered etc.
IllegalArgumentException - if object or interfaces is null
See Also:
SystemManager.register(String, Object, Class[])

register

public void register(String name,
                     Object object)
              throws ManagerException,
                     IllegalArgumentException
Description copied from interface: SystemManager
Register an object for management. The object is exported through some management scheme (typically JMX). Note that the particular management scheme will most likely use reflection to extract manageable information.

Specified by:
register in interface SystemManager
Parameters:
name - the name to register object under
object - the object
Throws:
ManagerException - if an error occurs such as name already registered.
IllegalArgumentException - if object is null
See Also:
SystemManager.register(String, Object)

unregister

public void unregister(String name)
                throws ManagerException
Description copied from interface: SystemManager
Unregister named object.

Specified by:
unregister in interface SystemManager
Parameters:
name - the name of object to unregister
Throws:
ManagerException - if an error occurs such as when no such object registered.
See Also:
SystemManager.unregister(String)

getSubContext

public SystemManager getSubContext(String parent,
                                   String type)
                            throws ManagerException
Returns the subcontext of the specified name. If it does not exist it is created.

Specified by:
getSubContext in interface SystemManager
Parameters:
parent - name of the object in the parent context that will own this one
type - of objects that will be managed in this context
Returns:
the subcontext with the specified name
Throws:
ManagerException - if context cannot be created or retrieved

export

protected abstract Object export(String name,
                                 Object object,
                                 Class[] interfaces)
                          throws ManagerException
Export the object to the particular management medium using the supplied object and interfaces. This needs to be implemented by subclasses.

Parameters:
name - the name of object
object - the object
interfaces - the interfaces
Returns:
the exported object
Throws:
ManagerException - if an error occurs

unexport

protected abstract void unexport(String name,
                                 Object exportedObject)
                          throws ManagerException
Stop the exported object from being managed.

Parameters:
name - the name of object
exportedObject - the object return by export
Throws:
ManagerException - if an error occurs

verifyName

protected void verifyName(String name,
                          Object object)
                   throws ManagerException
Verfify that name is well formed.

Parameters:
name - the name
object - the object so named
ManagerException

verifyInterface

protected abstract void verifyInterface(Class clazz)
                                 throws ManagerException
Verify that an interface conforms to the requirements of management medium.

Parameters:
clazz - the interface class
Throws:
ManagerException - if verification fails


Copyright © 2001 Apache Jakarta Project. All Rights Reserved.