Package org.springframework.jmx.export.naming

# Class KeyNamingStrategy

java.lang.Object
org.springframework.jmx.export.naming.KeyNamingStrategy

All Implemented Interfaces:
  `org.springframework.beans.factory.InitializingBean`, `ObjectNamingStrategy`

public class KeyNamingStrategy extends Object implements ObjectNamingStrategy, org.springframework.beans.factory.InitializingBean
`ObjectNamingStrategy` implementation that builds `ObjectName` instances from the key used in the "beans" map passed to `MBeanExporter`.

Can also check object name mappings, given as `Properties` or as `mappingLocations` of properties files. The key used to look up is the key used in `MBeanExporter`'s "beans" map. If no mapping is found for a given key, the key itself is used to build an `ObjectName`.

Since:
  1.2
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  - `setMappings(java.util.Properties)`
  - `setMappingLocation(org.springframework.core.io.Resource)`
  - `setMappingLocations(org.springframework.core.io.Resource...)`
  - `MBeanExporter.setBeans(java.util.Map<java.lang.String, java.lang.Object>)`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`
`Log` instance for this class.

## Constructor Summary

Constructors
Constructor
Description
`KeyNamingStrategy()`

## Method Summary

Modifier and Type
Method
Description
`void`
`afterPropertiesSet()`
Merges the `Properties` configured in the `mappings` and `mappingLocations` into the final `Properties` instance used for `ObjectName` resolution.
`ObjectName`
`getObjectName(Object managedBean, String beanKey)`
Attempts to retrieve the `ObjectName` via the given key, trying to find a mapped value in the mappings first.
`void`
`setMappingLocation(org.springframework.core.io.Resource location)`
Set a location of a properties file to be loaded, containing object name mappings.
`void`
`setMappingLocations(org.springframework.core.io.Resource... mappingLocations)`
Set location of properties files to be loaded, containing object name mappings.
`void`
`setMappings(Properties mappings)`
Set local properties, containing object name mappings, for example, via the "props" tag in XML bean definitions.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### logger

protected final org.apache.commons.logging.Log logger
`Log` instance for this class.

## Constructor Details

### KeyNamingStrategy

public KeyNamingStrategy()

## Method Details

### setMappings

public void setMappings(Properties mappings)
Set local properties, containing object name mappings, for example, via the "props" tag in XML bean definitions. These can be considered defaults, to be overridden by properties loaded from files.

### setMappingLocation

public void setMappingLocation(org.springframework.core.io.Resource location)
Set a location of a properties file to be loaded, containing object name mappings.

### setMappingLocations

public void setMappingLocations(org.springframework.core.io.Resource... mappingLocations)
Set location of properties files to be loaded, containing object name mappings.

### afterPropertiesSet

public void afterPropertiesSet() throws IOException
Merges the `Properties` configured in the `mappings` and `mappingLocations` into the final `Properties` instance used for `ObjectName` resolution.

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
Throws:
  `IOException`

### getObjectName

public ObjectName getObjectName(Object managedBean, @Nullable String beanKey) throws MalformedObjectNameException
Attempts to retrieve the `ObjectName` via the given key, trying to find a mapped value in the mappings first.

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:
  `MalformedObjectNameException` - if the resulting `ObjectName` is invalid