javax.management.modelmbean |
javax.management.modelmbean package
Provides the definition of the ModelMBean classes. A Model
MBean is an MBean that acts as a bridge between the management
interface and the underlying managed resource. Both the
management interface and the managed resource are specified as
Java objects. The same Model MBean implementation can be
reused many times with different management interfaces and
managed resources, and it can provide common functionality
such as persistence and caching.
A Model MBean implements the {@link
javax.management.modelmbean.ModelMBean ModelMBean} interface.
It is a {@link javax.management.DynamicMBean DynamicMBean}
whose {@link javax.management.DynamicMBean#getMBeanInfo()
getMBeanInfo} method returns an object implementing {@link
javax.management.modelmbean.ModelMBeanInfo
ModelMBeanInfo}.
Every MBean has an {@link javax.management.MBeanInfo
MBeanInfo} with information about the MBean itself, and its
attributes, operations, constructors, and notifications. A
Model MBean augments this MBeanInfo with {@link
javax.management.Descriptor Descriptor}s that encode
additional information in the form of (key,value) pairs.
Usually, Descriptor s are instances of {@link
javax.management.modelmbean.DescriptorSupport
DescriptorSupport}.
The class {@link
javax.management.modelmbean.RequiredModelMBean
RequiredModelMBean} provides a standard Model MBean
implementation.
The following example shows a Model MBean being used to make
the get method of a HashMap
available for management through an MBean server. No other
methods are available through the MBean server. There is
nothing special about HashMap here. Public
methods from any public class can be exposed for management in
the same way.
import java.lang.reflect.Method;
import java.util.HashMap;
import javax.management.*;
import javax.management.modelmbean.*;
// ...
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
// The MBean Server
HashMap map = new HashMap();
// The resource that will be managed
// Construct the management interface for the Model MBean
Method getMethod = HashMap.class.getMethod("get", new Class[] {Object.class});
ModelMBeanOperationInfo getInfo =
new ModelMBeanOperationInfo("Get value for key", getMethod);
ModelMBeanInfo mmbi =
new ModelMBeanInfoSupport(HashMap.class.getName(),
"Map of keys and values",
null, // no attributes
null, // no constructors
new ModelMBeanOperationInfo[] {getInfo},
null); // no notifications
// Make the Model MBean and link it to the resource
ModelMBean mmb = new RequiredModelMBean(mmbi);
mmb.setManagedResource(map, "ObjectReference");
// Register the Model MBean in the MBean Server
ObjectName mapName = new ObjectName(":type=Map,name=whatever");
mbs.registerMBean(mmb, mapName);
// Resource can evolve independently of the MBean
map.put("key", "value");
// Can access the "get" method through the MBean Server
mbs.invoke(mapName, "get", new Object[] {"key"}, new String[] {Object.class.getName()});
// returns "value"
@since 1.5
|
Java Source File Name | Type | Comment |
DescriptorSupport.java | Class | This class represents the metadata set for a ModelMBean element. |
InvalidTargetObjectTypeException.java | Class | Exception thrown when an invalid target object type is specified. |
ModelMBean.java | Interface | This interface must be implemented by the ModelMBeans. |
ModelMBeanAttributeInfo.java | Class | The ModelMBeanAttributeInfo object describes an attribute of the ModelMBean.
It is a subclass of MBeanAttributeInfo with the addition of an associated Descriptor
and an implementation of the DescriptorAccess interface.
The fields in the descriptor are defined, but not limited to, the following:
name : attribute name
descriptorType : must be "attribute"
value : current value for attribute
default : default value for attribute
displayName : name of attribute to be used in displays
getMethod : name of operation descriptor for get method
setMethod : name of operation descriptor for set method
protocolMap : object which implements the Descriptor interface: mappings
must be appropriate for the attribute
and entries can be updated or augmented at runtime.
persistPolicy : OnUpdate|OnTimer|NoMoreOftenThan|OnUnregister|Always|Never
persistPeriod : seconds - frequency of persist cycle. |
ModelMBeanConstructorInfo.java | Class | The ModelMBeanConstructorInfo object describes a constructor of the ModelMBean.
It is a subclass of MBeanConstructorInfo with the addition of an associated Descriptor
and an implementation of the DescriptorAccess interface.
The fields in the descriptor are defined, but not limited to, the following:
name : constructor name
descriptorType : must be "operation"
role : must be "constructor"
displayName : human readable name of constructor
visibility : 1-4 where 1: always visible 4: rarely visible
presentationString : xml formatted string to describe how to present operation
The
persistPolicy and
currencyTimeLimit fields
are meaningless for constructors, but are not considered invalid.
The default descriptor will have the
name ,
descriptorType ,
displayName and
role fields. |
ModelMBeanInfo.java | Interface | This interface is implemented by the ModelMBeanInfo for every ModelMBean. |
ModelMBeanInfoSupport.java | Class | This class represents the meta data for ModelMBeans. |
ModelMBeanNotificationBroadcaster.java | Interface | This interface must be implemented by the ModelMBeans. |
ModelMBeanNotificationInfo.java | Class | The ModelMBeanNotificationInfo object describes a notification emitted
by a ModelMBean.
It is a subclass of MBeanNotificationInfo with the addition of an
associated Descriptor and an implementation of the Descriptor interface.
The fields in the descriptor are defined, but not limited to,
the following:
name : notification name
descriptorType : must be "notification"
severity : 0-6 where 0: unknown; 1: non-recoverable;
2: critical, failure; 3: major, severe;
4: minor, marginal, error; 5: warning;
6: normal, cleared, informative
messageID : unique key for message text (to allow translation,
analysis)
messageText : text of notification
log : T - log message F - do not log message
logfile : string fully qualified file name appropriate for
operating system
visibility : 1-4 where 1: always visible 4: rarely visible
presentationString : xml formatted string to allow presentation of data
The default descriptor contains the name, descriptorType,
displayName and severity(=6) fields. |
ModelMBeanOperationInfo.java | Class | The ModelMBeanOperationInfo object describes a management operation of the ModelMBean.
It is a subclass of MBeanOperationInfo with the addition of an associated Descriptor
and an implementation of the DescriptorAccess interface.
The fields in the descriptor are defined, but not limited to, the following:
name : operation name
descriptorType : must be "operation"
class : class where method is defined (fully qualified)
role : must be "operation", "getter", or "setter
targetObject : object on which to execute this method
targetType : type of object reference for targetObject. |
RequiredModelMBean.java | Class | This class is the implementation of a ModelMBean. |
XMLParseException.java | Class | This exception is thrown when an XML formatted string is being parsed into ModelMBean objects
or when XML formatted strings are being created from ModelMBean objects. |