Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.jmx.support
Class JmxUtils

    java.lang.Object
      org.springframework.jmx.support.JmxUtils

    public abstract class JmxUtils

extends java.lang.Object

Collection of generic utility methods to support Spring JMX. Includes a convenient method to locate an MBeanServer.

Since:
  1.2
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  `locateMBeanServer()`

Field Summary
`static java.lang.String` | `IDENTITY_OBJECT_NAME_KEY` The key used when extending an existing `ObjectName` with the identity hash code of its corresponding managed resource.

Constructor Summary
`JmxUtils()`

Method Summary
`static javax.management.ObjectName` | `appendIdentityToObjectName(javax.management.ObjectName objectName, java.lang.Object managedResource)` Append an additional key/value pair to an existing `ObjectName` with the key being the static value `identity` and the value being the identity hash code of the managed resource being exposed on the supplied `ObjectName`.
`static java.lang.String` | `getAttributeName(java.beans.PropertyDescriptor property, boolean useStrictCasing)` Return the JMX attribute name to use for the given JavaBeans property.
`static java.lang.Class<?>` | `getClassToExpose(java.lang.Class<?> clazz)` Return the class or interface to expose for the given bean class.
`static java.lang.Class<?>` | `getClassToExpose(java.lang.Object managedBean)` Return the class or interface to expose for the given bean.
`static java.lang.Class<?>` | `getMBeanInterface(java.lang.Class<?> clazz)` Return the Standard MBean interface for the given class, if any (that is, an interface whose name matches the class name of the given class but with suffix "MBean").
`static java.lang.String[]` | `getMethodSignature(java.lang.reflect.Method method)` Create a `String[]` representing the argument signature of a method.
`static java.lang.Class<?>` | `getMXBeanInterface(java.lang.Class<?> clazz)` Return the Java 6 MXBean interface exists for the given class, if any (that is, an interface whose name ends with "MXBean" and/or carries an appropriate MXBean annotation).
`static boolean` | `isMBean(java.lang.Class<?> clazz)` Determine whether the given bean class qualifies as an MBean as-is.
`static boolean` | `isMXBeanSupportAvailable()` Check whether MXBean support is available, i.e.
`static javax.management.MBeanServer` | `locateMBeanServer()` Attempt to find a locally running `MBeanServer`.
`static javax.management.MBeanServer` | `locateMBeanServer(java.lang.String agentId)` Attempt to find a locally running `MBeanServer`.
`static java.lang.Class[]` | `parameterInfoToTypes(javax.management.MBeanParameterInfo[] paramInfo)` Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.
`static java.lang.Class[]` | `parameterInfoToTypes(javax.management.MBeanParameterInfo[] paramInfo, java.lang.ClassLoader classLoader)` Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### IDENTITY_OBJECT_NAME_KEY

    public static final java.lang.String IDENTITY_OBJECT_NAME_KEY

  The key used when extending an existing `ObjectName` with the identity hash code of its corresponding managed resource.

  See Also:
    Constant Field Values

Constructor Detail

### JmxUtils

    public JmxUtils()

Method Detail

### locateMBeanServer

    public static javax.management.MBeanServer locateMBeanServer()
                                                          throws MBeanServerNotFoundException

  Attempt to find a locally running `MBeanServer`. Fails if no `MBeanServer` can be found. Logs a warning if more than one `MBeanServer` found, returning the first one from the list.

  Returns:
    the `MBeanServer` if found
  Throws:
    `MBeanServerNotFoundException` - if no `MBeanServer` could be found
  See Also:
    `MBeanServerFactory.findMBeanServer(java.lang.String)`

### locateMBeanServer

    public static javax.management.MBeanServer locateMBeanServer(java.lang.String agentId)
                                                          throws MBeanServerNotFoundException

  Attempt to find a locally running `MBeanServer`. Fails if no `MBeanServer` can be found. Logs a warning if more than one `MBeanServer` found, returning the first one from the list.

  Parameters:
    `agentId` - the agent identifier of the MBeanServer to retrieve. If this parameter is `null`, all registered MBeanServers are considered. If the empty String is given, the platform MBeanServer will be returned.
  Returns:
    the `MBeanServer` if found
  Throws:
    `MBeanServerNotFoundException` - if no `MBeanServer` could be found
  See Also:
    `MBeanServerFactory.findMBeanServer(String)`

### parameterInfoToTypes

    public static java.lang.Class[] parameterInfoToTypes(javax.management.MBeanParameterInfo[] paramInfo)
                                                  throws java.lang.ClassNotFoundException

  Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.

  Parameters:
    `paramInfo` - the JMX parameter info
  Returns:
    the parameter types as classes
  Throws:
    `java.lang.ClassNotFoundException` - if a parameter type could not be resolved

### parameterInfoToTypes

    public static java.lang.Class[] parameterInfoToTypes(javax.management.MBeanParameterInfo[] paramInfo,
                                                         java.lang.ClassLoader classLoader)
                                                  throws java.lang.ClassNotFoundException

  Convert an array of `MBeanParameterInfo` into an array of `Class` instances corresponding to the parameters.

  Parameters:
    `paramInfo` - the JMX parameter info
    `classLoader` - the ClassLoader to use for loading parameter types
  Returns:
    the parameter types as classes
  Throws:
    `java.lang.ClassNotFoundException` - if a parameter type could not be resolved

### getMethodSignature

    public static java.lang.String[] getMethodSignature(java.lang.reflect.Method method)

  Create a `String[]` representing the argument signature of a method. Each element in the array is the fully qualified class name of the corresponding argument in the methods signature.

  Parameters:
    `method` - the method to build an argument signature for
  Returns:
    the signature as array of argument types

### getAttributeName

    public static java.lang.String getAttributeName(java.beans.PropertyDescriptor property,
                                                    boolean useStrictCasing)

  Return the JMX attribute name to use for the given JavaBeans property.

  When using strict casing, a JavaBean property with a getter method such as `getFoo()` translates to an attribute called `Foo`. With strict casing disabled, `getFoo()` would translate to just `foo`.

  Parameters:
    `property` - the JavaBeans property descriptor
    `useStrictCasing` - whether to use strict casing
  Returns:
    the JMX attribute name to use

### appendIdentityToObjectName

    public static javax.management.ObjectName appendIdentityToObjectName(javax.management.ObjectName objectName,
                                                                         java.lang.Object managedResource)
                                                                  throws javax.management.MalformedObjectNameException

  Append an additional key/value pair to an existing `ObjectName` with the key being the static value `identity` and the value being the identity hash code of the managed resource being exposed on the supplied `ObjectName`. This can be used to provide a unique `ObjectName` for each distinct instance of a particular bean or class. Useful when generating `ObjectNames` at runtime for a set of managed resources based on the template value supplied by a `ObjectNamingStrategy`.

  Parameters:
    `objectName` - the original JMX ObjectName
    `managedResource` - the MBean instance
  Returns:
    an ObjectName with the MBean identity added
  Throws:
    `javax.management.MalformedObjectNameException` - in case of an invalid object name specification
  See Also:
    `ObjectUtils.getIdentityHexString(Object)`

### getClassToExpose

    public static java.lang.Class<?> getClassToExpose(java.lang.Object managedBean)

  Return the class or interface to expose for the given bean. This is the class that will be searched for attributes and operations (for example, checked for annotations).

  This implementation returns the superclass for a CGLIB proxy and the class of the given bean else (for a JDK proxy or a plain bean class).

  Parameters:
    `managedBean` - the bean instance (might be an AOP proxy)
  Returns:
    the bean class to expose
  See Also:
    `ClassUtils.getUserClass(Object)`

### getClassToExpose

    public static java.lang.Class<?> getClassToExpose(java.lang.Class<?> clazz)

  Return the class or interface to expose for the given bean class. This is the class that will be searched for attributes and operations (for example, checked for annotations).

  This implementation returns the superclass for a CGLIB proxy and the class of the given bean else (for a JDK proxy or a plain bean class).

  Parameters:
    `clazz` - the bean class (might be an AOP proxy class)
  Returns:
    the bean class to expose
  See Also:
    `ClassUtils.getUserClass(Class)`

### isMBean

    public static boolean isMBean(java.lang.Class<?> clazz)

  Determine whether the given bean class qualifies as an MBean as-is.

  This implementation checks for `DynamicMBean` classes as well as classes with corresponding "*MBean" interface (Standard MBeans) or corresponding "*MXBean" interface (Java 6 MXBeans).

  Parameters:
    `clazz` - the bean class to analyze
  Returns:
    whether the class qualifies as an MBean
  See Also:
    `MBeanExporter.isMBean(Class)`

### getMBeanInterface

    public static java.lang.Class<?> getMBeanInterface(java.lang.Class<?> clazz)

  Return the Standard MBean interface for the given class, if any (that is, an interface whose name matches the class name of the given class but with suffix "MBean").

  Parameters:
    `clazz` - the class to check
  Returns:
    the Standard MBean interface for the given class

### getMXBeanInterface

    public static java.lang.Class<?> getMXBeanInterface(java.lang.Class<?> clazz)

  Return the Java 6 MXBean interface exists for the given class, if any (that is, an interface whose name ends with "MXBean" and/or carries an appropriate MXBean annotation).

  Parameters:
    `clazz` - the class to check
  Returns:
    whether there is an MXBean interface for the given class

### isMXBeanSupportAvailable

    public static boolean isMXBeanSupportAvailable()

  Check whether MXBean support is available, i.e. whether we're running on Java 6 or above.

  Returns:
    `true` if available; `false` otherwise

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD