Top Description Constructors Methods
org.springframework.jmx.export.assembler

public abstract Class AbstractMBeanInfoAssembler

extends Object
implements MBeanInfoAssembler
Class Inheritance
All Implemented Interfaces
org.springframework.jmx.export.assembler.MBeanInfoAssembler
Known Direct Subclasses
org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
Imports
javax.management.Descriptor, .JMException, javax.management.modelmbean.ModelMBeanAttributeInfo, .ModelMBeanConstructorInfo, .ModelMBeanInfo, .ModelMBeanInfoSupport, .ModelMBeanNotificationInfo, .ModelMBeanOperationInfo, org.springframework.aop.support.AopUtils, org.springframework.jmx.support.JmxUtils

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

Authors
Rob Harrop, Juergen Hoeller
Since
1.2

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected void
checkManagedBean(Object
the bean that will be exposed (might be an AOP proxy)
managedBean
)

Check the given bean instance, throwing an IllegalArgumentException if it is not eligible for exposure with this assembler.

protected abstract ModelMBeanAttributeInfo[]

Returns:

the attribute metadata
getAttributeInfo
(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the attribute metadata for the MBean resource.

protected String

Returns:

the MBean description
getClassName
(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the class name of the MBean resource.

protected Class<?>

Returns:

the bean class to expose
getClassToExpose
(Object
the bean instance (might be an AOP proxy)
managedBean
)

Return the class or interface to expose for the given bean.

protected Class<?>

Returns:

the bean class to expose
getClassToExpose
(Class<?>
the bean class (might be an AOP proxy class)
beanClass
)

Return the class or interface to expose for the given bean class.

protected ModelMBeanConstructorInfo[]

Returns:

the constructor metadata
getConstructorInfo
(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the constructor metadata for the MBean resource.

protected String
getDescription(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the description of the MBean resource.

public ModelMBeanInfo

Returns:

the populated ModelMBeanInfo instance
getMBeanInfo
(Object
the bean that will be exposed (might be an AOP proxy)
managedBean
,
String
the key associated with the managed bean
beanKey
)

Implements org.springframework.jmx.export.assembler.MBeanInfoAssembler.getMBeanInfo.

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

Returns:

the notification metadata
getNotificationInfo
(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the notification metadata for the MBean resource.

protected abstract ModelMBeanOperationInfo[]

Returns:

the operation metadata
getOperationInfo
(Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Get the operation metadata for the MBean resource.

protected Class<?>

Returns:

the bean class to expose
getTargetClass
(Object
the bean instance (might be an AOP proxy)
managedBean
)

Return the actual bean class of the given bean instance.

protected void
populateMBeanDescriptor(Descriptor
the Descriptor for the MBean resource.
descriptor
,
Object
the bean instance (might be an AOP proxy)
managedBean
,
String
the key associated with the MBean in the beans map of the MBeanExporter
beanKey
)

Called after the ModelMBeanInfo instance has been constructed but before it is passed to the MBeanExporter.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

AbstractMBeanInfoAssemblerback to summary
public AbstractMBeanInfoAssembler()

Method Detail

checkManagedBeanback to summary
protected void checkManagedBean(Object managedBean) throws IllegalArgumentException

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:Object

the bean that will be exposed (might be an AOP proxy)

Exceptions
IllegalArgumentException:
the bean is not valid for exposure
getAttributeInfoback to summary
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:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Returns:ModelMBeanAttributeInfo[]

the attribute metadata

Exceptions
JMException:
in case of errors
getClassNameback to summary
protected String getClassName(Object managedBean, String beanKey) throws JMException

Get the class name of the MBean resource.

Default implementation returns a simple description for the MBean based on the class name.

Parameters
managedBean:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Returns:String

the MBean description

Exceptions
JMException:
in case of errors
getClassToExposeback to summary
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:Object

the bean instance (might be an AOP proxy)

Returns:Class<?>

the bean class to expose

See Also
JmxUtils#getClassToExpose(Object)
getClassToExposeback to summary
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:Class<?>

the bean class (might be an AOP proxy class)

Returns:Class<?>

the bean class to expose

See Also
JmxUtils#getClassToExpose(Class)
getConstructorInfoback to summary
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:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Returns:ModelMBeanConstructorInfo[]

the constructor metadata

Exceptions
JMException:
in case of errors
getDescriptionback to summary
protected String getDescription(Object managedBean, String beanKey) throws JMException

Get the description of the MBean resource.

Default implementation returns a simple description for the MBean based on the class name.

Parameters
managedBean:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Exceptions
JMException:
in case of errors
getMBeanInfoback to summary
public ModelMBeanInfo getMBeanInfo(Object managedBean, String beanKey) throws JMException

Implements org.springframework.jmx.export.assembler.MBeanInfoAssembler.getMBeanInfo.

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

Parameters
managedBean:Object

the bean that will be exposed (might be an AOP proxy)

beanKey:String

the key associated with the managed bean

Returns:ModelMBeanInfo

the populated ModelMBeanInfo instance

Annotations
@Override
Exceptions
JMException:
in case of errors
See Also
getDescription(Object, String), getAttributeInfo(Object, String), getConstructorInfo(Object, String), getOperationInfo(Object, String), getNotificationInfo(Object, String), populateMBeanDescriptor(javax.management.Descriptor, Object, String)
getNotificationInfoback to summary
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:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Returns:ModelMBeanNotificationInfo[]

the notification metadata

Exceptions
JMException:
in case of errors
getOperationInfoback to summary
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:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Returns:ModelMBeanOperationInfo[]

the operation metadata

Exceptions
JMException:
in case of errors
getTargetClassback to summary
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:Object

the bean instance (might be an AOP proxy)

Returns:Class<?>

the bean class to expose

See Also
org.springframework.aop.support.AopUtils#getTargetClass(Object)
populateMBeanDescriptorback to summary
protected void populateMBeanDescriptor(Descriptor descriptor, Object managedBean, String beanKey) throws JMException

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:Descriptor

the Descriptor for the MBean resource.

managedBean:Object

the bean instance (might be an AOP proxy)

beanKey:String

the key associated with the MBean in the beans map of the MBeanExporter

Exceptions
JMException:
in case of errors