Class MetadataNamingStrategy
java.lang.Object
org.springframework.jmx.export.naming.MetadataNamingStrategy
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
,ObjectNamingStrategy
public class MetadataNamingStrategy
extends Object
implements ObjectNamingStrategy, org.springframework.beans.factory.InitializingBean
An implementation of the
ObjectNamingStrategy
interface
that reads the ObjectName
from the source-level metadata.
Falls back to the bean key (bean name) if no ObjectName
can be found in source-level metadata.
Uses the JmxAttributeSource
strategy interface, so that
metadata can be read using any supported implementation. Out of the box,
AnnotationJmxAttributeSource
introspects a well-defined set of annotations that come with Spring.
- Since:
- 1.2
- Author:
- Rob Harrop, Juergen Hoeller
- See Also:
-
Constructor Summary
ConstructorDescriptionCreate a newMetadataNamingStrategy
which needs to be configured through thesetAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)
method.MetadataNamingStrategy
(JmxAttributeSource attributeSource) Create a newMetadataNamingStrategy
for the givenJmxAttributeSource
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
getObjectName
(Object managedBean, String beanKey) Reads theObjectName
from the source-level metadata associated with the managed resource'sClass
.void
setAttributeSource
(JmxAttributeSource attributeSource) Set the implementation of theJmxAttributeSource
interface to use when reading the source-level metadata.void
setDefaultDomain
(String defaultDomain) Specify the default domain to be used for generating ObjectNames when no source-level metadata has been specified.
-
Constructor Details
-
MetadataNamingStrategy
public MetadataNamingStrategy()Create a newMetadataNamingStrategy
which needs to be configured through thesetAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)
method. -
MetadataNamingStrategy
Create a newMetadataNamingStrategy
for the givenJmxAttributeSource
.- Parameters:
attributeSource
- the JmxAttributeSource to use
-
-
Method Details
-
setAttributeSource
Set the implementation of theJmxAttributeSource
interface to use when reading the source-level metadata. -
setDefaultDomain
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()- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
-
getObjectName
public ObjectName getObjectName(Object managedBean, @Nullable String beanKey) throws MalformedObjectNameException Reads theObjectName
from the source-level metadata associated with the managed resource'sClass
.- Specified by:
getObjectName
in interfaceObjectNamingStrategy
- Parameters:
managedBean
- the bean that will be exposed under the returnedObjectName
beanKey
- the key associated with this bean in the beans map passed to theMBeanExporter
- Returns:
- the
ObjectName
instance - Throws:
MalformedObjectNameException
- if the resultingObjectName
is invalid
-