public abstract class AbstractDynamicMBean
extends java.lang.Object
implements javax.management.DynamicMBean
createMBeanAttributeInfo, if the MBeans has manageable attributes createMBeanOperationInfo, if the MBeans has manageable operations createMBeanNotificationInfo, if the MBeans has manageable notifications createMBeanConstructorInfo, if the MBeans has manageable constructors getMBeanDescription
public class SimpleDynamic extends AbstractDynamicMBean
{
protected MBeanAttributeInfo[] createMBeanAttributeInfo()
{
return new MBeanAttributeInfo[]
{
new MBeanAttributeInfo("Name", String.class.getName(), "The name", true, true, false)
};
}
protected String getMBeanDescription()
{
return "A simple DynamicMBean";
}
public String getName() { ... }
public void setName(String name) { ... }
}
It is responsibility of the developer to specify the metadata and implement the methods specified by the
metadata, that will be invoked via reflection by the AbstractDynamicMBean class. For this reason, the methods
belonging to the MBean implementation (in the case above getName() and setName(...))
must be public.| Modifier | Constructor and Description |
|---|---|
protected |
AbstractDynamicMBean()
Only subclasses can create a new instance of an AbstractDynamicMBean.
|
| Modifier and Type | Method and Description |
|---|---|
protected javax.management.MBeanAttributeInfo[] |
createMBeanAttributeInfo()
To be overridden to return metadata information about manageable attributes.
|
protected javax.management.MBeanConstructorInfo[] |
createMBeanConstructorInfo()
To be overridden to return metadata information about manageable constructors.
|
protected javax.management.MBeanInfo |
createMBeanInfo()
Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override.
|
protected javax.management.MBeanNotificationInfo[] |
createMBeanNotificationInfo()
To be overridden to return metadata information about manageable notifications.
|
protected javax.management.MBeanOperationInfo[] |
createMBeanOperationInfo()
To be overridden to return metadata information about manageable operations.
|
protected java.lang.reflect.Method |
findMethod(java.lang.Class cls,
java.lang.String name,
java.lang.Class[] params)
Returns the (public) method with the given name and signature on the given class.
|
java.lang.Object |
getAttribute(java.lang.String attribute)
Returns the value of the manageable attribute, as specified by the DynamicMBean interface.
|
javax.management.AttributeList |
getAttributes(java.lang.String[] attributes)
Returns the manageable attributes, as specified by the DynamicMBean interface.
|
protected java.lang.String |
getMBeanClassName()
To be overridden to return metadata information about the class name of this MBean;
by default returns this class' name.
|
protected java.lang.String |
getMBeanDescription()
To be overridden to return metadata information about the description of this MBean.
|
javax.management.MBeanInfo |
getMBeanInfo()
Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value
returned by
createMBeanInfo() (that is thus called only once). |
protected java.lang.Object |
getResource()
Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods
|
protected java.lang.Object |
invoke(java.lang.Object resource,
java.lang.String name,
java.lang.Class[] params,
java.lang.Object[] args)
Looks up the method to call on given resource and invokes it.
|
protected java.lang.Object |
invoke(java.lang.String name,
java.lang.Class[] params,
java.lang.Object[] args)
Deprecated.
Replaced by
invoke(Object,String,Class[],Object[]). The resource passed is the resource as set by setResource(java.lang.Object) or - if it is null - 'this' instance. This method is deprecated because it is not thread safe. |
java.lang.Object |
invoke(java.lang.String method,
java.lang.Object[] arguments,
java.lang.String[] params)
Returns the value of the manageable operation as specified by the DynamicMBean interface
|
protected java.lang.Object |
invokeMethod(java.lang.reflect.Method method,
java.lang.Object resource,
java.lang.Object[] args)
Invokes the given method on the given resource object with the given arguments.
|
void |
setAttribute(javax.management.Attribute attribute)
Sets the value of the manageable attribute, as specified by the DynamicMBean interface.
|
javax.management.AttributeList |
setAttributes(javax.management.AttributeList attributes)
Sets the manageable attributes, as specified by the DynamicMBean interface.
|
protected void |
setMBeanInfo(javax.management.MBeanInfo info)
Sets the MBeanInfo object cached by this instance.
|
void |
setResource(java.lang.Object resource)
Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods.
|
protected AbstractDynamicMBean()
createMBeanConstructorInfo()public java.lang.Object getAttribute(java.lang.String attribute)
throws javax.management.AttributeNotFoundException,
javax.management.MBeanException,
javax.management.ReflectionException
getAttribute in interface javax.management.DynamicMBeanjavax.management.AttributeNotFoundExceptionjavax.management.MBeanExceptionjavax.management.ReflectionExceptioncreateMBeanAttributeInfo()public javax.management.AttributeList getAttributes(java.lang.String[] attributes)
getAttributes in interface javax.management.DynamicMBeanpublic javax.management.MBeanInfo getMBeanInfo()
createMBeanInfo() (that is thus called only once).getMBeanInfo in interface javax.management.DynamicMBeancreateMBeanInfo(),
setMBeanInfo(javax.management.MBeanInfo)public java.lang.Object invoke(java.lang.String method,
java.lang.Object[] arguments,
java.lang.String[] params)
throws javax.management.MBeanException,
javax.management.ReflectionException
invoke in interface javax.management.DynamicMBeanjavax.management.MBeanExceptionjavax.management.ReflectionExceptioncreateMBeanOperationInfo()public void setAttribute(javax.management.Attribute attribute)
throws javax.management.AttributeNotFoundException,
javax.management.InvalidAttributeValueException,
javax.management.MBeanException,
javax.management.ReflectionException
setAttribute in interface javax.management.DynamicMBeanjavax.management.AttributeNotFoundExceptionjavax.management.InvalidAttributeValueExceptionjavax.management.MBeanExceptionjavax.management.ReflectionExceptioncreateMBeanAttributeInfo()public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)
setAttributes in interface javax.management.DynamicMBeanprotected java.lang.Object invoke(java.lang.String name,
java.lang.Class[] params,
java.lang.Object[] args)
throws javax.management.InvalidAttributeValueException,
javax.management.MBeanException,
javax.management.ReflectionException
invoke(Object,String,Class[],Object[]). setResource(java.lang.Object) or - if it is null - 'this' instance. javax.management.InvalidAttributeValueExceptionjavax.management.MBeanExceptionjavax.management.ReflectionExceptionprotected java.lang.Object invoke(java.lang.Object resource,
java.lang.String name,
java.lang.Class[] params,
java.lang.Object[] args)
throws javax.management.InvalidAttributeValueException,
javax.management.MBeanException,
javax.management.ReflectionException
javax.management.InvalidAttributeValueExceptionjavax.management.MBeanExceptionjavax.management.ReflectionExceptionfindMethod(java.lang.Class, java.lang.String, java.lang.Class[]),
invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])protected java.lang.reflect.Method findMethod(java.lang.Class cls,
java.lang.String name,
java.lang.Class[] params)
throws java.lang.NoSuchMethodException
java.lang.NoSuchMethodExceptioninvoke(String, Class[], Object[]),
invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])protected java.lang.Object invokeMethod(java.lang.reflect.Method method,
java.lang.Object resource,
java.lang.Object[] args)
throws java.lang.IllegalAccessException,
java.lang.IllegalArgumentException,
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessExceptionjava.lang.IllegalArgumentExceptionjava.lang.reflect.InvocationTargetExceptioninvoke(String, Class[], Object[]),
findMethod(java.lang.Class, java.lang.String, java.lang.Class[])protected java.lang.Object getResource()
setResource(java.lang.Object)public void setResource(java.lang.Object resource)
getResource()protected void setMBeanInfo(javax.management.MBeanInfo info)
getMBeanInfo()protected javax.management.MBeanInfo createMBeanInfo()
protected javax.management.MBeanAttributeInfo[] createMBeanAttributeInfo()
protected javax.management.MBeanConstructorInfo[] createMBeanConstructorInfo()
protected javax.management.MBeanOperationInfo[] createMBeanOperationInfo()
protected javax.management.MBeanNotificationInfo[] createMBeanNotificationInfo()
protected java.lang.String getMBeanClassName()
protected java.lang.String getMBeanDescription()