Class MetadataNamingStrategy
- java.lang.Object
- org.springframework.jmx.export.naming.MetadataNamingStrategy
- All Implemented Interfaces:
InitializingBean,ObjectNamingStrategy
public class MetadataNamingStrategy extends Object implements ObjectNamingStrategy, InitializingBean
An implementation of theObjectNamingStrategyinterface that reads theObjectNamefrom the source-level metadata. Falls back to the bean key (bean name) if noObjectNamecan be found in source-level metadata.Uses the
JmxAttributeSourcestrategy interface, so that metadata can be read using any supported implementation. Out of the box,AnnotationJmxAttributeSourceintrospects a well-defined set of Java 5 annotations that come with Spring.- Since:
- 1.2
- Author:
- Rob Harrop, Juergen Hoeller
- See Also:
ObjectNamingStrategy,AnnotationJmxAttributeSource
Constructor Summary
Constructors Constructor Description MetadataNamingStrategy()Create a newMetadataNamingStrategywhich needs to be configured through thesetAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)method.MetadataNamingStrategy(JmxAttributeSource attributeSource)Create a newMetadataNamingStrategyfor the givenJmxAttributeSource.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Invoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.ObjectNamegetObjectName(Object managedBean, String beanKey)Reads theObjectNamefrom the source-level metadata associated with the managed resource'sClass.voidsetAttributeSource(JmxAttributeSource attributeSource)Set the implementation of theJmxAttributeSourceinterface to use when reading the source-level metadata.voidsetDefaultDomain(String defaultDomain)Specify the default domain to be used for generating ObjectNames when no source-level metadata has been specified.
Constructor Detail
MetadataNamingStrategy
public MetadataNamingStrategy()
Create a newMetadataNamingStrategywhich needs to be configured through thesetAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)method.
MetadataNamingStrategy
public MetadataNamingStrategy(JmxAttributeSource attributeSource)
Create a newMetadataNamingStrategyfor the givenJmxAttributeSource.- Parameters:
attributeSource- the JmxAttributeSource to use
Method Detail
setAttributeSource
public void setAttributeSource(JmxAttributeSource attributeSource)
Set the implementation of theJmxAttributeSourceinterface to use when reading the source-level metadata.
setDefaultDomain
public void setDefaultDomain(String defaultDomain)
Specify the default domain to be used for generating ObjectNames when no source-level metadata has been specified.The default is to use the domain specified in the bean name (if the bean name follows the JMX ObjectName syntax); else, the package name of the managed bean class.
afterPropertiesSet
public void afterPropertiesSet()
Description copied from interface:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSetin interfaceInitializingBean
getObjectName
public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException
Reads theObjectNamefrom the source-level metadata associated with the managed resource'sClass.- Specified by:
getObjectNamein interfaceObjectNamingStrategy- Parameters:
managedBean- the bean that will be exposed under the returnedObjectNamebeanKey- the key associated with this bean in the beans map passed to theMBeanExporter- Returns:
- the
ObjectNameinstance - Throws:
MalformedObjectNameException- if the resultingObjectNameis invalid