| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
RequiredModelMBean rmm = new RequiredModelMBean();
Based on 13 examples
public class RequiredModelMBean extends Object implements ModelMBean, MBeanRegistration, NotificationEmitter
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.)
Constructor Summary | |
---|---|
Constructs an RequiredModelMBean with an empty
ModelMBeanInfo.
|
|
Constructs a RequiredModelMBean object using ModelMBeanInfo passed in. |
Method Summary | |
---|---|
void |
addAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName, Object inhandback) |
void |
addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) Registers an object which implements the NotificationListener interface as a listener. |
Object |
getAttribute(String attrName) Returns the value of a specific attribute defined for this ModelMBean. |
AttributeList |
getAttributes(String[] attrNames) Returns the values of several attributes in the ModelMBean. |
protected ClassLoaderRepository |
Return the Class Loader Repository used to perform class loading. |
MBeanInfo |
Returns the attributes, operations, constructors and notifications that this RequiredModelMBean exposes for management. |
MBeanNotificationInfo[] |
Returns the array of Notifications always generated by the RequiredModelMBean. |
Object |
Invokes a method on or through a RequiredModelMBean and returns the result of the method execution. |
void |
load() Instantiates this MBean instance with the data found for the MBean in the persistent store. |
void |
Allows the MBean to perform any operations needed after having been unregistered in the MBean server. |
void |
postRegister(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 |
Allows the MBean to perform any operations it needs before being unregistered 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 inlistener, String inAttributeName) |
void |
Removes a listener for Notifications from the RequiredModelMBean. |
void |
removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) |
void |
sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal) |
void |
|
void |
sendNotification(Notification ntfyObj) |
void |
sendNotification(String ntfyText) |
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(Object mr, String mr_type) Sets the instance handle of the object against which to execute all methods in this ModelMBean management interface (MBeanInfo and Descriptors). |
void |
Initializes a ModelMBean object using ModelMBeanInfo passed in. |
void |
store() Captures the current state of this MBean 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.
The RequiredModelMBean's MBeanInfo and Descriptors can be customized using the {@link #setModelMBeanInfo} 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 {@link
RuntimeException} during the construction of the object.public RequiredModelMBean(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
mbi
- The ModelMBeanInfo object to be used by the
RequiredModelMBean. The given ModelMBeanInfo is cloned
and modified as specified by {@link #setModelMBeanInfo}MBeanException
- Wraps a distributed communication Exception.RuntimeOperationsException
- Wraps an
{link java.lang.IllegalArgumentException}:
The MBeanInfo passed in parameter is null.Method Detail |
---|
public void addAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName, Object inhandback) throws MBeanException, RuntimeOperationsException, IllegalArgumentException
inlistener
inAttributeName
inhandback
MBeanException
RuntimeOperationsException
IllegalArgumentException
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
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.public Object getAttribute(String attrName) throws AttributeNotFoundException, MBeanException, ReflectionException
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 {@link ModelMBeanAttributeInfo#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 {@link java.lang.Exception}
thrown while trying to invoke the getter.public AttributeList getAttributes(String[] attrNames)
attrNames
- A String array of names of the attributes
to be retrieved.protected ClassLoaderRepository getClassLoaderRepository()
public MBeanInfo getMBeanInfo()
public MBeanNotificationInfo[] getNotificationInfo()
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"
public Object invoke(String opName, Object[] opArgs, String[] sig) throws MBeanException, ReflectionException
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 invokedsig
- 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 {@link java.lang.Exception}
thrown while trying to invoke the method.public void load() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
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 {@link MBeanException} wrapping a {@link ServiceNotFoundException} is thrown.
MBeanException
- Wraps another exception, or
persistence is not supportedRuntimeOperationsException
- Wraps exceptions from the
persistence mechanismInstanceNotFoundException
- Could not find or load
this MBean from persistent storagepublic void postDeregister()
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.
public void postRegister(Boolean registrationDone)
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.public void preDeregister() throws Exception
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
{@link javax.management.MBeanRegistrationException
MBeanRegistrationException}.public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
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 {@link 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
{@link javax.management.MBeanRegistrationException
MBeanRegistrationException}.public void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName) throws MBeanException, RuntimeOperationsException, ListenerNotFoundException
inlistener
inAttributeName
MBeanException
RuntimeOperationsException
ListenerNotFoundException
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
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.public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
listener
filter
handback
ListenerNotFoundException
public void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal) throws MBeanException, RuntimeOperationsException
inOldVal
inNewVal
MBeanException
RuntimeOperationsException
public void sendAttributeChangeNotification(AttributeChangeNotification ntfyObj) throws MBeanException, RuntimeOperationsException
ntfyObj
MBeanException
RuntimeOperationsException
public void sendNotification(Notification ntfyObj) throws MBeanException, RuntimeOperationsException
ntfyObj
MBeanException
RuntimeOperationsException
public void sendNotification(String ntfyText) throws MBeanException, RuntimeOperationsException
ntfyText
MBeanException
RuntimeOperationsException
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 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.
InvalidAttributeValueException
- No descriptor is defined
for the specified attribute.MBeanException
- Wraps one of the following Exceptions:
ReflectionException
- Wraps an {@link java.lang.Exception}
thrown while trying to invoke the setter.public AttributeList setAttributes(AttributeList attributes)
attributes
- A list of attributes: The identification of the
attributes to be set and the values they are to be set to.public void setManagedResource(Object mr, String mr_type) throws MBeanException, RuntimeOperationsException, InstanceNotFoundException, InvalidTargetObjectTypeException
mr
- Object that is the managed resourcemr_type
- The type of reference for the managed resource.
MBeanException
- The initializer of the object has
thrown an exception.RuntimeOperationsException
- Wraps a {@link
RuntimeException} when setting the resource.InstanceNotFoundException
- The managed resource
object could not be foundInvalidTargetObjectTypeException
- The managed
resource type should be "ObjectReference".public void setModelMBeanInfo(ModelMBeanInfo mbi) throws MBeanException, RuntimeOperationsException
If the ModelMBean is currently registered, this method throws a {@link javax.management.RuntimeOperationsException} wrapping an {@link IllegalStateException}
If the given inModelMBeanInfo does not contain any
{@link ModelMBeanNotificationInfo} for the GENERIC
or ATTRIBUTE_CHANGE
notifications, then the
RequiredModelMBean will supply its own default
{@link ModelMBeanNotificationInfo ModelMBeanNotificationInfo}s for
those missing notifications.
mbi
- The ModelMBeanInfo object to be used
by the ModelMBean.MBeanException
- Wraps a distributed communication
Exception.RuntimeOperationsException
- public void store() throws MBeanException, RuntimeOperationsException, InstanceNotFoundException
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 {@link MBeanException} wrapping a {@link 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 supportedRuntimeOperationsException
- Wraps exceptions from the
persistence mechanismInstanceNotFoundException
- Could not find/access the
persistent store
| |||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |