|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--javax.management.modelmbean.RequiredModelMBean
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.)
| Constructor Summary | |
RequiredModelMBean()
Constructs an RequiredModelMBean with an empty ModelMBeanInfo.
|
|
RequiredModelMBean(ModelMBeanInfo mbeanInfo)
Constructs a RequiredModelMBean object using ModelMBeanInfo passed in. |
|
| Method Summary | |
void |
addAttributeChangeNotificationListener(NotificationListener listener,
java.lang.String attributeName,
java.lang.Object handback)
Registers an object which implements the NotificationListener interface as a listener. |
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
Registers an object which implements the NotificationListener interface as a listener. |
java.lang.Object |
getAttribute(java.lang.String attributeName)
Returns the value of a specific attribute defined for this ModelMBean. |
AttributeList |
getAttributes(java.lang.String[] attributes)
Returns the values of several attributes in the ModelMBean. |
MBeanInfo |
getMBeanInfo()
Provides the exposed attributes and actions of the Dynamic MBean using an MBeanInfo object. |
MBeanNotificationInfo[] |
getNotificationInfo()
Returns the array of Notifications always generated by the RequiredModelMBean. |
java.lang.Object |
invoke(java.lang.String operationName,
java.lang.Object[] params,
java.lang.String[] signature)
Invokes a method on or through a RequiredModelMBean and returns the result of the method execution. |
void |
load()
load a modelMBean from a serialized file, if the ModelMBean is initliazing, use it's ClassName + ".ser" as it's filename, or will look for the MBeanDescriptor |
void |
postDeregister()
Allows the MBean to perform any operations needed after having been de-registered in the MBean server. |
void |
postRegister(java.lang.Boolean registrationDone)
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed. |
void |
preDeregister()
Allows the MBean to perform any operations it needs before being de-registered by the MBean server. |
ObjectName |
preRegister(MBeanServer server,
ObjectName name)
Allows the MBean to perform any operations it needs before being registered in the MBean server. |
void |
removeAttributeChangeNotificationListener(NotificationListener listener,
java.lang.String attributeName)
Removes a listener for attributeChangeNotifications from the RequiredModelMBean. |
void |
removeNotificationListener(NotificationListener listener)
Removes a listener for Notifications from the RequiredModelMBean. |
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
Removes a listener from this MBean. |
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. |
void |
sendAttributeChangeNotification(AttributeChangeNotification notification)
Sends an attributeChangeNotification which is passed in to the registered attributeChangeNotification listeners on the ModelMBean. |
void |
sendNotification(Notification notification)
Sends a Notification which is passed in to the registered Notification listeners on the RequiredModelMBean. |
void |
sendNotification(java.lang.String message)
Sends a Notification which contains the text string that is passed in to the registered Notification listeners on the ModelMBean. |
void |
setAttribute(Attribute attribute)
Sets the value of a specific attribute of a named ModelMBean. |
AttributeList |
setAttributes(AttributeList attributes)
Sets the values of an array of attributes of this ModelMBean. |
void |
setManagedResource(java.lang.Object resource,
java.lang.String type)
Sets the instance handle of the object against which to execute all methods in this RequiredModelMBean management interface (ModelMBeanInfo and Descriptors). |
void |
setModelMBeanInfo(ModelMBeanInfo mbeanInfo)
Initializes a RequiredModelMBean object using ModelMBeanInfo passed in. |
void |
store()
Captures the current state of this MMBean instance and writes it out to the persistent store. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public RequiredModelMBean()
throws MBeanException,
RuntimeOperationsException
RequiredModelMBean with an empty ModelMBeanInfo.
After the RequiredModelMBean's MBeanInfo and Descriptors are customized, the RequiredModelMBean
should be registered with the MBeanServer.
MBeanException - The constructor of the object has thrown an exception.
RuntimeOperationsException - Wraps an IllegalArgumentException.
public RequiredModelMBean(ModelMBeanInfo mbeanInfo)
throws MBeanException,
RuntimeOperationsException
mbeanInfo - The ModelMBeanInfo object to be used by the RequiredModelMBean.
MBeanException - The constructor of the object has thrown an exception.
RuntimeOperationsException - Wraps an IllegalArgumentException:
The MBeanInfo passed in parameter is null or invalid.| Method Detail |
public void setModelMBeanInfo(ModelMBeanInfo mbeanInfo)
throws MBeanException,
RuntimeOperationsException
setModelMBeanInfo in interface ModelMBeanmbeanInfo - The MBeanInfo object to be used by the RequiredModelMBean.
MBeanException - The constructor of the MBeanInfo has return null
or thrown an exception.
RuntimeOperationsException - Wraps an IllegalArgumentException:
The MBeanInfo passed in parameter is null or invalid.
public void setManagedResource(java.lang.Object resource,
java.lang.String type)
throws MBeanException,
RuntimeOperationsException,
InstanceNotFoundException,
InvalidTargetObjectTypeException
setManagedResource in interface ModelMBeanresource - Object that is the managed resourcetype - 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 be
thrown.
MBeanException - The initializer of the object has thrown an exception.
RuntimeOperationsException - Wraps an IllegalArgumentException:
The managed resource or managed resoure type passed in parameter is null or invalid.
InstanceNotFoundException - The managed resource object could not be found
InvalidTargetObjectTypeException - The managed resource type cannot be processed by the
RequiredModelMBean or JMX Agent.
public void load()
throws MBeanException,
RuntimeOperationsException,
InstanceNotFoundException
load in interface PersistentMBeanMBeanException
RuntimeOperationsException
InstanceNotFoundException
public void store()
throws MBeanException,
RuntimeOperationsException,
InstanceNotFoundException
PersistentMBeanPersistance policy from the mbean and attribute descriptor is used to guide execution of this method. The MBean should be stored if 'persistPolicy' field is:
!= "never" = "always" = "onTimer" and now > 'lastPersistTime' + 'persistPeriod' = "NoMoreOftenThan" and now > 'lastPersistTime' + 'persistPeriod'Do not store the MBean if 'persistPolicy' field is: = "never" = "onUpdate" = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
store in interface PersistentMBeanRuntimeOperationsException - Wraps exceptions from the persistence mechanism
InstanceNotFoundException - Could not find/access the persistant store
MBeanException - Wraps another exception or persistence is not supportedpublic MBeanInfo getMBeanInfo()
DynamicMBean
getMBeanInfo in interface DynamicMBeanMBeanInfo allowing all attributes and actions
exposed by this Dynamic MBean to be retrieved.
public java.lang.Object invoke(java.lang.String operationName,
java.lang.Object[] params,
java.lang.String[] signature)
throws MBeanException,
ReflectionException
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.
invoke in interface DynamicMBeanoperationName - The name of the method to be invoked. The name can be the fully qualified
method name including the classname, or just the method name if the classname is defined in the 'class'
field of the operation descriptor.params - An array containing the parameters to be set when the operation is
invokedsignature - An array containing the signature of the operation. The class objects will
be loaded using the same class loader as the one used for loading the MBean on which the operatoion was invoked.
MBeanException - Wraps an exception thrown by the MBean's invoked method.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the method.
public java.lang.Object getAttribute(java.lang.String attributeName)
throws AttributeNotFoundException,
MBeanException,
ReflectionException
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.
getAttribute in interface DynamicMBeanattributeName - A String specifying the attributeName of the attribute to be
retrieved. It must match the attributeName of a ModelMBeanAttributeInfo.
AttributeNotFoundException - The specified attribute is not accessible in the MBean.
MBeanException - Wraps an exception thrown by the MBean's getter.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter.
RuntimeOperationsException - Wraps an IllegalArgumentException: The object attributeName in parameter is null or
the attribute in parameter is null.public AttributeList getAttributes(java.lang.String[] attributes)
getAttributes in interface DynamicMBeanattributes - A String array of names of the attributes to be retrieved.
RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null or
attributes in parameter is null.
public void setAttribute(Attribute attribute)
throws AttributeNotFoundException,
InvalidAttributeValueException,
MBeanException,
ReflectionException
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'
setAttribute in interface DynamicMBeanattribute - The Attribute instance containing the name of the attribute to be set and the value it is to be set to.
AttributeNotFoundException - The specified attribute is not accessible in the MBean.
InvalidAttributeValueException - The specified value for the attribute is not valid.
MBeanException - Wraps an exception thrown by the MBean's setter.
ReflectionException - Wraps an java.lang.Exception thrown while trying to invoke the setter.
RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null or
the attribute in parameter is null.public AttributeList setAttributes(AttributeList attributes)
setAttributes in interface DynamicMBeanattributes - A list of attributes: The identification of the
attributes to be set and the values they are to be set to.
RuntimeOperationsException - Wraps an IllegalArgumentException: The object name in parameter is null or
attributes in parameter is null.
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
throws java.lang.IllegalArgumentException
addNotificationListener in interface NotificationBroadcasterlistener - The listener object which will handles notifications emitted by the registered MBean.filter - The filter object. If null, no filtering will be performed before handling notifications.handback - The context to be sent to the listener with the notification when a notification is emitted.
java.lang.IllegalArgumentException - The listener could not be added.
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
removeNotificationListener in interface NotificationBroadcasterlistener - The listener name which was handling notifications emitted by the registered MBean.
This method will remove all information related to this listener.
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.
public void sendNotification(Notification notification)
throws MBeanException,
RuntimeOperationsException
sendNotification in interface ModelMBeanNotificationBroadcasternotification - The notification which is to be passed to the 'handleNotification' method
of the listener object.
MBeanException - for implementation exceptions
RuntimeOperationsException - to wrapper IllegalArugementExceptions
public void sendNotification(java.lang.String message)
throws MBeanException,
RuntimeOperationsException
sendNotification in interface ModelMBeanNotificationBroadcastermessage - 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 instance
sequence 1
MBeanException - for implementation exceptions
RuntimeOperationsException - to wrapper IllegalArugementExceptionspublic MBeanNotificationInfo[] getNotificationInfo()
getNotificationInfo in interface NotificationBroadcaster
public void addAttributeChangeNotificationListener(NotificationListener listener,
java.lang.String attributeName,
java.lang.Object handback)
throws MBeanException,
RuntimeOperationsException,
java.lang.IllegalArgumentException
addAttributeChangeNotificationListener in interface ModelMBeanNotificationBroadcasterlistener - The listener object which will handles notifications emitted by the registered MBean.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.handback - The context to be sent to the listener with the notification when a notification is emitted.
java.lang.IllegalArgumentException - The MBean name doesn't correspond to a registered MBean.
MBeanException
RuntimeOperationsException
public void removeAttributeChangeNotificationListener(NotificationListener listener,
java.lang.String attributeName)
throws MBeanException,
RuntimeOperationsException,
ListenerNotFoundException
removeAttributeChangeNotificationListener in interface ModelMBeanNotificationBroadcasterlistener - The listener name which was handling notifications emitted by the registered MBean.
This method will remove all information related to this listener.attributeName - The attributeName for which the listener no longer wants to receive attributeChangeNotifications.
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.
MBeanException
RuntimeOperationsException
public void sendAttributeChangeNotification(AttributeChangeNotification notification)
throws MBeanException,
RuntimeOperationsException
sendAttributeChangeNotification in interface ModelMBeanNotificationBroadcasternotification - The notification which is to be passed to the 'handleNotification' method
of the listener object.
MBeanException
RuntimeOperationsException
public void sendAttributeChangeNotification(Attribute oldAttribute,
Attribute newAttribute)
throws MBeanException,
RuntimeOperationsException
sendAttributeChangeNotification in interface ModelMBeanNotificationBroadcasteroldAttribute - The origional value for the AttributenewAttribute - The current value for the Attribute
The constructed attributeChangeNotification will be: type "jmx.attribute.change" source this RequiredModelMBean instance sequence 1 attributeName oldValue.getName() attributeType oldValue's class attributeOldValue oldValue.getValue() attributeNewValue newValue.getValue()
MBeanException - to wrapper implementation exceptions
RuntimeOperationsException - to wrapper IllegalArgumentExceptions.
public void removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
java.lang.Object handback)
throws ListenerNotFoundException
NotificationEmitterRemoves a listener from this MBean. The MBean must have a
listener that exactly matches the given listener,
filter, and handback parameters. If
there is more than one such listener, only one is removed.
The filter and handback parameters
may be null if and only if they are null in a listener to be
removed.
removeNotificationListener in interface NotificationEmitterlistener - A listener that was previously added to this
MBean.filter - The filter that was specified when the listener
was added.handback - The handback that was specified when the listener was
added.
ListenerNotFoundException - The listener is not
registered with the MBean, or it is not registered with the
given filter and handback.
public ObjectName preRegister(MBeanServer server,
ObjectName name)
throws java.lang.Exception
MBeanRegistration
preRegister in interface MBeanRegistrationserver - The MBean server in which the MBean will be registered.name - The object name of the MBean.
java.lang.Exception - This exception should be caught by the MBean server and re-thrown
as an MBeanRegistrationException.public void postRegister(java.lang.Boolean registrationDone)
MBeanRegistration
postRegister in interface MBeanRegistrationregistrationDone - Indicates whether or not the MBean has been successfully registered in
the MBean server. The value false means that the registration phase has failed.
public void preDeregister()
throws java.lang.Exception
MBeanRegistration
preDeregister in interface MBeanRegistrationjava.lang.Exception - This exception should be caught by the MBean server and re-thrown
as an MBeanRegistrationException.public void postDeregister()
MBeanRegistration
postDeregister in interface MBeanRegistration
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||