javax.management
Class JMX

java.lang.Object
  extended by javax.management.JMX

public class JMX
extends Object

Common static methods pertaining to the management API. There are no instances of this class.

Since:
1.6

Field Summary
static String DEFAULT_VALUE_FIELD
          The name of the defaultValue field.
static String IMMUTABLE_INFO_FIELD
          The name of the immutableInfo field.
static String INTERFACE_CLASS_NAME_FIELD
          The name of the interfaceClassName field.
static String LEGAL_VALUES_FIELD
          The name of the legalValues field.
static String MAX_VALUE_FIELD
          The name of the maxValue field.
static String MIN_VALUE_FIELD
          The name of the minValue field.
static String MXBEAN_FIELD
          The name of the mxbean field.
static String OPEN_TYPE_FIELD
          The name of the openType field.
static String ORIGINAL_TYPE_FIELD
          The name of the originalType field.
 
Method Summary
static boolean isMXBeanInterface(Class<?> iface)
           Returns true if the given class represents an MXBean interface.
static
<T> T
newMBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface)
           Returns a proxy for a standard management bean, using the specified connection to access the named implementation.
static
<T> T
newMBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface, boolean bcast)
          Returns a proxy for a standard management bean, using the specified connection to access the named implementation, as with newMBeanProxy(MBeanServerConnection, ObjectName, Class).
static
<T> T
newMXBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface)
           Returns a proxy for a MXBean, using the specified connection to access the named implementation.
static
<T> T
newMXBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface, boolean bcast)
          Returns a proxy for a MXBean, using the specified connection to access the named implementation, as with newMXBeanProxy(MBeanServerConnection, ObjectName, Class).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_VALUE_FIELD

public static final String DEFAULT_VALUE_FIELD
The name of the defaultValue field.

See Also:
Constant Field Values

IMMUTABLE_INFO_FIELD

public static final String IMMUTABLE_INFO_FIELD
The name of the immutableInfo field.

See Also:
Constant Field Values

INTERFACE_CLASS_NAME_FIELD

public static final String INTERFACE_CLASS_NAME_FIELD
The name of the interfaceClassName field.

See Also:
Constant Field Values

LEGAL_VALUES_FIELD

public static final String LEGAL_VALUES_FIELD
The name of the legalValues field.

See Also:
Constant Field Values

MAX_VALUE_FIELD

public static final String MAX_VALUE_FIELD
The name of the maxValue field.

See Also:
Constant Field Values

MIN_VALUE_FIELD

public static final String MIN_VALUE_FIELD
The name of the minValue field.

See Also:
Constant Field Values

MXBEAN_FIELD

public static final String MXBEAN_FIELD
The name of the mxbean field.

See Also:
Constant Field Values

OPEN_TYPE_FIELD

public static final String OPEN_TYPE_FIELD
The name of the openType field.

See Also:
Constant Field Values

ORIGINAL_TYPE_FIELD

public static final String ORIGINAL_TYPE_FIELD
The name of the originalType field.

See Also:
Constant Field Values
Method Detail

isMXBeanInterface

public static boolean isMXBeanInterface(Class<?> iface)

Returns true if the given class represents an MXBean interface. An interface is an interface if:

Parameters:
iface - the interface class that is to be checked for MXBean status.
Returns:
true if the interface represents an MXBean.
Throws:
NullPointerException - if iface is null.

newMBeanProxy

public static <T> T newMBeanProxy(MBeanServerConnection conn,
                                  ObjectName name,
                                  Class<T> iface)

Returns a proxy for a standard management bean, using the specified connection to access the named implementation. To create a proxy for the bean, SomethingMBean, a call to JMX.newMBeanProxy(server, name, SomethingMBean.class) is made, where server is a local or remote management server, and name is the registered ObjectName of the implementation of SomethingMBean to use.

The proxy redirects calls to the methods of the interface, SomethingMBean, to the appropriate methods of the management server. If SomethingMBean is specified as follows:

 public interface SomethingMBean
 {
   String getName();
   void setName(String name);
   void doStuff();
 }
 

The proxy created above will provide these three methods using an instance of MBeanServerInvocationHandler. The two methods, getName and setName define an attribute, Name, so a call to getName() will return the value of server.getAttribute(name, "Name"), while setName(newName) will result in a call to server.setAttribute(name, new Attribute("Name", newName)). Finally, doStuff(), as an operation, will cause the proxy to call MBeanServer.invoke(ObjectName, String, Object[], String[]) as server.invoke(name, "doStuff", null, null).

Calling this method is equivalent to calling newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean).

Parameters:
conn - the server connection over which to forward calls to the bean.
name - the registered name of the bean to use to implement the given interface.
iface - the interface to provide a proxy for.
Returns:
a proxy implementing the specified interface using calls to the methods of the bean registered with the supplied server using the given name.
See Also:
newMBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)

newMBeanProxy

public static <T> T newMBeanProxy(MBeanServerConnection conn,
                                  ObjectName name,
                                  Class<T> iface,
                                  boolean bcast)
Returns a proxy for a standard management bean, using the specified connection to access the named implementation, as with newMBeanProxy(MBeanServerConnection, ObjectName, Class). In addition, the proxy returned by this method will also implement NotificationEmitter if bcast is true, under the assumption that the implementation referenced by name implements this interface. Calls to the methods of NotificationEmitter will be forwarded to the bean implementation via the appropriate server methods.

Parameters:
conn - the server connection over which to forward calls to the bean.
name - the registered name of the bean to use to implement the given interface.
iface - the interface to provide a proxy for.
bcast - true if the proxy should implement NotificationEmitter.
Returns:
a proxy implementing the specified interface using calls to the methods of the bean registered with the supplied server using the given name.
See Also:
newMBeanProxy(MBeanServerConnection, ObjectName, Class)

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection conn,
                                   ObjectName name,
                                   Class<T> iface)

Returns a proxy for a MXBean, using the specified connection to access the named implementation. To create a proxy for the bean, SomethingMXBean, a call to JMX.newMXBeanProxy(server, name, SomethingMXBean.class) is made, where server is a local or remote management server, and name is the registered ObjectName of the implementation of SomethingMBean to use.

The proxy redirects calls to the methods of the interface, SomethingMXBean, to the appropriate methods of the management server with appropriate conversion between Java and open types, according to the MXBean rules. If SomethingMXBean is specified as follows:

 public interface SomethingMXBean
 {
   String getName();
   void setName(String name);
   List getStatistics();
   void setStatistics(List statistics);
   List getNamedStatistics(String, Map);
 }
 

The proxy created above will provide these five methods using an instance of MBeanServerInvocationHandler. The two methods, getName and setName define an attribute, Name, so a call to getName() will return the value of server.getAttribute(name, "Name"), while setName(newName) will result in a call to server.setAttribute(name, new Attribute("Name", newName)). As this uses a simple type, String, no conversion is necessary.

The two methods, getStatistics and setStatistics similarly define another attribute, Statistics. Calling getStatistics() will cause a call to the server to be made as before, server.getAttribute(name, "Statistics"). However, the type of the return value from this call will be an array of Double objects, as per the MXBean rules. The proxy converts this back in to a List of Double objects before returning it.

The same process is applied in reverse for setStatistics(newStats). The list is converted into an appropriate array before the call to MBeanServerConnection.setAttribute(ObjectName, Attribute) is made. Finally, a call to getNamedStatistics will require both a Java to open type conversion on the arguments, and then an open type to Java conversion of the return value. Thus, a proxy enables an MXBean to be used in cases where the appropriate Java types are available and the user wishes to access the bean using the types directly defined in its interface, just as with standard management beans.

Calling this method is equivalent to calling newMXBeanProxy(MBeanServerConnection, ObjectName, Class, boolean).

Parameters:
conn - the server connection over which to forward calls to the bean.
name - the registered name of the bean to use to implement the given interface.
iface - the interface to provide a proxy for.
Returns:
a proxy implementing the specified interface using calls to the methods of the bean registered with the supplied server using the given name.
See Also:
newMXBeanProxy(MBeanServerConnection, ObjectName, Class, boolean)

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection conn,
                                   ObjectName name,
                                   Class<T> iface,
                                   boolean bcast)
Returns a proxy for a MXBean, using the specified connection to access the named implementation, as with newMXBeanProxy(MBeanServerConnection, ObjectName, Class). In addition, the proxy returned by this method will also implement NotificationEmitter if bcast is true, under the assumption that the implementation referenced by name implements this interface. Calls to the methods of NotificationEmitter will be forwarded to the bean implementation via the appropriate server methods.

Parameters:
conn - the server connection over which to forward calls to the bean.
name - the registered name of the bean to use to implement the given interface.
iface - the interface to provide a proxy for.
bcast - true if the proxy should implement NotificationEmitter.
Returns:
a proxy implementing the specified interface using calls to the methods of the bean registered with the supplied server using the given name.
See Also:
newMXBeanProxy(MBeanServerConnection, ObjectName, Class)