public class MetadataNamingStrategy extends Object implements ObjectNamingStrategy, org.springframework.beans.factory.InitializingBean
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 Java 5 annotations that come with Spring.
ObjectNamingStrategy
,
AnnotationJmxAttributeSource
Constructor and Description |
---|
MetadataNamingStrategy()
Create a new
MetadataNamingStrategy which needs to be
configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource) method. |
MetadataNamingStrategy(JmxAttributeSource attributeSource)
Create a new
MetadataNamingStrategy for the given
JmxAttributeSource . |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
ObjectName |
getObjectName(Object managedBean,
String beanKey)
Reads the
ObjectName from the source-level metadata associated
with the managed resource's Class . |
void |
setAttributeSource(JmxAttributeSource attributeSource)
Set the implementation of the
JmxAttributeSource 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.
|
public MetadataNamingStrategy()
MetadataNamingStrategy
which needs to be
configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource)
method.public MetadataNamingStrategy(JmxAttributeSource attributeSource)
MetadataNamingStrategy
for the given
JmxAttributeSource
.attributeSource
- the JmxAttributeSource to usepublic void setAttributeSource(JmxAttributeSource attributeSource)
JmxAttributeSource
interface to use
when reading the source-level metadata.public void setDefaultDomain(String defaultDomain)
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.
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
public ObjectName getObjectName(Object managedBean, @Nullable String beanKey) throws MalformedObjectNameException
ObjectName
from the source-level metadata associated
with the managed resource's Class
.getObjectName
in interface ObjectNamingStrategy
managedBean
- the bean that will be exposed under the
returned ObjectName
beanKey
- the key associated with this bean in the beans map
passed to the MBeanExporter
ObjectName
instanceMalformedObjectNameException
- if the resulting ObjectName
is invalid