public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssembler implements AutodetectCapableMBeanInfoAssembler, org.springframework.beans.factory.InitializingBean
MBeanInfoAssembler interface that reads
the management interface information from source level metadata.
Uses the JmxAttributeSource strategy interface, so that
metadata can be read using any supported implementation. Out of the box,
Spring provides an implementation based on annotations:
AnnotationJmxAttributeSource.
setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource),
AnnotationJmxAttributeSourceATTRIBUTE_OPERATION_VISIBILITY, FIELD_CLASS, FIELD_CURRENCY_TIME_LIMIT, FIELD_DEFAULT, FIELD_DISPLAY_NAME, FIELD_GET_METHOD, FIELD_LOG, FIELD_LOG_FILE, FIELD_METRIC_CATEGORY, FIELD_METRIC_TYPE, FIELD_PERSIST_LOCATION, FIELD_PERSIST_NAME, FIELD_PERSIST_PERIOD, FIELD_PERSIST_POLICY, FIELD_ROLE, FIELD_SET_METHOD, FIELD_UNITS, FIELD_VISIBILITY, ROLE_GETTER, ROLE_OPERATION, ROLE_SETTER| Constructor and Description |
|---|
MetadataMBeanInfoAssembler()
Create a new
MetadataMBeanInfoAssembler which needs to be
configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource) method. |
MetadataMBeanInfoAssembler(JmxAttributeSource attributeSource)
Create a new
MetadataMBeanInfoAssembler for the given
JmxAttributeSource. |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
protected void |
checkManagedBean(java.lang.Object managedBean)
Throws an IllegalArgumentException if it encounters a JDK dynamic proxy.
|
protected java.lang.String |
getAttributeDescription(java.beans.PropertyDescriptor propertyDescriptor,
java.lang.String beanKey)
Creates a description for the attribute corresponding to this property
descriptor.
|
protected java.lang.String |
getDescription(java.lang.Object managedBean,
java.lang.String beanKey)
Reads managed resource description from the source level metadata.
|
protected javax.management.modelmbean.ModelMBeanNotificationInfo[] |
getNotificationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
Reads the
ManagedNotification metadata from the Class of the managed resource
and generates and returns the corresponding ModelMBeanNotificationInfo metadata. |
protected java.lang.String |
getOperationDescription(java.lang.reflect.Method method,
java.lang.String beanKey)
Retrieves the description for the supplied
Method from the
metadata. |
protected javax.management.MBeanParameterInfo[] |
getOperationParameters(java.lang.reflect.Method method,
java.lang.String beanKey)
Reads
MBeanParameterInfo from the ManagedOperationParameter
attributes attached to a method. |
boolean |
includeBean(java.lang.Class<?> beanClass,
java.lang.String beanName)
Used for autodetection of beans.
|
protected boolean |
includeOperation(java.lang.reflect.Method method,
java.lang.String beanKey)
Votes on the inclusion of an operation.
|
protected boolean |
includeReadAttribute(java.lang.reflect.Method method,
java.lang.String beanKey)
Vote on the inclusion of an attribute accessor.
|
protected boolean |
includeWriteAttribute(java.lang.reflect.Method method,
java.lang.String beanKey)
Votes on the inclusion of an attribute mutator.
|
protected void |
populateAttributeDescriptor(javax.management.Descriptor desc,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.String beanKey)
Adds descriptor fields from the
ManagedAttribute attribute or the ManagedMetric attribute
to the attribute descriptor. |
protected void |
populateMBeanDescriptor(javax.management.Descriptor desc,
java.lang.Object managedBean,
java.lang.String beanKey)
Adds descriptor fields from the
ManagedResource attribute
to the MBean descriptor. |
protected void |
populateOperationDescriptor(javax.management.Descriptor desc,
java.lang.reflect.Method method,
java.lang.String beanKey)
Adds descriptor fields from the
ManagedAttribute attribute
to the attribute descriptor. |
void |
setAttributeSource(JmxAttributeSource attributeSource)
Set the
JmxAttributeSource implementation to use for
reading the metadata from the bean class. |
applyCurrencyTimeLimit, applyDefaultCurrencyTimeLimit, createModelMBeanOperationInfo, getAttributeInfo, getClassForDescriptor, getDefaultCurrencyTimeLimit, getOperationInfo, getParameterNameDiscoverer, isExposeClassDescriptor, isUseStrictCasing, setDefaultCurrencyTimeLimit, setExposeClassDescriptor, setParameterNameDiscoverer, setUseStrictCasinggetClassName, getClassToExpose, getClassToExpose, getConstructorInfo, getMBeanInfo, getTargetClassclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetMBeanInfopublic MetadataMBeanInfoAssembler()
MetadataMBeanInfoAssembler which needs to be
configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource) method.public MetadataMBeanInfoAssembler(JmxAttributeSource attributeSource)
MetadataMBeanInfoAssembler for the given
JmxAttributeSource.attributeSource - the JmxAttributeSource to usepublic void setAttributeSource(JmxAttributeSource attributeSource)
JmxAttributeSource implementation to use for
reading the metadata from the bean class.AnnotationJmxAttributeSourcepublic void afterPropertiesSet()
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanprotected void checkManagedBean(java.lang.Object managedBean)
throws java.lang.IllegalArgumentException
checkManagedBean in class AbstractMBeanInfoAssemblermanagedBean - the bean that will be exposed (might be an AOP proxy)java.lang.IllegalArgumentException - the bean is not valid for exposurepublic boolean includeBean(java.lang.Class<?> beanClass,
java.lang.String beanName)
ManagedResource attribute. If so it will add it list of included beans.includeBean in interface AutodetectCapableMBeanInfoAssemblerbeanClass - the class of the beanbeanName - the name of the bean in the bean factoryprotected boolean includeReadAttribute(java.lang.reflect.Method method,
java.lang.String beanKey)
includeReadAttribute in class AbstractReflectiveMBeanInfoAssemblermethod - the accessor methodbeanKey - the key associated with the MBean in the beans mapprotected boolean includeWriteAttribute(java.lang.reflect.Method method,
java.lang.String beanKey)
includeWriteAttribute in class AbstractReflectiveMBeanInfoAssemblermethod - the mutator methodbeanKey - the key associated with the MBean in the beans mapprotected boolean includeOperation(java.lang.reflect.Method method,
java.lang.String beanKey)
includeOperation in class AbstractReflectiveMBeanInfoAssemblermethod - the operation methodbeanKey - the key associated with the MBean in the beans mapprotected java.lang.String getDescription(java.lang.Object managedBean,
java.lang.String beanKey)
String if no description can be found.getDescription in class AbstractMBeanInfoAssemblermanagedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterprotected java.lang.String getAttributeDescription(java.beans.PropertyDescriptor propertyDescriptor,
java.lang.String beanKey)
getAttributeDescription in class AbstractReflectiveMBeanInfoAssemblerpropertyDescriptor - the PropertyDescriptor for the attributebeanKey - the key associated with the MBean in the beans map
of the MBeanExporterprotected java.lang.String getOperationDescription(java.lang.reflect.Method method,
java.lang.String beanKey)
Method from the
metadata. Uses the method name is no description is present in the metadata.getOperationDescription in class AbstractReflectiveMBeanInfoAssemblermethod - the operation methodbeanKey - the key associated with the MBean in the beans map
of the MBeanExporterprotected javax.management.MBeanParameterInfo[] getOperationParameters(java.lang.reflect.Method method,
java.lang.String beanKey)
MBeanParameterInfo from the ManagedOperationParameter
attributes attached to a method. Returns an empty array of MBeanParameterInfo
if no attributes are found.getOperationParameters in class AbstractReflectiveMBeanInfoAssemblermethod - the Method to get the parameter information forbeanKey - the key associated with the MBean in the beans map
of the MBeanExporterMBeanParameterInfo arrayprotected javax.management.modelmbean.ModelMBeanNotificationInfo[] getNotificationInfo(java.lang.Object managedBean,
java.lang.String beanKey)
ManagedNotification metadata from the Class of the managed resource
and generates and returns the corresponding ModelMBeanNotificationInfo metadata.getNotificationInfo in class AbstractMBeanInfoAssemblermanagedBean - the bean instance (might be an AOP proxy)beanKey - the key associated with the MBean in the beans map
of the MBeanExporterprotected void populateMBeanDescriptor(javax.management.Descriptor desc,
java.lang.Object managedBean,
java.lang.String beanKey)
ManagedResource attribute
to the MBean descriptor. Specifically, adds the currencyTimeLimit,
persistPolicy, persistPeriod, persistLocation
and persistName descriptor fields if they are present in the metadata.populateMBeanDescriptor in class AbstractReflectiveMBeanInfoAssemblerdesc - 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 MBeanExporterAbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer),
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)protected void populateAttributeDescriptor(javax.management.Descriptor desc,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.String beanKey)
ManagedAttribute attribute or the ManagedMetric attribute
to the attribute descriptor.populateAttributeDescriptor in class AbstractReflectiveMBeanInfoAssemblerdesc - the attribute descriptorgetter - the accessor method for the attributesetter - the mutator method for the attributebeanKey - the key associated with the MBean in the beans map
of the MBeanExporterAbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer),
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)protected void populateOperationDescriptor(javax.management.Descriptor desc,
java.lang.reflect.Method method,
java.lang.String beanKey)
ManagedAttribute attribute
to the attribute descriptor. Specifically, adds the currencyTimeLimit
descriptor field if it is present in the metadata.populateOperationDescriptor in class AbstractReflectiveMBeanInfoAssemblerdesc - the operation descriptormethod - the method corresponding to the operationbeanKey - the key associated with the MBean in the beans map
of the MBeanExporterAbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer),
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)