| java.lang.Object javax.management.modelmbean.RequiredModelMBean
RequiredModelMBean | public class RequiredModelMBean implements ModelMBean,MBeanRegistration(Code) | | This class is the implementation of a ModelMBean. An appropriate implementation of a ModelMBean
must be shipped with every JMX Agent and the class must be named RequiredModelMBean.
Java resources wishing to be manageable instatiate the RequiredModelMBean using the MBeanServer's
createMBean method. The resource then sets the MBeanInfo and Descriptors for the RequiredModelMBean
instance. The attributes and operations exposed via the ModelMBeanInfo for the ModelMBean are accessible
from Mbeans, connectors/adapters like other MBeans. Through the Descriptors, values and methods in
the managed application can be defined and mapped to attributes and operations of the ModelMBean.
This mapping can be defined in an XML formatted file or dynamically and
programmatically at runtime.
Every RequiredModelMBean which is instantiated in the MBeanServer becomes manageable:
its attributes and operations
become remotely accessible through the connectors/adaptors connected to that MBeanServer.
A Java object cannot be registered in the MBeanServer unless it is a JMX compliant MBean.
By instantiating a RequiredModelMBean, resources are guaranteed that the MBean is valid.
MBeanException and RuntimeOperatiosException must be thrown on every public method. This allows
for wrappering exceptions from distributed communications (RMI, EJB, etc.)
author: Young Yang |
Method Summary | |
public void | addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) Registers an object which implements the NotificationListener interface as a listener. | public void | addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) Registers an object which implements the NotificationListener interface as a listener. | public Object | getAttribute(String attributeName) Returns the value of a specific attribute defined for this ModelMBean.
The last value returned by an attribute may be cached in the attribute's descriptor.
The valid value will be in the 'value' field if there is one.
If the 'currencyTimeLimit' field in the descriptor is:
null
<0 Then the value is not cached and is never valid. | public AttributeList | getAttributes(String[] attributes) Returns the values of several attributes in the ModelMBean.
Executes a getAttribute for each attribute name in the attrNames array passed in.
Parameters: attributes - A String array of names of the attributes to be retrieved. | public MBeanInfo | getMBeanInfo() | public MBeanNotificationInfo[] | getNotificationInfo() Returns the array of Notifications always generated by the RequiredModelMBean. | public Object | invoke(String operationName, Object[] params, String[] signature) Invokes a method on or through a RequiredModelMBean and returns the result of the method execution.
The last value returned by an operation may be cached in the operation's descriptor which
is in the ModelMBeanOperationInfo's descriptor.
The valid value will be in the 'value' field if there is one.
If the 'currencyTimeLimit' field in the descriptor is:
null
<0 Then the value is not cached and is never valid. | public void | load() | public void | postDeregister() | public void | postRegister(Boolean registrationDone) | public void | preDeregister() | public ObjectName | preRegister(MBeanServer server, ObjectName name) | public void | removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) Removes a listener for attributeChangeNotifications from the RequiredModelMBean. | public void | removeNotificationListener(NotificationListener listener) Removes a listener for Notifications from the RequiredModelMBean. | public void | removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) | public void | sendAttributeChangeNotification(AttributeChangeNotification notification) Sends an attributeChangeNotification which is passed in to the registered
attributeChangeNotification listeners on the ModelMBean. | public void | sendAttributeChangeNotification(Attribute oldAttribute, Attribute newAttribute) Sends an attributeChangeNotification which contains the old value and new value for the
attribute to the registered AttributeChangeNotification listeners on the RequiredModelMBean. | public void | sendNotification(Notification notification) Sends a Notification which is passed in to the registered Notification listeners on the RequiredModelMBean. | public void | sendNotification(String message) Sends a Notification which contains the text string that is passed in
to the registered Notification listeners on the ModelMBean. | public void | setAttribute(Attribute attribute) Sets the value of a specific attribute of a named ModelMBean.
If the 'setMethod' field of the attribute's descriptor
contains the name of a valid operation descriptor, then the
method described by the operation descriptor is executed. | public AttributeList | setAttributes(AttributeList attributes) Sets the values of an array of attributes of this ModelMBean.
Executes the setAttribute() method for each attribute in the list.
Parameters: attributes - A list of attributes: The identification of theattributes to be set and the values they are to be set to. | public void | setManagedResource(Object resource, String type) Sets the instance handle of the object against which to execute all methods in this RequiredModelMBean
management interface (ModelMBeanInfo and Descriptors). | public void | setModelMBeanInfo(ModelMBeanInfo mbeanInfo) Initializes a RequiredModelMBean object using ModelMBeanInfo passed in. | public void | store() |
RequiredModelMBean | public RequiredModelMBean() throws MBeanException, RuntimeOperationsException(Code) | | Constructs an RequiredModelMBean with an empty ModelMBeanInfo.
After the RequiredModelMBean's MBeanInfo and Descriptors are customized, the RequiredModelMBean
should be registered with the MBeanServer.
exception: MBeanException - The constructor of the object has thrown an exception. exception: RuntimeOperationsException - Wraps an IllegalArgumentException. |
RequiredModelMBean | public RequiredModelMBean(ModelMBeanInfo mbeanInfo) throws MBeanException, RuntimeOperationsException(Code) | | Constructs a RequiredModelMBean object using ModelMBeanInfo passed in.
The RequiredModelMBean must be instantiated, but not registered with the MBeanServer.
After the RequiredModelMBean's MBeanInfo and Descriptors are customized, the RequiredModelMBean
should be registered with the MBeanServer.
Parameters: mbeanInfo - The ModelMBeanInfo object to be used by the RequiredModelMBean. exception: MBeanException - The constructor of the object has thrown an exception. exception: RuntimeOperationsException - Wraps an IllegalArgumentException:The MBeanInfo passed in parameter is null or invalid. |
addAttributeChangeNotificationListener | public void addAttributeChangeNotificationListener(NotificationListener listener, String attributeName, Object handback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException(Code) | | Registers an object which implements the NotificationListener interface as a listener. This
object's 'handleNotification()' method will be invoked when any attributeChangeNotification is issued through
or by the ModelMBean. This does not include other Notifications. They must be registered
for independently. An AttributeChangeNotification will be generated for this attributeName.
Parameters: listener - The listener object which will handles notifications emitted by the registered MBean. Parameters: attributeName - The name of the ModelMBean attributeName for which to receive change notifications.If null, then all attributeName changes will cause an attributeChangeNotification to be issued. Parameters: handback - The context to be sent to the listener with the notification when a notification is emitted. exception: IllegalArgumentException - The MBean name doesn't correspond to a registered MBean. |
addNotificationListener | public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException(Code) | | Registers an object which implements the NotificationListener interface as a listener. This
object's 'handleNotification()' method will be invoked when any notification is issued through
or by the ModelMBean. This does not include attributeChangeNotifications. They must be registered
for independently.
Parameters: listener - The listener object which will handles notifications emitted by the registered MBean. Parameters: filter - The filter object. If null, no filtering will be performed before handling notifications. Parameters: handback - The context to be sent to the listener with the notification when a notification is emitted. exception: IllegalArgumentException - The listener could not be added. |
getAttribute | public Object getAttribute(String attributeName) throws AttributeNotFoundException, MBeanException, ReflectionException(Code) | | Returns the value of a specific attribute defined for this ModelMBean.
The last value returned by an attribute may be cached in the attribute's descriptor.
The valid value will be in the 'value' field if there is one.
If the 'currencyTimeLimit' field in the descriptor is:
null
<0 Then the value is not cached and is never valid. Null is returned.
The 'value' and 'lastUpdatedTimeStamp' fields are cleared.
=0 Then the value is always cached and always valid. The 'value' field is returned.
The 'lastUpdatedTimeStamp' field is not checked.
>0 Represents the number of seconds that the 'value' field is valid.
The 'value' field is no longer valid when 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now.
When 'value' is valid, 'valid' is returned.
When 'value' is no longer valid then null is returned and ;value' and 'lastUpdatedTimeStamp'
fields are cleared.
If there is no valid cached value then the 'getMethod' field in the attributes descriptor
is analyzed. If 'getMethod' contains the attributeName of a valid operation descriptor, then the
method described by the operation descriptor is executed. The response from the method
is returned as the value of the attribute. If the operation fails or the response value is
not of the same type as the attribute, an exception will be thrown.
If currencyTimeLimit is > 0, then the value of the attribute is cached in the attribute descriptor's
'value' field and the 'lastUpdatedTimeStamp' field is set to the current time stamp.
Parameters: attributeName - A String specifying the attributeName of the attribute to beretrieved. It must match the attributeName of a ModelMBeanAttributeInfo. The value of the retrieved attribute from the descriptor 'value' field or from theinvokation of the operation in the 'getMethod' field of the descriptor. exception: AttributeNotFoundException - The specified attribute is not accessible in the MBean. exception: MBeanException - Wraps an exception thrown by the MBean's getter. exception: ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter. exception: RuntimeOperationsException - Wraps an IllegalArgumentException: The object attributeName in parameter is null orthe attribute in parameter is null. |
getAttributes | public AttributeList getAttributes(String[] attributes)(Code) | | Returns the values of several attributes in the ModelMBean.
Executes a getAttribute for each attribute name in the attrNames array passed in.
Parameters: attributes - A String array of names of the attributes to be retrieved. The array of the retrieved attributes. exception: RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null orattributes in parameter is null. |
getNotificationInfo | public MBeanNotificationInfo[] getNotificationInfo()(Code) | | Returns the array of Notifications always generated by the RequiredModelMBean.
This will include those specified by the application plus the jmx.modelmbean.generic and
jmx.attribute.change notifications.
MBeanNotificationInfo[] |
invoke | public Object invoke(String operationName, Object[] params, String[] signature) throws MBeanException, ReflectionException(Code) | | Invokes a method on or through a RequiredModelMBean and returns the result of the method execution.
The last value returned by an operation may be cached in the operation's descriptor which
is in the ModelMBeanOperationInfo's descriptor.
The valid value will be in the 'value' field if there is one.
If the 'currencyTimeLimit' field in the descriptor is:
null
<0 Then the value is not cached and is never valid. Null is returned.
The 'value' and 'lastUpdatedTimeStamp' fields are cleared.
=0 Then the value is always cached and always valid. The 'value' field is returned.
The 'lastUpdatedTimeStamp' field is not checked.
>0 Represents the number of seconds that the 'value' field is valid.
The 'value' field is no longer valid when 'lastUpdatedTimeStamp' + 'currencyTimeLimit' > Now.
When 'value' is valid, 'valid' is returned.
When 'value' is no longer valid then null is returned and ;value' and 'lastUpdatedTimeStamp'
fields are cleared.
Note: For this implementation: if the cached value is not a String, then the object must have
a constructor which accepts a string in the same format as the objects toString() method creates.
Parameters: operationName - The name of the method to be invoked. The name can be the fully qualifiedmethod name including the classname, or just the method name if the classname is defined in the 'class'field of the operation descriptor. Parameters: params - An array containing the parameters to be set when the operation isinvoked Parameters: signature - An array containing the signature of the operation. The class objects willbe loaded using the same class loader as the one used for loading the MBean on which the operatoion was invoked. The object returned by the method, which represents the result of invoking the method on thespecified managed resource. exception: MBeanException - Wraps an exception thrown by the MBean's invoked method. exception: ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the method. |
postDeregister | public void postDeregister()(Code) | | |
postRegister | public void postRegister(Boolean registrationDone)(Code) | | |
removeAttributeChangeNotificationListener | public void removeAttributeChangeNotificationListener(NotificationListener listener, String attributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException(Code) | | Removes a listener for attributeChangeNotifications from the RequiredModelMBean.
Parameters: listener - The listener name which was handling notifications emitted by the registered MBean.This method will remove all information related to this listener. Parameters: attributeName - The attributeName for which the listener no longer wants to receive attributeChangeNotifications. exception: ListenerNotFoundException - The couple (listener,handback) is not registered in the MBean.The exception message contains either "listener", "handback" or the object name depending on which object cannot be found. |
removeNotificationListener | public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException(Code) | | Removes a listener for Notifications from the RequiredModelMBean.
Parameters: listener - The listener name which was handling notifications emitted by the registered MBean.This method will remove all information related to this listener. exception: ListenerNotFoundException - The couple (listener,handback) is not registered in the MBean.The exception message contains either "listener", "handback" or the object name depending on which object cannot be found. |
sendAttributeChangeNotification | public void sendAttributeChangeNotification(Attribute oldAttribute, Attribute newAttribute) throws MBeanException, RuntimeOperationsException(Code) | | Sends an attributeChangeNotification which contains the old value and new value for the
attribute to the registered AttributeChangeNotification listeners on the RequiredModelMBean.
Parameters: oldAttribute - The origional value for the Attribute Parameters: newAttribute - The current value for the Attribute The constructed attributeChangeNotification will be:type "jmx.attribute.change"source this RequiredModelMBean instancesequence 1attributeName oldValue.getNameSpace()attributeType oldValue's classattributeOldValue oldValue.getValue()attributeNewValue newValue.getValue() exception: MBeanException - to wrapper implementation exceptions exception: RuntimeOperationsException - to wrapper IllegalArgumentExceptions. |
sendNotification | public void sendNotification(Notification notification) throws MBeanException, RuntimeOperationsException(Code) | | Sends a Notification which is passed in to the registered Notification listeners on the RequiredModelMBean.
Parameters: notification - The notification which is to be passed to the 'handleNotification' methodof the listener object. exception: MBeanException - for implementation exceptions exception: RuntimeOperationsException - to wrapper IllegalArugementExceptions |
sendNotification | public void sendNotification(String message) throws MBeanException, RuntimeOperationsException(Code) | | Sends a Notification which contains the text string that is passed in
to the registered Notification listeners on the ModelMBean.
Parameters: message - The text which is to be passed in the Notification to the 'handleNotification'method of the listener object.the constructed Notification will be:type "jmx.modelmbean.general"source this ModelMBean instancesequence 1 exception: MBeanException - for implementation exceptions exception: RuntimeOperationsException - to wrapper IllegalArugementExceptions |
setAttribute | public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException(Code) | | Sets the value of a specific attribute of a named ModelMBean.
If the 'setMethod' field of the attribute's descriptor
contains the name of a valid operation descriptor, then the
method described by the operation descriptor is executed. The response from the method
is set as the value of the attribute in the descriptor. If the operation fails or the response value is
not of the same type as the attribute, an exception will be thrown.
If currencyTimeLimit is > 0, then the new value for the attribute is cached in the attribute descriptor's
'value' field and the 'lastUpdatedTimeStamp' field is set to the current time stamp.
If the persist field of the attribute's descriptor is not null then
Persistance policy from the attribute descriptor is used to guide storing the attribute in a
persistenant store.
Store the MBean if 'persistPolicy' field is:
!= "never"
= "always"
= "onUpdate"
= "onTimer" and now > 'lastPersistTime' + 'persistPeriod'
= "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod'
Do not store the MBean if 'persistPolicy' field is:
= "never"
= "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
= "NoMoreOftenThan" and now < 'lastPersistTime' + 'persistPeriod'
Parameters: attribute - The Attribute instance containing the name of the attribute to be set and the value it is to be set to. exception: AttributeNotFoundException - The specified attribute is not accessible in the MBean. exception: InvalidAttributeValueException - The specified value for the attribute is not valid. exception: MBeanException - Wraps an exception thrown by the MBean's setter. exception: ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter. exception: RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null orthe attribute in parameter is null. |
setAttributes | public AttributeList setAttributes(AttributeList attributes)(Code) | | Sets the values of an array of attributes of this ModelMBean.
Executes the setAttribute() method for each attribute in the list.
Parameters: attributes - A list of attributes: The identification of theattributes to be set and the values they are to be set to. The array of attributes that were set, with their new values in Attribute instances. exception: RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null orattributes in parameter is null. |
setManagedResource | public void setManagedResource(Object resource, String type) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException(Code) | | Sets the instance handle of the object against which to execute all methods in this RequiredModelMBean
management interface (ModelMBeanInfo and Descriptors). This setting can be overridden by setting
the 'targetObject' field of the ModelMBeanOperationInfo's descriptor.
Parameters: resource - Object that is the managed resource Parameters: type - The type of reference for the managed resource. Can be: ObjectReference,Handle, IOR, EJBHandle, RMIReference.If the MBeanServer cannot process the mr_type passed in, an exception will bethrown. exception: MBeanException - The initializer of the object has thrown an exception. exception: RuntimeOperationsException - Wraps an IllegalArgumentException:The managed resource or managed resoure type passed in parameter is null or invalid. exception: InstanceNotFoundException - The managed resource object could not be found exception: InvalidTargetObjectTypeException - The managed resource type cannot be processed by theRequiredModelMBean or JMX Agent. |
setModelMBeanInfo | public void setModelMBeanInfo(ModelMBeanInfo mbeanInfo) throws MBeanException, RuntimeOperationsException(Code) | | Initializes a RequiredModelMBean object using ModelMBeanInfo passed in.
The RequiredModelMBean should be instantiated, but not registered with the MBeanServer.
After the RequiredModelMBean's MBeanInfo and Descriptors are customized, the RequiredModelMBean
should be registered with the MBeanServer.
Parameters: mbeanInfo - The MBeanInfo object to be used by the RequiredModelMBean. exception: MBeanException - The constructor of the MBeanInfo has return nullor thrown an exception. exception: RuntimeOperationsException - Wraps an IllegalArgumentException:The MBeanInfo passed in parameter is null or invalid. |
|
|