public class MetadataNamingStrategy extends Object implements ObjectNamingStrategy, 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()
Invoked by the containing
BeanFactory after it has set all bean properties
and satisfied BeanFactoryAware , ApplicationContextAware etc. |
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()
InitializingBean
BeanFactory
after it has set all bean properties
and satisfied BeanFactoryAware
, ApplicationContextAware
etc.
This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
afterPropertiesSet
in interface InitializingBean
public ObjectName getObjectName(Object managedBean, 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