javax.management
Modifier and Type | Field and Description |
---|---|
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.
|
Modifier and Type | Method and Description |
---|---|
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) . |
public static final String DEFAULT_VALUE_FIELD
public static final String IMMUTABLE_INFO_FIELD
public static final String INTERFACE_CLASS_NAME_FIELD
public static final String LEGAL_VALUES_FIELD
public static final String MAX_VALUE_FIELD
public static final String MIN_VALUE_FIELD
public static final String MXBEAN_FIELD
public static final String OPEN_TYPE_FIELD
public static final String ORIGINAL_TYPE_FIELD
public static boolean isMXBeanInterface(Class<?> iface)
Returns true if the given class represents an MXBean
interface. An interface is an interface
if:
@MXBean
or
@MXBean(true)
"MXBean"
and it does not
have an MXBean
annotation.iface
- the interface class that is to be checked
for MXBean
status.MXBean
.NullPointerException
- if iface
is null
.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)
.
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.newMBeanProxy(MBeanServerConnection, ObjectName, Class,
boolean)
public static <T> T newMBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface, boolean bcast)
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.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
.newMBeanProxy(MBeanServerConnection, ObjectName, Class)
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); ListgetStatistics(); 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)
.
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.newMXBeanProxy(MBeanServerConnection, ObjectName, Class,
boolean)
public static <T> T newMXBeanProxy(MBeanServerConnection conn, ObjectName name, Class<T> iface, boolean bcast)
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.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
.newMXBeanProxy(MBeanServerConnection, ObjectName, Class)