Package org.broadleafcommerce.common.jmx
Class MetadataMBeanInfoAssembler
java.lang.Object
org.springframework.jmx.export.assembler.AbstractMBeanInfoAssembler
org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
org.broadleafcommerce.common.jmx.MetadataMBeanInfoAssembler
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,org.springframework.jmx.export.assembler.AutodetectCapableMBeanInfoAssembler
,org.springframework.jmx.export.assembler.MBeanInfoAssembler
public class MetadataMBeanInfoAssembler
extends org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
The MetadataMBeanInfoAssembler provided by Spring does not allow the usage of JDK dynamic proxies. However, several
of our services are AOP proxied for the sake of transactions, and the default behavior is to use JDK dynamic proxies for this.
It is possible to cause Spring to use CGLIB proxies instead via configuration, but this causes problems when it is desireable
or necessary to use constructor injection for the service definition, since CGLIB proxies require a default, no argument
constructor.
This class enhances the behavior of the Spring implementation to retrieve the rootId object inside the proxy for the sake of metadata retrieval, thereby working around these shortcomings.
- Author:
- jfischer
-
Field Summary
Fields inherited from class org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
ATTRIBUTE_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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkManagedBean
(Object managedBean) protected ModelMBeanAttributeInfo[]
getAttributeInfo
(Object managedBean, String beanKey) protected ModelMBeanNotificationInfo[]
getNotificationInfo
(Object managedBean, String beanKey) protected ModelMBeanOperationInfo[]
getOperationInfo
(Object managedBean, String beanKey) protected void
populateMBeanDescriptor
(Descriptor desc, Object managedBean, String beanKey) Methods inherited from class org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
afterPropertiesSet, getAttributeDescription, getDescription, getOperationDescription, getOperationParameters, includeBean, includeOperation, includeReadAttribute, includeWriteAttribute, populateAttributeDescriptor, populateOperationDescriptor, setAttributeSource
Methods inherited from class org.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
applyCurrencyTimeLimit, applyDefaultCurrencyTimeLimit, createModelMBeanOperationInfo, getClassForDescriptor, getDefaultCurrencyTimeLimit, getParameterNameDiscoverer, isExposeClassDescriptor, isUseStrictCasing, setDefaultCurrencyTimeLimit, setExposeClassDescriptor, setParameterNameDiscoverer, 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 Details
-
MetadataMBeanInfoAssembler
public MetadataMBeanInfoAssembler()
-
-
Method Details
-
checkManagedBean
- Overrides:
checkManagedBean
in classorg.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
- Throws:
IllegalArgumentException
-
getNotificationInfo
- Overrides:
getNotificationInfo
in classorg.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
-
populateMBeanDescriptor
- Overrides:
populateMBeanDescriptor
in classorg.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler
-
getAttributeInfo
protected ModelMBeanAttributeInfo[] getAttributeInfo(Object managedBean, String beanKey) throws JMException - Overrides:
getAttributeInfo
in classorg.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
- Throws:
JMException
-
getOperationInfo
- Overrides:
getOperationInfo
in classorg.springframework.jmx.export.assembler.AbstractReflectiveMBeanInfoAssembler
-