|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
public class MetadataMBeanInfoAssembler
Implementation of the 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,
two strategies are included:
AttributesJmxAttributeSource
, for Commons Attributes
AnnotationJmxAttributeSource
, for JDK 1.5+ annotations
setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)
,
AttributesJmxAttributeSource
,
AnnotationJmxAttributeSource
Field Summary |
---|
Fields inherited from class org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler |
---|
ATTRIBUTE_OPERATION_VISIBILITY, FIELD_CLASS, FIELD_CURRENCY_TIME_LIMIT, FIELD_DEFAULT, FIELD_GET_METHOD, FIELD_LOG, FIELD_LOG_FILE, FIELD_PERSIST_LOCATION, FIELD_PERSIST_NAME, FIELD_PERSIST_PERIOD, FIELD_PERSIST_POLICY, FIELD_ROLE, FIELD_SET_METHOD, FIELD_VISIBILITY, ROLE_GETTER, ROLE_OPERATION, ROLE_SETTER |
Constructor Summary | |
---|---|
MetadataMBeanInfoAssembler()
Create a new MetadataMBeanInfoAssembler |
|
MetadataMBeanInfoAssembler(JmxAttributeSource attributeSource)
Create a new MetadataMBeanInfoAssembler |
Method Summary | |
---|---|
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
protected void |
checkManagedBean(Object managedBean)
Throws an IllegalArgumentException if it encounters a JDK dynamic proxy. |
protected String |
getAttributeDescription(PropertyDescriptor propertyDescriptor,
String beanKey)
Creates a description for the attribute corresponding to this property descriptor. |
protected String |
getDescription(Object managedBean,
String beanKey)
Reads managed resource description from the source level metadata. |
protected ModelMBeanNotificationInfo[] |
getNotificationInfo(Object managedBean,
String beanKey)
Reads the ManagedNotification metadata from the Class of the managed resource
and generates and returns the corresponding ModelMBeanNotificationInfo metadata. |
protected String |
getOperationDescription(Method method,
String beanKey)
Retrieves the description for the supplied Method from the
metadata. |
protected MBeanParameterInfo[] |
getOperationParameters(Method method,
String beanKey)
Reads MBeanParameterInfo from the ManagedOperationParameter
attributes attached to a method. |
boolean |
includeBean(Class beanClass,
String beanName)
Used for autodetection of beans. |
protected boolean |
includeOperation(Method method,
String beanKey)
Votes on the inclusion of an operation. |
protected boolean |
includeReadAttribute(Method method,
String beanKey)
Vote on the inclusion of an attribute accessor. |
protected boolean |
includeWriteAttribute(Method method,
String beanKey)
Votes on the inclusion of an attribute mutator. |
protected void |
populateAttributeDescriptor(Descriptor desc,
Method getter,
Method setter,
String beanKey)
Adds descriptor fields from the ManagedAttribute attribute
to the attribute descriptor. |
protected void |
populateMBeanDescriptor(Descriptor desc,
Object managedBean,
String beanKey)
Adds descriptor fields from the ManagedResource attribute
to the MBean descriptor. |
protected void |
populateOperationDescriptor(Descriptor desc,
Method method,
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. |
Methods inherited from class org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler |
---|
applyCurrencyTimeLimit, applyDefaultCurrencyTimeLimit, createModelMBeanOperationInfo, getAttributeInfo, getClassForDescriptor, getDefaultCurrencyTimeLimit, getOperationInfo, isExposeClassDescriptor, isUseStrictCasing, setDefaultCurrencyTimeLimit, setExposeClassDescriptor, setUseStrictCasing |
Methods inherited from class org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler |
---|
getClassName, getClassToExpose, getClassToExpose, getConstructorInfo, getMBeanInfo, getTargetClass |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.springframework.jmx.export.assembler.MBeanInfoAssembler |
---|
getMBeanInfo |
Constructor Detail |
---|
public MetadataMBeanInfoAssembler()
MetadataMBeanInfoAssembler which needs to be
configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)
method.
MetadataMBeanInfoAssembler
public MetadataMBeanInfoAssembler(JmxAttributeSource attributeSource)
- Create a new
MetadataMBeanInfoAssembler for the given
JmxAttributeSource
.
- Parameters:
attributeSource
- the JmxAttributeSource to use
Method Detail
setAttributeSource
public void setAttributeSource(JmxAttributeSource attributeSource)
- Set the
JmxAttributeSource
implementation to use for
reading the metadata from the bean class.
- See Also:
AttributesJmxAttributeSource
,
AnnotationJmxAttributeSource
afterPropertiesSet
public void afterPropertiesSet()
- Description copied from interface:
InitializingBean
- Invoked by a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
This method allows the bean instance to perform initialization only
possible when all bean properties have been set and to throw an
exception in the event of misconfiguration.
- Specified by:
afterPropertiesSet
in interface InitializingBean
checkManagedBean
protected void checkManagedBean(Object managedBean)
throws IllegalArgumentException
- Throws an IllegalArgumentException if it encounters a JDK dynamic proxy.
Metadata can only be read from target classes and CGLIB proxies!
- Overrides:
checkManagedBean
in class AbstractMBeanInfoAssembler
- Parameters:
managedBean
- the bean that will be exposed (might be an AOP proxy)
- Throws:
IllegalArgumentException
- the bean is not valid for exposure
includeBean
public boolean includeBean(Class beanClass,
String beanName)
- Used for autodetection of beans. Checks to see if the bean's class has a
ManagedResource
attribute. If so it will add it list of included beans.
- Specified by:
includeBean
in interface AutodetectCapableMBeanInfoAssembler
- Parameters:
beanClass
- the class of the beanbeanName
- the name of the bean in the bean factory
includeReadAttribute
protected boolean includeReadAttribute(Method method,
String beanKey)
- Vote on the inclusion of an attribute accessor.
- Specified by:
includeReadAttribute
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
method
- the accessor methodbeanKey
- the key associated with the MBean in the beans map
- Returns:
- whether the method has the appropriate metadata
includeWriteAttribute
protected boolean includeWriteAttribute(Method method,
String beanKey)
- Votes on the inclusion of an attribute mutator.
- Specified by:
includeWriteAttribute
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
method
- the mutator methodbeanKey
- the key associated with the MBean in the beans map
- Returns:
- whether the method has the appropriate metadata
includeOperation
protected boolean includeOperation(Method method,
String beanKey)
- Votes on the inclusion of an operation.
- Specified by:
includeOperation
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
method
- the operation methodbeanKey
- the key associated with the MBean in the beans map
- Returns:
- whether the method has the appropriate metadata
getDescription
protected String getDescription(Object managedBean,
String beanKey)
- Reads managed resource description from the source level metadata.
Returns an empty
String
if no description can be found.
- Overrides:
getDescription
in class AbstractMBeanInfoAssembler
- Parameters:
managedBean
- the bean instance (might be an AOP proxy)beanKey
- the key associated with the MBean in the beans map
of the MBeanExporter
getAttributeDescription
protected String getAttributeDescription(PropertyDescriptor propertyDescriptor,
String beanKey)
- Creates a description for the attribute corresponding to this property
descriptor. Attempts to create the description using metadata from either
the getter or setter attributes, otherwise uses the property name.
- Overrides:
getAttributeDescription
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
propertyDescriptor
- the PropertyDescriptor for the attributebeanKey
- the key associated with the MBean in the beans map
of the MBeanExporter
- Returns:
- the description for the attribute
getOperationDescription
protected String getOperationDescription(Method method,
String beanKey)
- Retrieves the description for the supplied
Method
from the
metadata. Uses the method name is no description is present in the metadata.
- Overrides:
getOperationDescription
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
method
- the operation methodbeanKey
- the key associated with the MBean in the beans map
of the MBeanExporter
- Returns:
- the description for the operation
getOperationParameters
protected MBeanParameterInfo[] getOperationParameters(Method method,
String beanKey)
- Reads
MBeanParameterInfo
from the ManagedOperationParameter
attributes attached to a method. Returns an empty array of MBeanParameterInfo
if no attributes are found.
- Overrides:
getOperationParameters
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
method
- the Method
to get the parameter information forbeanKey
- the key associated with the MBean in the beans map
of the MBeanExporter
- Returns:
- the
MBeanParameterInfo
array
getNotificationInfo
protected ModelMBeanNotificationInfo[] getNotificationInfo(Object managedBean,
String beanKey)
- Reads the
ManagedNotification
metadata from the Class
of the managed resource
and generates and returns the corresponding ModelMBeanNotificationInfo
metadata.
- Overrides:
getNotificationInfo
in class AbstractMBeanInfoAssembler
- 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
populateMBeanDescriptor
protected void populateMBeanDescriptor(Descriptor desc,
Object managedBean,
String beanKey)
- Adds descriptor fields from the
ManagedResource
attribute
to the MBean descriptor. Specifically, adds the currencyTimeLimit
,
persistPolicy
, persistPeriod
, persistLocation
and persistName
descriptor fields if they are present in the metadata.
- Overrides:
populateMBeanDescriptor
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
desc
- 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
- See Also:
AbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer)
,
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)
populateAttributeDescriptor
protected void populateAttributeDescriptor(Descriptor desc,
Method getter,
Method setter,
String beanKey)
- Adds descriptor fields from the
ManagedAttribute
attribute
to the attribute descriptor. Specifically, adds the currencyTimeLimit
,
default
, persistPolicy
and persistPeriod
descriptor fields if they are present in the metadata.
- Overrides:
populateAttributeDescriptor
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
desc
- 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 MBeanExporter
- See Also:
AbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer)
,
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)
populateOperationDescriptor
protected void populateOperationDescriptor(Descriptor desc,
Method method,
String beanKey)
- Adds descriptor fields from the
ManagedAttribute
attribute
to the attribute descriptor. Specifically, adds the currencyTimeLimit
descriptor field if it is present in the metadata.
- Overrides:
populateOperationDescriptor
in class AbstractReflectiveMBeanInfoAssembler
- Parameters:
desc
- the operation descriptormethod
- the method corresponding to the operationbeanKey
- the key associated with the MBean in the beans map
of the MBeanExporter
- See Also:
AbstractReflectiveMBeanInfoAssembler.setDefaultCurrencyTimeLimit(Integer)
,
AbstractReflectiveMBeanInfoAssembler.applyDefaultCurrencyTimeLimit(javax.management.Descriptor)
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
Copyright © 2002-2008 The Spring Framework.