Class AbstractMBeanInfoAssembler
- All Implemented Interfaces:
MBeanInfoAssembler
- Direct Known Subclasses:
AbstractReflectiveMBeanInfoAssembler
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.
- Since:
- 1.2
- Author:
- Rob Harrop, Juergen Hoeller
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkManagedBean
(Object managedBean) Check the given bean instance, throwing an IllegalArgumentException if it is not eligible for exposure with this assembler.protected abstract ModelMBeanAttributeInfo[]
getAttributeInfo
(Object managedBean, String beanKey) Get the attribute metadata for the MBean resource.protected String
getClassName
(Object managedBean, String beanKey) Get the class name of the MBean resource.protected Class<?>
getClassToExpose
(Class<?> beanClass) Return the class or interface to expose for the given bean class.protected Class<?>
getClassToExpose
(Object managedBean) Return the class or interface to expose for the given bean.protected ModelMBeanConstructorInfo[]
getConstructorInfo
(Object managedBean, String beanKey) Get the constructor metadata for the MBean resource.protected String
getDescription
(Object managedBean, String beanKey) Get the description of the MBean resource.getMBeanInfo
(Object managedBean, String beanKey) Create an instance of theModelMBeanInfoSupport
class supplied with all JMX implementations and populates the metadata through calls to the subclass.protected ModelMBeanNotificationInfo[]
getNotificationInfo
(Object managedBean, String beanKey) Get the notification metadata for the MBean resource.protected abstract ModelMBeanOperationInfo[]
getOperationInfo
(Object managedBean, String beanKey) Get the operation metadata for the MBean resource.protected Class<?>
getTargetClass
(Object managedBean) Return the actual bean class of the given bean instance.protected void
populateMBeanDescriptor
(Descriptor descriptor, Object managedBean, String beanKey) Called after theModelMBeanInfo
instance has been constructed but before it is passed to theMBeanExporter
.
-
Constructor Details
-
AbstractMBeanInfoAssembler
public AbstractMBeanInfoAssembler()
-
-
Method Details
-
getMBeanInfo
Create an instance of theModelMBeanInfoSupport
class supplied with all JMX implementations and populates the metadata through calls to the subclass.- Specified by:
getMBeanInfo
in interfaceMBeanInfoAssembler
- Parameters:
managedBean
- the bean that will be exposed (might be an AOP proxy)beanKey
- the key associated with the managed bean- Returns:
- the populated ModelMBeanInfo instance
- Throws:
JMException
- in case of errors- See Also:
-
checkManagedBean
Check the given bean instance, throwing an IllegalArgumentException if it is not eligible for exposure with this assembler.Default implementation is empty, accepting every bean instance.
- Parameters:
managedBean
- the bean that will be exposed (might be an AOP proxy)- Throws:
IllegalArgumentException
- the bean is not valid for exposure
-
getTargetClass
Return the actual bean class of the given bean instance. This is the class exposed to description-style JMX properties.Default implementation returns the target class for an AOP proxy, and the plain bean class else.
- Parameters:
managedBean
- the bean instance (might be an AOP proxy)- Returns:
- the bean class to expose
- See Also:
-
getClassToExpose
Return the class or interface to expose for the given bean. This is the class that will be searched for attributes and operations (for example, checked for annotations).- Parameters:
managedBean
- the bean instance (might be an AOP proxy)- Returns:
- the bean class to expose
- See Also:
-
getClassToExpose
Return the class or interface to expose for the given bean class. This is the class that will be searched for attributes and operations- Parameters:
beanClass
- the bean class (might be an AOP proxy class)- Returns:
- the bean class to expose
- See Also:
-
getClassName
Get the class name of the MBean resource.Default implementation returns a simple description for the MBean based on the class name.
- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Returns:
- the MBean description
- Throws:
JMException
- in case of errors
-
getDescription
Get the description of the MBean resource.Default implementation returns a simple description for the MBean based on the class name.
- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Throws:
JMException
- in case of errors
-
populateMBeanDescriptor
protected void populateMBeanDescriptor(Descriptor descriptor, Object managedBean, String beanKey) throws JMException Called after theModelMBeanInfo
instance has been constructed but before it is passed to theMBeanExporter
.Subclasses can implement this method to add additional descriptors to the MBean metadata. Default implementation is empty.
- Parameters:
descriptor
- theDescriptor
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 theMBeanExporter
- Throws:
JMException
- in case of errors
-
getConstructorInfo
protected ModelMBeanConstructorInfo[] getConstructorInfo(Object managedBean, String beanKey) throws JMException Get the constructor metadata for the MBean resource. Subclasses should implement this method to return the appropriate metadata for all constructors that should be exposed in the management interface for the managed resource.Default implementation returns an empty array of
ModelMBeanConstructorInfo
.- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Returns:
- the constructor metadata
- Throws:
JMException
- in case of errors
-
getNotificationInfo
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey) throws JMException Get the notification metadata for the MBean resource. Subclasses should implement this method to return the appropriate metadata for all notifications that should be exposed in the management interface for the managed resource.Default implementation returns an empty array of
ModelMBeanNotificationInfo
.- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Returns:
- the notification metadata
- Throws:
JMException
- in case of errors
-
getAttributeInfo
protected abstract ModelMBeanAttributeInfo[] getAttributeInfo(Object managedBean, String beanKey) throws JMException Get the attribute metadata for the MBean resource. Subclasses should implement this method to return the appropriate metadata for all the attributes that should be exposed in the management interface for the managed resource.- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Returns:
- the attribute metadata
- Throws:
JMException
- in case of errors
-
getOperationInfo
protected abstract ModelMBeanOperationInfo[] getOperationInfo(Object managedBean, String beanKey) throws JMException Get the operation metadata for the MBean resource. Subclasses should implement this method to return the appropriate metadata for all operations that should be exposed in the management interface for the managed resource.- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map of theMBeanExporter
- Returns:
- the operation metadata
- Throws:
JMException
- in case of errors
-