public abstract class AbstractMBeanInfoAssembler extends java.lang.Object implements MBeanInfoAssembler
MBeanInfoAssembler interface
that encapsulates the creation of a ModelMBeanInfo instance
but delegates the creation of metadata to subclasses.
This class offers two flavors of Class extraction from a managed bean
instance: getTargetClass(java.lang.Object), extracting the target class behind
any kind of AOP proxy, and getClassToExpose(java.lang.Object), returning the
class or interface that will be searched for annotations and exposed
to the JMX runtime.
| Constructor and Description |
|---|
AbstractMBeanInfoAssembler() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkManagedBean(java.lang.Object managedBean)
Check the given bean instance, throwing an IllegalArgumentException
if it is not eligible for exposure with this assembler.
|
protected abstract javax.management.modelmbean.ModelMBeanAttributeInfo[] |
getAttributeInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Get the attribute metadata for the MBean resource.
|
protected java.lang.String |
getClassName(java.lang.Object managedBean,
java.lang.String beanKey)
Get the class name of the MBean resource.
|
protected java.lang.Class<?> |
getClassToExpose(java.lang.Class<?> beanClass)
Return the class or interface to expose for the given bean class.
|
protected java.lang.Class<?> |
getClassToExpose(java.lang.Object managedBean)
Return the class or interface to expose for the given bean.
|
protected javax.management.modelmbean.ModelMBeanConstructorInfo[] |
getConstructorInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Get the constructor metadata for the MBean resource.
|
protected java.lang.String |
getDescription(java.lang.Object managedBean,
java.lang.String beanKey)
Get the description of the MBean resource.
|
javax.management.modelmbean.ModelMBeanInfo |
getMBeanInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Create an instance of the
ModelMBeanInfoSupport class supplied with all
JMX implementations and populates the metadata through calls to the subclass. |
protected javax.management.modelmbean.ModelMBeanNotificationInfo[] |
getNotificationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Get the notification metadata for the MBean resource.
|
protected abstract javax.management.modelmbean.ModelMBeanOperationInfo[] |
getOperationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Get the operation metadata for the MBean resource.
|
protected java.lang.Class<?> |
getTargetClass(java.lang.Object managedBean)
Return the actual bean class of the given bean instance.
|
protected void |
populateMBeanDescriptor(javax.management.Descriptor descriptor,
java.lang.Object managedBean,
java.lang.String beanKey)
Called after the
ModelMBeanInfo instance has been constructed but
before it is passed to the MBeanExporter. |
public javax.management.modelmbean.ModelMBeanInfo getMBeanInfo(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
ModelMBeanInfoSupport class supplied with all
JMX implementations and populates the metadata through calls to the subclass.getMBeanInfo in interface MBeanInfoAssemblermanagedBean - the bean that will be exposed (might be an AOP proxy)beanKey - the key associated with the managed beanjavax.management.JMException - in case of errorsgetDescription(Object, String),
getAttributeInfo(Object, String),
getConstructorInfo(Object, String),
getOperationInfo(Object, String),
getNotificationInfo(Object, String),
populateMBeanDescriptor(javax.management.Descriptor, Object, String)protected void checkManagedBean(java.lang.Object managedBean)
throws java.lang.IllegalArgumentException
Default implementation is empty, accepting every bean instance.
managedBean - the bean that will be exposed (might be an AOP proxy)java.lang.IllegalArgumentException - the bean is not valid for exposureprotected java.lang.Class<?> getTargetClass(java.lang.Object managedBean)
Default implementation returns the target class for an AOP proxy, and the plain bean class else.
managedBean - the bean instance (might be an AOP proxy)AopUtils.getTargetClass(Object)protected java.lang.Class<?> getClassToExpose(java.lang.Object managedBean)
managedBean - the bean instance (might be an AOP proxy)JmxUtils.getClassToExpose(Object)protected java.lang.Class<?> getClassToExpose(java.lang.Class<?> beanClass)
beanClass - the bean class (might be an AOP proxy class)JmxUtils.getClassToExpose(Class)protected java.lang.String getClassName(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
Default implementation returns a simple description for the MBean based on the class name.
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected java.lang.String getDescription(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
Default implementation returns a simple description for the MBean based on the class name.
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected void populateMBeanDescriptor(javax.management.Descriptor descriptor,
java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
ModelMBeanInfo instance has been constructed but
before it is passed to the MBeanExporter.
Subclasses can implement this method to add additional descriptors to the MBean metadata. Default implementation is empty.
descriptor - the Descriptor for the MBean resource.managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected javax.management.modelmbean.ModelMBeanConstructorInfo[] getConstructorInfo(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
Default implementation returns an empty array of ModelMBeanConstructorInfo.
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected javax.management.modelmbean.ModelMBeanNotificationInfo[] getNotificationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
Default implementation returns an empty array of ModelMBeanNotificationInfo.
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected abstract javax.management.modelmbean.ModelMBeanAttributeInfo[] getAttributeInfo(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errorsprotected abstract javax.management.modelmbean.ModelMBeanOperationInfo[] getOperationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
throws javax.management.JMException
managedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterjavax.management.JMException - in case of errors