public abstract class

AbstractMBeanInfoAssembler

extends Object
implements MBeanInfoAssembler
java.lang.Object
   ↳ org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract implementation of the 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(Object), extracting the target class behind any kind of AOP proxy, and getClassToExpose(Class), returning the class or interface that will be searched for annotations and exposed to the JMX runtime.

Summary

Public Constructors
AbstractMBeanInfoAssembler()
Public Methods
ModelMBeanInfo getMBeanInfo(Object managedBean, String beanKey)
Create an instance of the ModelMBeanInfoSupport class supplied with all JMX implementations and populates the metadata through calls to the subclass.
Protected Methods
void checkManagedBean(Object managedBean)
Check the given bean instance, throwing an IllegalArgumentException if it is not eligible for exposure with this assembler.
abstract ModelMBeanAttributeInfo[] getAttributeInfo(Object managedBean, String beanKey)
Get the attribute metadata for the MBean resource.
String getClassName(Object managedBean, String beanKey)
Get the class name of the MBean resource.
Class<?> getClassToExpose(Object managedBean)
Return the class or interface to expose for the given bean.
Class<?> getClassToExpose(Class<?> beanClass)
Return the class or interface to expose for the given bean class.
ModelMBeanConstructorInfo[] getConstructorInfo(Object managedBean, String beanKey)
Get the constructor metadata for the MBean resource.
String getDescription(Object managedBean, String beanKey)
Get the description of the MBean resource.
ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean, String beanKey)
Get the notification metadata for the MBean resource.
abstract ModelMBeanOperationInfo[] getOperationInfo(Object managedBean, String beanKey)
Get the operation metadata for the MBean resource.
Class getTargetClass(Object managedBean)
Return the actual bean class of the given bean instance.
void populateMBeanDescriptor(Descriptor descriptor, Object managedBean, String beanKey)
Called after the ModelMBeanInfo instance has been constructed but before it is passed to the MBeanExporter.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.jmx.export.assembler.MBeanInfoAssembler

Public Constructors

public AbstractMBeanInfoAssembler ()

Public Methods

public ModelMBeanInfo getMBeanInfo (Object managedBean, String beanKey)

Create an instance of the ModelMBeanInfoSupport class supplied with all JMX implementations and populates the metadata through calls to the subclass.

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

Protected Methods

protected void checkManagedBean (Object managedBean)

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

protected abstract ModelMBeanAttributeInfo[] getAttributeInfo (Object managedBean, String beanKey)

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 the MBeanExporter
Returns
  • the attribute metadata
Throws
JMException in case of errors

protected String getClassName (Object managedBean, String beanKey)

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 the MBeanExporter
Returns
  • the MBean description
Throws
JMException in case of errors

protected Class<?> getClassToExpose (Object managedBean)

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

protected Class<?> getClassToExpose (Class<?> beanClass)

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

protected ModelMBeanConstructorInfo[] getConstructorInfo (Object managedBean, String beanKey)

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 the MBeanExporter
Returns
  • the constructor metadata
Throws
JMException in case of errors

protected String getDescription (Object managedBean, String beanKey)

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 the MBeanExporter
Throws
JMException in case of errors

protected ModelMBeanNotificationInfo[] getNotificationInfo (Object managedBean, String beanKey)

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 the MBeanExporter
Returns
  • the notification metadata
Throws
JMException in case of errors

protected abstract ModelMBeanOperationInfo[] getOperationInfo (Object managedBean, String beanKey)

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 the MBeanExporter
Returns
  • the operation metadata
Throws
JMException in case of errors

protected Class getTargetClass (Object managedBean)

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
  • org.springframework.aop.framework.AopProxyUtils#getTargetClass

protected void populateMBeanDescriptor (Descriptor descriptor, Object managedBean, String beanKey)

Called after the 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.

Parameters
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 MBeanExporter
Throws
JMException in case of errors