Apache Tomcat 7.0.28

org.apache.tomcat.util.modeler
Class BaseModelMBean

java.lang.Object
  extended by org.apache.tomcat.util.modeler.BaseModelMBean
All Implemented Interfaces:
DynamicMBean, MBeanRegistration, ModelMBeanNotificationBroadcaster, NotificationBroadcaster
Direct Known Subclasses:
ClassNameMBean, ContainerMBean, ContextEnvironmentMBean, ContextResourceLinkMBean, ContextResourceMBean, GroupMBean, MemoryUserDatabaseMBean, NamingResourcesMBean, RoleMBean, ServiceMBean, UserMBean

public class BaseModelMBean
extends Object
implements DynamicMBean, MBeanRegistration, ModelMBeanNotificationBroadcaster

Basic implementation of the DynamicMBean interface, which supports the minimal requirements of the interface contract.

This can be used directly to wrap an existing java bean, or inside an mlet or anywhere an MBean would be used. Limitations:

Author:
Craig R. McClanahan, Costin Manolache

Field Summary
protected  BaseNotificationBroadcaster attributeBroadcaster
          Notification broadcaster for attribute changes.
protected  BaseNotificationBroadcaster generalBroadcaster
          Notification broadcaster for general notifications.
protected  ManagedBean managedBean
          Metadata for the mbean instance.
protected  ObjectName oname
           
protected  Object resource
          The managed resource this MBean is associated with (if any).
protected  String resourceType
           
 
Constructor Summary
protected BaseModelMBean()
          Construct a ModelMBean with default ModelMBeanInfo information.
 
Method Summary
 void addAttributeChangeNotificationListener(NotificationListener listener, String name, Object handback)
          Add an attribute change notification event listener to this MBean.
 void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          Add a notification event listener to this MBean.
 Object getAttribute(String name)
          Obtain and return the value of a specific attribute of this MBean.
 AttributeList getAttributes(String[] names)
          Obtain and return the values of several attributes of this MBean.
 String getClassName()
           
 ObjectName getJmxName()
           
 Object getManagedResource()
          Get the instance handle of the object against which we execute all methods in this ModelMBean management interface.
 MBeanInfo getMBeanInfo()
          Return the MBeanInfo object for this MBean.
 String getModelerType()
           
 MBeanNotificationInfo[] getNotificationInfo()
          Return an MBeanNotificationInfo object describing the notifications sent by this MBean.
 String getObjectName()
           
 Object invoke(String name, Object[] params, String[] signature)
          Invoke a particular method on this MBean, and return any returned value.
 void postDeregister()
           
 void postRegister(Boolean registrationDone)
           
 void preDeregister()
           
 ObjectName preRegister(MBeanServer server, ObjectName name)
           
 void removeAttributeChangeNotificationListener(NotificationListener listener, String name)
          Remove an attribute change notification event listener from this MBean.
 void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback)
          Remove an attribute change notification event listener from this MBean.
 void removeNotificationListener(NotificationListener listener)
          Remove a notification event listener from this MBean.
 void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          Remove a notification event listener from this MBean.
 void removeNotificationListener(NotificationListener listener, Object handback)
          Remove a notification event listener from this MBean.
 void sendAttributeChangeNotification(Attribute oldValue, Attribute newValue)
          Send an AttributeChangeNotification to all registered listeners.
 void sendAttributeChangeNotification(AttributeChangeNotification notification)
          Send an AttributeChangeNotification to all registered listeners.
 void sendNotification(Notification notification)
          Send a Notification to all registered listeners as a jmx.modelmbean.general notification.
 void sendNotification(String message)
          Send a Notification which contains the specified string as a jmx.modelmbean.generic notification.
 void setAttribute(Attribute attribute)
          Set the value of a specific attribute of this MBean.
 AttributeList setAttributes(AttributeList attributes)
          Set the values of several attributes of this MBean.
 void setManagedBean(ManagedBean managedBean)
           
 void setManagedResource(Object resource, String type)
          Set the instance handle of the object against which we will execute all methods in this ModelMBean management interface.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

oname

protected ObjectName oname

attributeBroadcaster

protected BaseNotificationBroadcaster attributeBroadcaster
Notification broadcaster for attribute changes.


generalBroadcaster

protected BaseNotificationBroadcaster generalBroadcaster
Notification broadcaster for general notifications.


managedBean

protected ManagedBean managedBean
Metadata for the mbean instance.


resource

protected Object resource
The managed resource this MBean is associated with (if any).


resourceType

protected String resourceType
Constructor Detail

BaseModelMBean

protected BaseModelMBean()
                  throws MBeanException,
                         RuntimeOperationsException
Construct a ModelMBean with default ModelMBeanInfo information.

Throws:
MBeanException - if the initializer of an object throws an exception
RuntimeOperationsException - if an IllegalArgumentException occurs
Method Detail

getAttribute

public Object getAttribute(String name)
                    throws AttributeNotFoundException,
                           MBeanException,
                           ReflectionException
Obtain and return the value of a specific attribute of this MBean.

Specified by:
getAttribute in interface DynamicMBean
Parameters:
name - Name of the requested attribute
Throws:
AttributeNotFoundException - if this attribute is not supported by this MBean
MBeanException - if the initializer of an object throws an exception
ReflectionException - if a Java reflection exception occurs when invoking the getter

getAttributes

public AttributeList getAttributes(String[] names)
Obtain and return the values of several attributes of this MBean.

Specified by:
getAttributes in interface DynamicMBean
Parameters:
names - Names of the requested attributes

setManagedBean

public void setManagedBean(ManagedBean managedBean)

getMBeanInfo

public MBeanInfo getMBeanInfo()
Return the MBeanInfo object for this MBean.

Specified by:
getMBeanInfo in interface DynamicMBean

invoke

public Object invoke(String name,
                     Object[] params,
                     String[] signature)
              throws MBeanException,
                     ReflectionException
Invoke a particular method on this MBean, and return any returned value.

IMPLEMENTATION NOTE - This implementation will attempt to invoke this method on the MBean itself, or (if not available) on the managed resource object associated with this MBean.

Specified by:
invoke in interface DynamicMBean
Parameters:
name - Name of the operation to be invoked
params - Array containing the method parameters of this operation
signature - Array containing the class names representing the signature of this operation
Throws:
MBeanException - if the initializer of an object throws an exception
ReflectioNException - if a Java reflection exception occurs when invoking a method
ReflectionException

setAttribute

public void setAttribute(Attribute attribute)
                  throws AttributeNotFoundException,
                         MBeanException,
                         ReflectionException
Set the value of a specific attribute of this MBean.

Specified by:
setAttribute in interface DynamicMBean
Parameters:
attribute - The identification of the attribute to be set and the new value
Throws:
AttributeNotFoundException - if this attribute is not supported by this MBean
MBeanException - if the initializer of an object throws an exception
ReflectionException - if a Java reflection exception occurs when invoking the getter

toString

public String toString()
Overrides:
toString in class Object

setAttributes

public AttributeList setAttributes(AttributeList attributes)
Set the values of several attributes of this MBean.

Specified by:
setAttributes in interface DynamicMBean
Parameters:
attributes - THe names and values to be set
Returns:
The list of attributes that were set and their new values

getManagedResource

public Object getManagedResource()
                          throws InstanceNotFoundException,
                                 InvalidTargetObjectTypeException,
                                 MBeanException,
                                 RuntimeOperationsException
Get the instance handle of the object against which we execute all methods in this ModelMBean management interface.

Throws:
InstanceNotFoundException - if the managed resource object cannot be found
InvalidTargetObjectTypeException - if the managed resource object is of the wrong type
MBeanException - if the initializer of the object throws an exception
RuntimeOperationsException - if the managed resource or the resource type is null or invalid

setManagedResource

public void setManagedResource(Object resource,
                               String type)
                        throws InstanceNotFoundException,
                               MBeanException,
                               RuntimeOperationsException
Set the instance handle of the object against which we will execute all methods in this ModelMBean management interface. This method will detect and call "setModelMbean" method. A resource can implement this method to get a reference to the model mbean. The reference can be used to send notification and access the registry. The caller can provide the mbean instance or the object name to the resource, if needed.

Parameters:
resource - The resource object to be managed
type - The type of reference for the managed resource ("ObjectReference", "Handle", "IOR", "EJBHandle", or "RMIReference")
Throws:
InstanceNotFoundException - if the managed resource object cannot be found
InvalidTargetObjectTypeException - if this ModelMBean is asked to handle a reference type it cannot deal with
MBeanException - if the initializer of the object throws an exception
RuntimeOperationsException - if the managed resource or the resource type is null or invalid

addAttributeChangeNotificationListener

public void addAttributeChangeNotificationListener(NotificationListener listener,
                                                   String name,
                                                   Object handback)
                                            throws IllegalArgumentException
Add an attribute change notification event listener to this MBean.

Specified by:
addAttributeChangeNotificationListener in interface ModelMBeanNotificationBroadcaster
Parameters:
listener - Listener that will receive event notifications
name - Name of the attribute of interest, or null to indicate interest in all attributes
handback - Handback object to be sent along with event notifications
Throws:
IllegalArgumentException - if the listener parameter is null

removeAttributeChangeNotificationListener

public void removeAttributeChangeNotificationListener(NotificationListener listener,
                                                      String name)
                                               throws ListenerNotFoundException
Remove an attribute change notification event listener from this MBean.

Specified by:
removeAttributeChangeNotificationListener in interface ModelMBeanNotificationBroadcaster
Parameters:
listener - The listener to be removed
name - The attribute name for which no more events are required
Throws:
ListenerNotFoundException - if this listener is not registered in the MBean

removeAttributeChangeNotificationListener

public void removeAttributeChangeNotificationListener(NotificationListener listener,
                                                      String attributeName,
                                                      Object handback)
                                               throws ListenerNotFoundException
Remove an attribute change notification event listener from this MBean.

Parameters:
listener - The listener to be removed
attributeName - The attribute name for which no more events are required
handback - Handback object to be sent along with event notifications
Throws:
ListenerNotFoundException - if this listener is not registered in the MBean

sendAttributeChangeNotification

public void sendAttributeChangeNotification(AttributeChangeNotification notification)
                                     throws MBeanException,
                                            RuntimeOperationsException
Send an AttributeChangeNotification to all registered listeners.

Specified by:
sendAttributeChangeNotification in interface ModelMBeanNotificationBroadcaster
Parameters:
notification - The AttributeChangeNotification that will be passed
Throws:
MBeanException - if an object initializer throws an exception
RuntimeOperationsException - wraps IllegalArgumentException when the specified notification is null or invalid

sendAttributeChangeNotification

public void sendAttributeChangeNotification(Attribute oldValue,
                                            Attribute newValue)
                                     throws MBeanException,
                                            RuntimeOperationsException
Send an AttributeChangeNotification to all registered listeners.

Specified by:
sendAttributeChangeNotification in interface ModelMBeanNotificationBroadcaster
Parameters:
oldValue - The original value of the Attribute
newValue - The new value of the Attribute
Throws:
MBeanException - if an object initializer throws an exception
RuntimeOperationsException - wraps IllegalArgumentException when the specified notification is null or invalid

sendNotification

public void sendNotification(Notification notification)
                      throws MBeanException,
                             RuntimeOperationsException
Send a Notification to all registered listeners as a jmx.modelmbean.general notification.

Specified by:
sendNotification in interface ModelMBeanNotificationBroadcaster
Parameters:
notification - The Notification that will be passed
Throws:
MBeanException - if an object initializer throws an exception
RuntimeOperationsException - wraps IllegalArgumentException when the specified notification is null or invalid

sendNotification

public void sendNotification(String message)
                      throws MBeanException,
                             RuntimeOperationsException
Send a Notification which contains the specified string as a jmx.modelmbean.generic notification.

Specified by:
sendNotification in interface ModelMBeanNotificationBroadcaster
Parameters:
message - The message string to be passed
Throws:
MBeanException - if an object initializer throws an exception
RuntimeOperationsException - wraps IllegalArgumentException when the specified notification is null or invalid

addNotificationListener

public void addNotificationListener(NotificationListener listener,
                                    NotificationFilter filter,
                                    Object handback)
                             throws IllegalArgumentException
Add a notification event listener to this MBean.

Specified by:
addNotificationListener in interface NotificationBroadcaster
Parameters:
listener - Listener that will receive event notifications
filter - Filter object used to filter event notifications actually delivered, or null for no filtering
handback - Handback object to be sent along with event notifications
Throws:
IllegalArgumentException - if the listener parameter is null

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
Return an MBeanNotificationInfo object describing the notifications sent by this MBean.

Specified by:
getNotificationInfo in interface NotificationBroadcaster

removeNotificationListener

public void removeNotificationListener(NotificationListener listener)
                                throws ListenerNotFoundException
Remove a notification event listener from this MBean.

Specified by:
removeNotificationListener in interface NotificationBroadcaster
Parameters:
listener - The listener to be removed (any and all registrations for this listener will be eliminated)
Throws:
ListenerNotFoundException - if this listener is not registered in the MBean

removeNotificationListener

public void removeNotificationListener(NotificationListener listener,
                                       Object handback)
                                throws ListenerNotFoundException
Remove a notification event listener from this MBean.

Parameters:
listener - The listener to be removed (any and all registrations for this listener will be eliminated)
handback - Handback object to be sent along with event notifications
Throws:
ListenerNotFoundException - if this listener is not registered in the MBean

removeNotificationListener

public void removeNotificationListener(NotificationListener listener,
                                       NotificationFilter filter,
                                       Object handback)
                                throws ListenerNotFoundException
Remove a notification event listener from this MBean.

Parameters:
listener - The listener to be removed (any and all registrations for this listener will be eliminated)
filter - Filter object used to filter event notifications actually delivered, or null for no filtering
handback - Handback object to be sent along with event notifications
Throws:
ListenerNotFoundException - if this listener is not registered in the MBean

getModelerType

public String getModelerType()

getClassName

public String getClassName()

getJmxName

public ObjectName getJmxName()

getObjectName

public String getObjectName()

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception
Specified by:
preRegister in interface MBeanRegistration
Throws:
Exception

postRegister

public void postRegister(Boolean registrationDone)
Specified by:
postRegister in interface MBeanRegistration

preDeregister

public void preDeregister()
                   throws Exception
Specified by:
preDeregister in interface MBeanRegistration
Throws:
Exception

postDeregister

public void postDeregister()
Specified by:
postDeregister in interface MBeanRegistration

Apache Tomcat 7.0.28

Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.