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 instantiate 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/adaptors 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 RuntimeOperationsException must be thrown on every public method. This allows for wrapping exceptions from distributed communications (RMI, EJB, etc.)
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs an
RequiredModelMBean with an empty
ModelMBeanInfo. | |||||||||||
Constructs a RequiredModelMBean object using ModelMBeanInfo passed in.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Registers an object which implements the NotificationListener interface as a listener.
| |||||||||||
Registers an object which implements the NotificationListener
interface as a listener.
| |||||||||||
Returns the value of a specific attribute defined for this
ModelMBean.
| |||||||||||
Returns the values of several attributes in the ModelMBean.
| |||||||||||
Returns the attributes, operations, constructors and notifications
that this RequiredModelMBean exposes for management.
| |||||||||||
Returns the array of Notifications always generated by the
RequiredModelMBean.
| |||||||||||
Invokes a method on or through a RequiredModelMBean and returns
the result of the method execution.
| |||||||||||
Instantiates this MBean instance with the data found for the MBean in the persistent store. | |||||||||||
Allows the MBean to perform any operations needed after having been
unregistered in the MBean server.
| |||||||||||
Allows the MBean to perform any operations needed after having been
registered in the MBean server or after the registration has failed.
| |||||||||||
Allows the MBean to perform any operations it needs before
being unregistered by the MBean server.
| |||||||||||
Allows the MBean to perform any operations it needs before
being registered in the MBean server.
| |||||||||||
Removes a listener for attributeChangeNotifications from the RequiredModelMBean.
| |||||||||||
Removes a listener from this MBean. | |||||||||||
Removes a listener for Notifications from the RequiredModelMBean.
| |||||||||||
Sends an attributeChangeNotification which is passed in to
the registered attributeChangeNotification listeners on the
ModelMBean.
| |||||||||||
Sends an attributeChangeNotification which contains the old value and new value for the
attribute to the registered AttributeChangeNotification listeners on the ModelMBean.
| |||||||||||
Sends a Notification which contains the text string that is passed in
to the registered Notification listeners on the ModelMBean.
| |||||||||||
Sends a Notification which is passed in to the registered
Notification listeners on the ModelMBean as a
jmx.modelmbean.generic notification.
| |||||||||||
Sets the value of a specific attribute of a named ModelMBean.
| |||||||||||
Sets the values of an array of attributes of this ModelMBean.
| |||||||||||
Sets the instance handle of the object against which to
execute all methods in this ModelMBean management interface
(MBeanInfo and Descriptors).
| |||||||||||
Initializes a ModelMBean object using ModelMBeanInfo passed in.
| |||||||||||
Captures the current state of this MBean instance and writes it out to the persistent store. |
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Return the Class Loader Repository used to perform class loading.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() | |||||||||||
![]() |
Constructs an RequiredModelMBean
with an empty
ModelMBeanInfo.
The RequiredModelMBean's MBeanInfo and Descriptors
can be customized using the setModelMBeanInfo(ModelMBeanInfo)
method.
After the RequiredModelMBean's MBeanInfo and Descriptors are
customized, the RequiredModelMBean can be registered with
the MBeanServer.
MBeanException | Wraps a distributed communication Exception. |
---|---|
RuntimeOperationsException | Wraps a RuntimeException during the construction of the object.
|
Constructs a RequiredModelMBean object using ModelMBeanInfo passed in.
As long as the RequiredModelMBean is not registered
with the MBeanServer yet, the RequiredModelMBean's MBeanInfo and
Descriptors can be customized using the setModelMBeanInfo(ModelMBeanInfo)
method.
After the RequiredModelMBean's MBeanInfo and Descriptors are
customized, the RequiredModelMBean can be registered with the
MBeanServer.
mbi | The ModelMBeanInfo object to be used by the
RequiredModelMBean. The given ModelMBeanInfo is cloned
and modified as specified by setModelMBeanInfo(ModelMBeanInfo) |
---|
MBeanException | Wraps a distributed communication Exception. |
---|---|
RuntimeOperationsException | Wraps an {link java.lang.IllegalArgumentException}: The MBeanInfo passed in parameter is null. |
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.
inlistener | The listener object which will handles notifications emitted by the registered MBean. |
---|---|
inAttributeName | The name of the ModelMBean attribute for which to receive change notifications. If null, then all attribute changes will cause an attributeChangeNotification to be issued. |
inhandback | The context to be sent to the listener with the notification when a notification is emitted. |
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.
listener | 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. |
IllegalArgumentException | The listener cannot be null. |
---|
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:
Note: because of inconsistencies in previous versions of
this specification, it is recommended not to use negative or zero
values for currencyTimeLimit
. To indicate that a
cached value is never valid, omit the
currencyTimeLimit
field. To indicate that it is
always valid, use a very large number for this field.
If the 'getMethod' field contains the name 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 returned value is not compatible with the declared type of the attribute, an exception will be thrown.
If no 'getMethod' field is defined then the default value of the attribute is returned. If the returned value is not compatible with the declared type of the attribute, an exception will be thrown.
The declared type of the attribute is the String returned by
getType()
. A value is compatible
with this type if one of the following is true:
In this implementation, in every case where the getMethod needs to be called, because the method is invoked through the standard "invoke" method and thus needs operationInfo, an operation must be specified for that getMethod so that the invocation works correctly.
attrName | A String specifying the name of the attribute to be retrieved. It must match the name of a ModelMBeanAttributeInfo. |
---|
AttributeNotFoundException | The specified attribute is
not accessible in the MBean.
The following cases may result in an AttributeNotFoundException:
|
---|---|
MBeanException | Wraps one of the following Exceptions:
|
ReflectionException | Wraps an Exception
thrown while trying to invoke the getter. |
RuntimeOperationsException | Wraps an
IllegalArgumentException : The attribute name in
parameter is null. |
Returns the values of several attributes in the ModelMBean. Executes a getAttribute for each attribute name in the attrNames array passed in.
attrNames | 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. |
---|
Returns the attributes, operations, constructors and notifications that this RequiredModelMBean exposes for management.
Returns the array of Notifications always generated by the RequiredModelMBean.
RequiredModelMBean may always send also two additional notifications:
"name=GENERIC,descriptorType=notification,log=T,severity=6,displayName=jmx.modelmbean.generic"
"name=ATTRIBUTE_CHANGE,descriptorType=notification,log=T,severity=6,displayName=jmx.attribute.change"
Invokes a method on or through a RequiredModelMBean and returns the result of the method execution.
If the given method to be invoked, together with the provided signature, matches one of RequiredModelMbean accessible methods, this one will be call. Otherwise the call to the given method will be tried on the managed resource.
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:
Note: because of inconsistencies in previous versions of
this specification, it is recommended not to use negative or zero
values for currencyTimeLimit
. To indicate that a
cached value is never valid, omit the
currencyTimeLimit
field. To indicate that it is
always valid, use a very large number for this field.
opName | 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. |
---|---|
opArgs | An array containing the parameters to be set when the operation is invoked |
sig | 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 operation was invoked. |
MBeanException | Wraps one of the following Exceptions:
|
---|---|
ReflectionException | Wraps an Exception
thrown while trying to invoke the method. |
RuntimeOperationsException | Wraps an
IllegalArgumentException Method name is null.
|
Instantiates this MBean instance with the data found for the MBean in the persistent store. The data loaded could include attribute and operation values.
This method should be called during construction or initialization of this instance, and before the MBean is registered with the MBeanServer.
If the implementation of this class does not support
persistence, an MBeanException
wrapping a ServiceNotFoundException
is thrown.
MBeanException | Wraps another exception, or persistence is not supported |
---|---|
RuntimeOperationsException | Wraps exceptions from the persistence mechanism |
InstanceNotFoundException | Could not find or load this MBean from persistent storage |
Allows the MBean to perform any operations needed after having been unregistered in the MBean server.
In order to ensure proper run-time semantics of RequireModelMBean,
Any subclass of RequiredModelMBean overloading or overriding this
method should call super.postDeregister()
in its own
postDeregister
implementation.
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed.
In order to ensure proper run-time semantics of RequireModelMBean,
Any subclass of RequiredModelMBean overloading or overriding this
method should call super.postRegister(registrationDone)
in its own postRegister
implementation.
registrationDone | Indicates whether or not the MBean has been successfully registered in the MBean server. The value false means that the registration phase has failed. |
---|
Allows the MBean to perform any operations it needs before being unregistered by the MBean server.
In order to ensure proper run-time semantics of RequireModelMBean,
Any subclass of RequiredModelMBean overloading or overriding this
method should call super.preDeregister()
in its own
preDeregister
implementation.
Exception | This exception will be caught by
the MBean server and re-thrown as an
MBeanRegistrationException .
|
---|
Allows the MBean to perform any operations it needs before being registered in the MBean server. If the name of the MBean is not specified, the MBean can provide a name for its registration. If any exception is raised, the MBean will not be registered in the MBean server.
In order to ensure proper run-time semantics of RequireModelMBean,
Any subclass of RequiredModelMBean overloading or overriding this
method should call super.preRegister(server, name)
in its own preRegister
implementation.
server | The MBean server in which the MBean will be registered. |
---|---|
name | The object name of the MBean. This name is null if
the name parameter to one of the createMBean or
registerMBean methods in the MBeanServer
interface is null. In that case, this method must return a
non-null ObjectName for the new MBean. |
name
parameter is not null, it will usually but not necessarily be
the returned value.Exception | This exception will be caught by
the MBean server and re-thrown as an
MBeanRegistrationException .
|
---|
Removes a listener for attributeChangeNotifications from the RequiredModelMBean.
inlistener | The listener name which was handling notifications emitted by the registered MBean. This method will remove all information related to this listener. |
---|---|
inAttributeName | The attribute for which the listener no longer wants to receive attributeChangeNotifications. If null the listener will be removed for all attributeChangeNotifications. |
Removes 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.
listener | 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 |
---|
Removes a listener for Notifications from the RequiredModelMBean.
listener | The listener name which was handling notifications emitted by the registered MBean. This method will remove all information related to this listener. |
---|
ListenerNotFoundException | The listener is not registered in the MBean or is null. |
---|
Sends an attributeChangeNotification which is passed in to the registered attributeChangeNotification listeners on the ModelMBean.
ntfyObj | The notification which is to be passed to the 'handleNotification' method of the listener object. |
---|
Sends an attributeChangeNotification which contains the old value and new value for the attribute to the registered AttributeChangeNotification listeners on the ModelMBean.
inOldVal | The original value for the Attribute |
---|---|
inNewVal | The current value for the Attribute
The constructed attributeChangeNotification will be: type "jmx.attribute.change" source this ModelMBean instance sequence 1 attributeName oldValue.getName() attributeType oldValue's class attributeOldValue oldValue.getValue() attributeNewValue newValue.getValue() |
Sends a Notification which contains the text string that is passed in to the registered Notification listeners on the ModelMBean.
ntfyText | 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.generic" source this ModelMBean instance sequence 1 |
---|
Sends a Notification which is passed in to the registered Notification listeners on the ModelMBean as a jmx.modelmbean.generic notification.
ntfyObj | The notification which is to be passed to the 'handleNotification' method of the listener object. |
---|
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. In this implementation, the operation descriptor must be specified correctly and assigned to the modelMBeanInfo so that the 'setMethod' works correctly. The response from the method is set as the value of the attribute in the descriptor.
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 Persistence policy from the attribute descriptor is used to
guide storing the attribute in a persistent store.
Store the MBean if 'persistPolicy' field is:
The ModelMBeanInfo of the Model MBean is stored in a file.
attribute | 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.
The following cases may result in an AttributeNotFoundException:
|
---|---|
InvalidAttributeValueException | No descriptor is defined for the specified attribute. |
MBeanException | Wraps one of the following Exceptions:
|
ReflectionException | Wraps an Exception
thrown while trying to invoke the setter. |
RuntimeOperationsException | Wraps an
IllegalArgumentException : The attribute in parameter is
null. |
Sets the values of an array of attributes of this ModelMBean. Executes the setAttribute() method for each attribute in the list.
attributes | 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. |
---|
Sets the instance handle of the object against which to execute all methods in this ModelMBean management interface (MBeanInfo and Descriptors).
mr | Object that is the managed resource |
---|---|
mr_type | The type of reference for the managed resource.
Can be: "ObjectReference", "Handle", "IOR", "EJBHandle", or "RMIReference". In this implementation only "ObjectReference" is supported. |
MBeanException | The initializer of the object has thrown an exception. |
---|---|
InstanceNotFoundException | The managed resource object could not be found |
InvalidTargetObjectTypeException | The managed resource type should be "ObjectReference". |
RuntimeOperationsException | Wraps a RuntimeException when setting the resource.
|
Initializes a ModelMBean object using ModelMBeanInfo passed in.
This method makes it possible to set a customized ModelMBeanInfo on
the ModelMBean as long as it is not registered with the MBeanServer.
Once the ModelMBean's ModelMBeanInfo (with Descriptors) are
customized and set on the ModelMBean, the ModelMBean be
registered with the MBeanServer.
If the ModelMBean is currently registered, this method throws
a RuntimeOperationsException
wrapping an
IllegalStateException
If the given inModelMBeanInfo does not contain any
ModelMBeanNotificationInfo
for the GENERIC
or ATTRIBUTE_CHANGE
notifications, then the
RequiredModelMBean will supply its own default
ModelMBeanNotificationInfo
s for
those missing notifications.
mbi | The ModelMBeanInfo object to be used by the ModelMBean. |
---|
MBeanException | Wraps a distributed communication Exception. |
---|---|
RuntimeOperationsException |
|
Captures the current state of this MBean instance and writes it out to the persistent store. The state stored could include attribute and operation values.
If the implementation of this class does not support
persistence, an MBeanException
wrapping a ServiceNotFoundException
is thrown.
Persistence 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' = "onUnregister"
Do not store the MBean if 'persistPolicy' field is:
= "never" = "onUpdate" = "onTimer" && now < 'lastPersistTime' + 'persistPeriod'
MBeanException | Wraps another exception, or persistence is not supported |
---|---|
RuntimeOperationsException | Wraps exceptions from the persistence mechanism |
InstanceNotFoundException | Could not find/access the persistent store |
Return the Class Loader Repository used to perform class loading.
Subclasses may wish to redefine this method in order to return
the appropriate ClassLoaderRepository
that should be used in this object.