Package org.apache.tomcat.util.modeler
Class BaseModelMBean
- java.lang.Object
-
- org.apache.tomcat.util.modeler.BaseModelMBean
-
- All Implemented Interfaces:
javax.management.DynamicMBean,javax.management.MBeanRegistration,javax.management.modelmbean.ModelMBeanNotificationBroadcaster,javax.management.NotificationBroadcaster
- Direct Known Subclasses:
BaseCatalinaMBean,DataSourceUserDatabaseMBean,GroupMBean,NamingResourcesMBean,RequestGroupInfo,RoleMBean,SparseUserDatabaseMBean,UpgradeGroupInfo,UserMBean
public class BaseModelMBean extends java.lang.Object implements javax.management.DynamicMBean, javax.management.MBeanRegistration, javax.management.modelmbean.ModelMBeanNotificationBroadcasterBasic implementation of the
DynamicMBeaninterface, 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:
- Only managed resources of type
objectReferenceare supported. - Caching of attribute values and operation results is not supported.
All calls to
invoke()are immediately executed. - Persistence of MBean attributes and operations is not supported.
- All classes referenced as attribute types, operation parameters, or
operation return values must be one of the following:
- One of the Java primitive types (boolean, byte, char, double, float, integer, long, short). Corresponding value will be wrapped in the appropriate wrapper class automatically.
- Operations that return no value should declare a return type of
void.
- Attribute caching is not supported
- Author:
- Craig R. McClanahan, Costin Manolache
-
-
Field Summary
Fields Modifier and Type Field Description protected BaseNotificationBroadcasterattributeBroadcasterNotification broadcaster for attribute changes.protected BaseNotificationBroadcastergeneralBroadcasterNotification broadcaster for general notifications.protected ManagedBeanmanagedBeanMetadata for the mbean instance.protected javax.management.ObjectNameonameprotected java.lang.ObjectresourceThe managed resource this MBean is associated with (if any).protected java.lang.StringresourceType
-
Constructor Summary
Constructors Constructor Description BaseModelMBean()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAttributeChangeNotificationListener(javax.management.NotificationListener listener, java.lang.String name, java.lang.Object handback)Add an attribute change notification event listener to this MBean.voidaddNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback)Add a notification event listener to this MBean.java.lang.ObjectgetAttribute(java.lang.String name)Obtain and return the value of a specific attribute of this MBean.javax.management.AttributeListgetAttributes(java.lang.String[] names)Obtain and return the values of several attributes of this MBean.java.lang.StringgetClassName()javax.management.ObjectNamegetJmxName()java.lang.ObjectgetManagedResource()Get the instance handle of the object against which we execute all methods in this ModelMBean management interface.javax.management.MBeanInfogetMBeanInfo()Return theMBeanInfoobject for this MBean.java.lang.StringgetModelerType()javax.management.MBeanNotificationInfo[]getNotificationInfo()Return anMBeanNotificationInfoobject describing the notifications sent by this MBean.java.lang.StringgetObjectName()java.lang.Objectinvoke(java.lang.String name, java.lang.Object[] params, java.lang.String[] signature)Invoke a particular method on this MBean, and return any returned value.voidpostDeregister()voidpostRegister(java.lang.Boolean registrationDone)voidpreDeregister()javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, javax.management.ObjectName name)voidremoveAttributeChangeNotificationListener(javax.management.NotificationListener listener, java.lang.String name)Remove an attribute change notification event listener from this MBean.voidremoveNotificationListener(javax.management.NotificationListener listener)Remove a notification event listener from this MBean.voidsendAttributeChangeNotification(javax.management.AttributeChangeNotification notification)Send anAttributeChangeNotificationto all registered listeners.voidsendAttributeChangeNotification(javax.management.Attribute oldValue, javax.management.Attribute newValue)Send anAttributeChangeNotificationto all registered listeners.voidsendNotification(java.lang.String message)Send aNotificationwhich contains the specified string as ajmx.modelmbean.genericnotification.voidsendNotification(javax.management.Notification notification)Send aNotificationto all registered listeners as ajmx.modelmbean.generalnotification.voidsetAttribute(javax.management.Attribute attribute)Set the value of a specific attribute of this MBean.javax.management.AttributeListsetAttributes(javax.management.AttributeList attributes)Set the values of several attributes of this MBean.voidsetManagedBean(ManagedBean managedBean)voidsetManagedResource(java.lang.Object resource, java.lang.String type)Set the instance handle of the object against which we will execute all methods in this ModelMBean management interface.java.lang.StringtoString()
-
-
-
Field Detail
-
oname
protected javax.management.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 java.lang.Object resource
The managed resource this MBean is associated with (if any).
-
resourceType
protected java.lang.String resourceType
-
-
Method Detail
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name) throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionExceptionObtain and return the value of a specific attribute of this MBean.- Specified by:
getAttributein interfacejavax.management.DynamicMBean- Parameters:
name- Name of the requested attribute- Throws:
javax.management.AttributeNotFoundException- if this attribute is not supported by this MBeanjavax.management.MBeanException- if the initializer of an object throws an exceptionjavax.management.ReflectionException- if a Java reflection exception occurs when invoking the getter
-
getAttributes
public javax.management.AttributeList getAttributes(java.lang.String[] names)
Obtain and return the values of several attributes of this MBean.- Specified by:
getAttributesin interfacejavax.management.DynamicMBean- Parameters:
names- Names of the requested attributes
-
setManagedBean
public void setManagedBean(ManagedBean managedBean)
-
getMBeanInfo
public javax.management.MBeanInfo getMBeanInfo()
Return theMBeanInfoobject for this MBean.- Specified by:
getMBeanInfoin interfacejavax.management.DynamicMBean
-
invoke
public java.lang.Object invoke(java.lang.String name, java.lang.Object[] params, java.lang.String[] signature) throws javax.management.MBeanException, javax.management.ReflectionExceptionInvoke 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:
invokein interfacejavax.management.DynamicMBean- Parameters:
name- Name of the operation to be invokedparams- Array containing the method parameters of this operationsignature- Array containing the class names representing the signature of this operation- Throws:
javax.management.MBeanException- if the initializer of an object throws an exceptionjavax.management.ReflectionException- if a Java reflection exception occurs when invoking a method
-
setAttribute
public void setAttribute(javax.management.Attribute attribute) throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionExceptionSet the value of a specific attribute of this MBean.- Specified by:
setAttributein interfacejavax.management.DynamicMBean- Parameters:
attribute- The identification of the attribute to be set and the new value- Throws:
javax.management.AttributeNotFoundException- if this attribute is not supported by this MBeanjavax.management.MBeanException- if the initializer of an object throws an exceptionjavax.management.ReflectionException- if a Java reflection exception occurs when invoking the getter
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
setAttributes
public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
Set the values of several attributes of this MBean.- Specified by:
setAttributesin interfacejavax.management.DynamicMBean- Parameters:
attributes- THe names and values to be set- Returns:
- The list of attributes that were set and their new values
-
getManagedResource
public java.lang.Object getManagedResource() throws javax.management.InstanceNotFoundException, javax.management.modelmbean.InvalidTargetObjectTypeException, javax.management.MBeanException, javax.management.RuntimeOperationsExceptionGet the instance handle of the object against which we execute all methods in this ModelMBean management interface.- Returns:
- the backend managed object
- Throws:
javax.management.InstanceNotFoundException- if the managed resource object cannot be foundjavax.management.modelmbean.InvalidTargetObjectTypeException- if the managed resource object is of the wrong typejavax.management.MBeanException- if the initializer of the object throws an exceptionjavax.management.RuntimeOperationsException- if the managed resource or the resource type isnullor invalid
-
setManagedResource
public void setManagedResource(java.lang.Object resource, java.lang.String type) throws javax.management.InstanceNotFoundException, javax.management.MBeanException, javax.management.RuntimeOperationsExceptionSet the instance handle of the object against which we will execute all methods in this ModelMBean management interface. The caller can provide the mbean instance or the object name to the resource, if needed.- Parameters:
resource- The resource object to be managedtype- The type of reference for the managed resource ("ObjectReference", "Handle", "IOR", "EJBHandle", or "RMIReference")- Throws:
javax.management.InstanceNotFoundException- if the managed resource object cannot be foundjavax.management.MBeanException- if the initializer of the object throws an exceptionjavax.management.RuntimeOperationsException- if the managed resource or the resource type isnullor invalid
-
addAttributeChangeNotificationListener
public void addAttributeChangeNotificationListener(javax.management.NotificationListener listener, java.lang.String name, java.lang.Object handback) throws java.lang.IllegalArgumentExceptionAdd an attribute change notification event listener to this MBean.- Specified by:
addAttributeChangeNotificationListenerin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
listener- Listener that will receive event notificationsname- Name of the attribute of interest, ornullto indicate interest in all attributeshandback- Handback object to be sent along with event notifications- Throws:
java.lang.IllegalArgumentException- if the listener parameter is null
-
removeAttributeChangeNotificationListener
public void removeAttributeChangeNotificationListener(javax.management.NotificationListener listener, java.lang.String name) throws javax.management.ListenerNotFoundExceptionRemove an attribute change notification event listener from this MBean.- Specified by:
removeAttributeChangeNotificationListenerin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
listener- The listener to be removedname- The attribute name for which no more events are required- Throws:
javax.management.ListenerNotFoundException- if this listener is not registered in the MBean
-
sendAttributeChangeNotification
public void sendAttributeChangeNotification(javax.management.AttributeChangeNotification notification) throws javax.management.MBeanException, javax.management.RuntimeOperationsExceptionSend anAttributeChangeNotificationto all registered listeners.- Specified by:
sendAttributeChangeNotificationin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
notification- TheAttributeChangeNotificationthat will be passed- Throws:
javax.management.MBeanException- if an object initializer throws an exceptionjavax.management.RuntimeOperationsException- wraps IllegalArgumentException when the specified notification isnullor invalid
-
sendAttributeChangeNotification
public void sendAttributeChangeNotification(javax.management.Attribute oldValue, javax.management.Attribute newValue) throws javax.management.MBeanException, javax.management.RuntimeOperationsExceptionSend anAttributeChangeNotificationto all registered listeners.- Specified by:
sendAttributeChangeNotificationin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
oldValue- The original value of theAttributenewValue- The new value of theAttribute- Throws:
javax.management.MBeanException- if an object initializer throws an exceptionjavax.management.RuntimeOperationsException- wraps IllegalArgumentException when the specified notification isnullor invalid
-
sendNotification
public void sendNotification(javax.management.Notification notification) throws javax.management.MBeanException, javax.management.RuntimeOperationsExceptionSend aNotificationto all registered listeners as ajmx.modelmbean.generalnotification.- Specified by:
sendNotificationin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
notification- TheNotificationthat will be passed- Throws:
javax.management.MBeanException- if an object initializer throws an exceptionjavax.management.RuntimeOperationsException- wraps IllegalArgumentException when the specified notification isnullor invalid
-
sendNotification
public void sendNotification(java.lang.String message) throws javax.management.MBeanException, javax.management.RuntimeOperationsExceptionSend aNotificationwhich contains the specified string as ajmx.modelmbean.genericnotification.- Specified by:
sendNotificationin interfacejavax.management.modelmbean.ModelMBeanNotificationBroadcaster- Parameters:
message- The message string to be passed- Throws:
javax.management.MBeanException- if an object initializer throws an exceptionjavax.management.RuntimeOperationsException- wraps IllegalArgumentException when the specified notification isnullor invalid
-
addNotificationListener
public void addNotificationListener(javax.management.NotificationListener listener, javax.management.NotificationFilter filter, java.lang.Object handback) throws java.lang.IllegalArgumentExceptionAdd a notification event listener to this MBean.- Specified by:
addNotificationListenerin interfacejavax.management.NotificationBroadcaster- Parameters:
listener- Listener that will receive event notificationsfilter- Filter object used to filter event notifications actually delivered, ornullfor no filteringhandback- Handback object to be sent along with event notifications- Throws:
java.lang.IllegalArgumentException- if the listener parameter is null
-
getNotificationInfo
public javax.management.MBeanNotificationInfo[] getNotificationInfo()
Return anMBeanNotificationInfoobject describing the notifications sent by this MBean.- Specified by:
getNotificationInfoin interfacejavax.management.NotificationBroadcaster
-
removeNotificationListener
public void removeNotificationListener(javax.management.NotificationListener listener) throws javax.management.ListenerNotFoundExceptionRemove a notification event listener from this MBean.- Specified by:
removeNotificationListenerin interfacejavax.management.NotificationBroadcaster- Parameters:
listener- The listener to be removed (any and all registrations for this listener will be eliminated)- Throws:
javax.management.ListenerNotFoundException- if this listener is not registered in the MBean
-
getModelerType
public java.lang.String getModelerType()
-
getClassName
public java.lang.String getClassName()
-
getJmxName
public javax.management.ObjectName getJmxName()
-
getObjectName
public java.lang.String getObjectName()
-
preRegister
public javax.management.ObjectName preRegister(javax.management.MBeanServer server, javax.management.ObjectName name) throws java.lang.Exception- Specified by:
preRegisterin interfacejavax.management.MBeanRegistration- Throws:
java.lang.Exception
-
postRegister
public void postRegister(java.lang.Boolean registrationDone)
- Specified by:
postRegisterin interfacejavax.management.MBeanRegistration
-
preDeregister
public void preDeregister() throws java.lang.Exception- Specified by:
preDeregisterin interfacejavax.management.MBeanRegistration- Throws:
java.lang.Exception
-
postDeregister
public void postDeregister()
- Specified by:
postDeregisterin interfacejavax.management.MBeanRegistration
-
-