public class MetadataNamingStrategy extends java.lang.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 a BeanFactory after it has set all bean properties supplied
(and satisfied BeanFactoryAware and ApplicationContextAware).
|
javax.management.ObjectName |
getObjectName(java.lang.Object managedBean,
java.lang.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(java.lang.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(java.lang.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
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
public javax.management.ObjectName getObjectName(java.lang.Object managedBean, java.lang.String beanKey) throws javax.management.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
instancejavax.management.MalformedObjectNameException
- if the resulting ObjectName
is invalid