spring-context

org.springframework.jmx.export.naming
Class MetadataNamingStrategy

java.lang.Object
  extended by org.springframework.jmx.export.naming.MetadataNamingStrategy
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, ObjectNamingStrategy

public class MetadataNamingStrategy
extends java.lang.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 Java 5 annotations that come with Spring.

Since:
1.2
Author:
Rob Harrop, Juergen Hoeller
See Also:
ObjectNamingStrategy, AnnotationJmxAttributeSource

Constructor Summary
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.
 
Method Summary
 void afterPropertiesSet()
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MetadataNamingStrategy

public MetadataNamingStrategy()
Create a new MetadataNamingStrategy which needs to be configured through the setAttributeSource(org.springframework.jmx.export.metadata.JmxAttributeSource) method.


MetadataNamingStrategy

public MetadataNamingStrategy(JmxAttributeSource attributeSource)
Create a new MetadataNamingStrategy for the given JmxAttributeSource.

Parameters:
attributeSource - the JmxAttributeSource to use
Method Detail

setAttributeSource

public void setAttributeSource(JmxAttributeSource attributeSource)
Set the implementation of the JmxAttributeSource interface to use when reading the source-level metadata.


setDefaultDomain

public void setDefaultDomain(java.lang.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()
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

getObjectName

public javax.management.ObjectName getObjectName(java.lang.Object managedBean,
                                                 java.lang.String beanKey)
                                          throws javax.management.MalformedObjectNameException
Reads the ObjectName from the source-level metadata associated with the managed resource's Class.

Specified by:
getObjectName in interface ObjectNamingStrategy
Parameters:
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
Returns:
the ObjectName instance
Throws:
javax.management.MalformedObjectNameException - if the resulting ObjectName is invalid

spring-context