Spec-Zone .ru
спецификации, руководства, описания, API
|
public class JMX extends Object
Модификатор и Тип | Поле и Описание |
---|---|
static String |
DEFAULT_VALUE_FIELD
Имя
defaultValue поле. |
static String |
IMMUTABLE_INFO_FIELD
Имя
immutableInfo поле. |
static String |
INTERFACE_CLASS_NAME_FIELD
Имя
interfaceClassName поле. |
static String |
LEGAL_VALUES_FIELD
Имя
legalValues поле. |
static String |
MAX_VALUE_FIELD
Имя
maxValue поле. |
static String |
MIN_VALUE_FIELD
Имя
minValue поле. |
static String |
MXBEAN_FIELD
Имя
mxbean поле. |
static String |
OPEN_TYPE_FIELD
Имя
openType поле. |
static String |
ORIGINAL_TYPE_FIELD
Имя
originalType поле. |
Модификатор и Тип | Метод и Описание |
---|---|
static boolean |
isMXBeanInterface(Class<?> interfaceClass)
Тест, является ли интерфейс интерфейсом MXBean.
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Сделайте прокси для Стандартного MBean в локальной переменной или отдалите Сервер MBean.
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Сделайте прокси для Стандартного MBean в локальной переменной или отдалите Сервер MBean, который может также поддерживать методы
NotificationEmitter . |
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Сделайте прокси для MXBean в локальной переменной или отдалите Сервер MBean.
|
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Сделайте прокси для MXBean в локальной переменной или отдалите Сервер MBean, который может также поддерживать методы
NotificationEmitter . |
public static final String DEFAULT_VALUE_FIELD
defaultValue
поле.public static final String IMMUTABLE_INFO_FIELD
immutableInfo
поле.public static final String INTERFACE_CLASS_NAME_FIELD
interfaceClassName
поле.public static final String LEGAL_VALUES_FIELD
legalValues
поле.public static final String MAX_VALUE_FIELD
maxValue
поле.public static final String MIN_VALUE_FIELD
minValue
поле.public static final String MXBEAN_FIELD
mxbean
поле.public static final String OPEN_TYPE_FIELD
openType
поле.public static final String ORIGINAL_TYPE_FIELD
originalType
поле.public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Сделайте прокси для Стандартного MBean в локальной переменной или отдалите Сервер MBean.
Если у Вас есть Сервер MBean mbs
содержа MBean с ObjectName
name
, и если интерфейс управления MBEAN описывается интерфейсом Java MyMBean
, можно создать прокси для MBean как это:
MyMBean proxy = JMX.newMBeanProxy(mbs, name, MyMBean.class);
Предположите, например, MyMBean
похож на это:
public interface MyMBean { public String getSomeAttribute(); public void setSomeAttribute(String value); public void someOperation(String param1, int param2); }
Затем можно выполниться:
proxy.getSomeAttribute()
который приведет к звонку mbs.
getAttribute
(name, "SomeAttribute")
. proxy.setSomeAttribute("whatever")
который приведет к звонку mbs.
setAttribute
(name, new Attribute("SomeAttribute", "whatever"))
. proxy.someOperation("param1", 2)
который будет преобразован в звонок mbs.
invoke
(name, "someOperation", <etc>)
. Объект, возвращенный этим методом, является a Proxy
чей InvocationHandler
MBeanServerInvocationHandler
.
Этот метод эквивалентен newMBeanProxy(connection, objectName, interfaceClass, false)
.
T
- позволяет компилятору знать это если interfaceClass
параметр MyMBean.class
, например, тогда тип возврата MyMBean
.connection
- сервер MBean, чтобы передать.objectName
- имя MBean в пределах connection
передать.interfaceClass
- интерфейс управления, который экспортирует MBean, который будет также реализован возвращенным прокси.public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Сделайте прокси для Стандартного MBean в локальной переменной или отдалите Сервер MBean, который может также поддерживать методы NotificationEmitter
.
Этот метод ведет себя то же самое как newMBeanProxy(MBeanServerConnection, ObjectName, Class)
, но дополнительно, если notificationEmitter
true
, тогда MBean, как предполагается, является a NotificationBroadcaster
или NotificationEmitter
и возвращенный прокси реализует NotificationEmitter
так же как interfaceClass
. Звонок NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
на прокси приведет к звонку MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
, и аналогично для других методов NotificationBroadcaster
и NotificationEmitter
.
T
- позволяет компилятору знать это если interfaceClass
параметр MyMBean.class
, например, тогда тип возврата MyMBean
.connection
- сервер MBean, чтобы передать.objectName
- имя MBean в пределах connection
передать.interfaceClass
- интерфейс управления, который экспортирует MBean, который будет также реализован возвращенным прокси.notificationEmitter
- сделайте возвращенную реализацию прокси NotificationEmitter
передавая его методы через connection
.public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Сделайте прокси для MXBean в локальной переменной или отдалите Сервер MBean.
Если у Вас есть Сервер MBean mbs
содержа MXBean с ObjectName
name
, и если интерфейс управления MXBEAN описывается интерфейсом Java MyMXBean
, можно создать прокси для MXBean как это:
MyMXBean proxy = JMX.newMXBeanProxy(mbs, name, MyMXBean.class);
Предположите, например, MyMXBean
похож на это:
public interface MyMXBean {
public String getSimpleAttribute();
public void setSimpleAttribute(String value);
public MemoryUsage
getMappedAttribute();
public void setMappedAttribute(MemoryUsage memoryUsage);
public MemoryUsage someOperation(String param1, MemoryUsage param2);
}
Затем:
proxy.getSimpleAttribute()
приведет к звонку mbs.
getAttribute
(name, "SimpleAttribute")
.
proxy.setSimpleAttribute("whatever")
приведет к звонку mbs.
setAttribute
(name, new Attribute("SimpleAttribute", "whatever"))
.
Поскольку String
простой тип, в смысле SimpleType
, это не изменяется в контексте MXBean. Прокси MXBean ведет себя то же самое как Стандартный прокси MBean (см. newMBeanProxy
) для атрибута SimpleAttribute
.
proxy.getMappedAttribute()
приведет к звонку mbs.getAttribute("MappedAttribute")
. MXBean отображающиеся правила означают что фактический тип атрибута MappedAttribute
будет CompositeData
и именно это mbs.getAttribute
вызов возвратится. Прокси тогда преобразует CompositeData
назад в ожидаемый тип MemoryUsage
использование MXBean отображающиеся правила.
Точно так же proxy.setMappedAttribute(memoryUsage)
преобразует MemoryUsage
параметр в a CompositeData
перед вызовом mbs.setAttribute
.
proxy.someOperation("whatever", memoryUsage)
преобразует MemoryUsage
параметр в a CompositeData
и вызовите mbs.invoke
. Значение, возвращенное mbs.invoke
будет также быть a CompositeData
, и прокси преобразует это в ожидаемый тип MemoryUsage
использование MXBean отображающиеся правила.
Объект, возвращенный этим методом, является a Proxy
чей InvocationHandler
MBeanServerInvocationHandler
.
Этот метод эквивалентен newMXBeanProxy(connection, objectName, interfaceClass, false)
.
T
- позволяет компилятору знать это если interfaceClass
параметр MyMXBean.class
, например, тогда тип возврата MyMXBean
.connection
- сервер MBean, чтобы передать.objectName
- имя MBean в пределах connection
передать.interfaceClass
- интерфейс MXBean, который будет также реализован возвращенным прокси.public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Сделайте прокси для MXBean в локальной переменной или отдалите Сервер MBean, который может также поддерживать методы NotificationEmitter
.
Этот метод ведет себя то же самое как newMXBeanProxy(MBeanServerConnection, ObjectName, Class)
, но дополнительно, если notificationEmitter
true
, тогда MXBean, как предполагается, является a NotificationBroadcaster
или NotificationEmitter
и возвращенный прокси реализует NotificationEmitter
так же как interfaceClass
. Звонок NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
на прокси приведет к звонку MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
, и аналогично для других методов NotificationBroadcaster
и NotificationEmitter
.
T
- позволяет компилятору знать это если interfaceClass
параметр MyMXBean.class
, например, тогда тип возврата MyMXBean
.connection
- сервер MBean, чтобы передать.objectName
- имя MBean в пределах connection
передать.interfaceClass
- интерфейс MXBean, который будет также реализован возвращенным прокси.notificationEmitter
- сделайте возвращенную реализацию прокси NotificationEmitter
передавая его методы через connection
.public static boolean isMXBeanInterface(Class<?> interfaceClass)
Тест, является ли интерфейс интерфейсом MXBean. Интерфейс является интерфейсом MXBean, если он аннотируется @MXBean
или @MXBean(true)
или если это не имеет @MXBean
аннотация и ее имя заканчиваются"MXBean
".
interfaceClass
- Интерфейс кандидата.interfaceClass
интерфейс и удовлетворяет описанным условиям.NullPointerException
- если interfaceClass
нуль.
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.