org.springframework.jmx.export.naming

## Class KeyNamingStrategy

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

- All Implemented Interfaces:
    InitializingBean, ObjectNamingStrategy

      public class KeyNamingStrategy
      extends Object
      implements ObjectNamingStrategy, 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 and Description
    --- | ---
    `protected Log` | `logger` `Log` instance for this class.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `KeyNamingStrategy()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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(Resource location)` Set a location of a properties file to be loaded, containing object name mappings.
    `void` | `setMappingLocations(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, e.g.

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

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

- - ### Field Detail

    - #### logger

          protected final Log logger

      `Log` instance for this class.

  - ### Constructor Detail

    - #### KeyNamingStrategy

          public KeyNamingStrategy()

  - ### Method Detail

    - #### setMappings

          public void setMappings(Properties mappings)

      Set local properties, containing object name mappings, e.g. 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(Resource location)

      Set a location of a properties file to be loaded, containing object name mappings.

    - #### setMappingLocations

          public void setMappingLocations(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 `InitializingBean`
      Throws:
        `IOException`

    - #### getObjectName

          public ObjectName getObjectName(Object managedBean,
                                 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