Класс StandardEmitterMBean
- java.lang.Object
-
- javax.management.StandardMBean
-
- javax.management.StandardEmitterMBean
- Все реализуемые интерфейсы:
- DynamicMBean, MBeanRegistration, NotificationBroadcaster, NotificationEmitter
public class StandardEmitterMBean extends StandardMBean implements NotificationEmitter
Класс MBean, интерфейс управления которым определяется по отражению Java-интерфейса, и который отправляет уведомления.
Следующий пример демонстрирует использование публичного конструктора StandardEmitterMBean(implementation, mbeanInterface, emitter) для создания MBean, отправляющего уведомления с любым именем класса реализации Impl, с интерфейсом управления (как для текущих Standard MBean) определённым любым интерфейсом Intf и с любой реализацией интерфейса NotificationEmitter. В примере используется класс NotificationBroadcasterSupport в качестве реализации интерфейса NotificationEmitter.
MBeanServer mbs;
...
final String[] types = new String[] {"sun.disc.space","sun.disc.alarm"};
final MBeanNotificationInfo info = new MBeanNotificationInfo(
types,
Notification.class.getName(),
"Notification about disc info.");
final NotificationEmitter emitter =
new NotificationBroadcasterSupport(info);
final Intf impl = new Impl(...);
final Object mbean = new StandardEmitterMBean(
impl, Intf.class, emitter);
mbs.registerMBean(mbean, objectName);
- С:
- 1.6
- См. также:
StandardMBean
Конструкторы
| Модификатор | Конструктор и описание |
|---|---|
protected |
StandardEmitterMBean(Class<?> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которым задаётся |
protected |
StandardEmitterMBean(Class<?> mbeanInterface,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которым задаётся |
StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которым задаётся | |
StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которым задаётся |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback) Добавляет слушателя к этому MBean. |
MBeanNotificationInfo[] |
getNotificationInfo() Возвращает массив, указывающий для каждого уведомления, которое может отправить этот MBean, имя Java-класса уведомления и тип уведомления. |
void |
removeNotificationListener(NotificationListener listener) Удаляет слушателя из этого MBean. |
void |
removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback) Удаляет слушателя из этого MBean. |
void |
sendNotification(Notification n) Отправляет уведомление. |
Методы, унаследованные от класса javax.management.StandardMBean
cacheMBeanInfo, getAttribute, getAttributes, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, invoke, postDeregister, postRegister, preDeregister, preRegister, setAttribute, setAttributes, setImplementation Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
StandardEmitterMBean
public StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которого задан mbeanInterface, с указанной реализацией и обработкой уведомлений с помощью указанного NotificationEmitter. Получившийся MBean реализует интерфейс NotificationEmitter путём перенаправления своих методов на emitter. Допустимо и полезно, чтобы implementation и emitter были одним и тем же объектом.
Если emitter является экземпляром NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом getNotificationInfo() нового MBean, является копией массива, возвращённого методом emitter.getNotificationInfo() в момент создания. Если массив, возвращённый emitter.getNotificationInfo(), позже изменится, это не повлияет на getNotificationInfo() данного объекта.
- Параметры:
-
implementation- реализация интерфейса MBean. -
mbeanInterface- интерфейс Standard MBean. -
emitter- объект, который будет обрабатывать уведомления. - Исключения:
-
IllegalArgumentException- еслиmbeanInterfaceне соответствует шаблонам проектирования JMX для интерфейсов управления, или если указанныйimplementationне реализует указанный интерфейс, или еслиemitterравно null.
StandardEmitterMBean
public StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которого задан mbeanInterface, с указанной реализацией и обработкой уведомлений с помощью указанного NotificationEmitter. Этот конструктор может использоваться для создания как Standard MBean, так и MXBean. Получившийся MBean реализует интерфейс NotificationEmitter путём перенаправления своих методов на emitter. Допустимо и полезно, чтобы implementation и emitter были одним и тем же объектом.
Если emitter является экземпляром NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом getNotificationInfo() нового MBean, является копией массива, возвращённого методом emitter.getNotificationInfo() в момент создания. Если массив, возвращённый emitter.getNotificationInfo(), позже изменится, это не повлияет на getNotificationInfo() данного объекта.
- Параметры:
-
implementation- реализация интерфейса MBean. -
mbeanInterface- интерфейс Standard MBean. -
isMXBean- Если true, параметрmbeanInterfaceзадаёт интерфейс MXBean, и результат MBean является MXBean. -
emitter- объект, который будет обрабатывать уведомления. - Исключения:
-
IllegalArgumentException- еслиmbeanInterfaceне соответствует шаблонам проектирования JMX для интерфейсов управления, или если указанныйimplementationне реализует указанный интерфейс, или еслиemitterравно null.
StandardEmitterMBean
protected StandardEmitterMBean(Class<?> mbeanInterface,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которого задан mbeanInterface, и обработкой уведомлений с помощью указанного NotificationEmitter. Получившийся MBean реализует интерфейс NotificationEmitter путём перенаправления своих методов на emitter.
Если emitter является экземпляром NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом getNotificationInfo() нового MBean, является копией массива, возвращённого методом emitter.getNotificationInfo() в момент создания. Если массив, возвращённый emitter.getNotificationInfo(), позже изменится, это не повлияет на getNotificationInfo() данного объекта.
Этот конструктор должен вызываться из подкласса, реализующего указанный mbeanInterface.
- Параметры:
-
mbeanInterface- интерфейс StandardMBean. -
emitter- объект, который будет обрабатывать уведомления. - Исключения:
-
IllegalArgumentException- еслиmbeanInterfaceне соответствует шаблонам проектирования JMX для интерфейсов управления, или еслиthisне реализует указанный интерфейс, или еслиemitterравно null.
StandardEmitterMBean
protected StandardEmitterMBean(Class<?> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) Создаёт MBean, интерфейс управления которого задан mbeanInterface, и обработкой уведомлений с помощью указанного NotificationEmitter. Этот конструктор может использоваться для создания как Standard MBean, так и MXBean. Получившийся MBean реализует интерфейс NotificationEmitter путём перенаправления своих методов на emitter.
Если emitter является экземпляром NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом getNotificationInfo() нового MBean, является копией массива, возвращённого методом emitter.getNotificationInfo() в момент создания. Если массив, возвращённый emitter.getNotificationInfo(), позже изменится, это не повлияет на getNotificationInfo() данного объекта.
Этот конструктор должен вызываться из подкласса, реализующего указанный mbeanInterface.
- Параметры:
-
mbeanInterface- интерфейс StandardMBean. -
isMXBean- Если true, параметрmbeanInterfaceзадаёт интерфейс MXBean, и результат MBean является MXBean. -
emitter- объект, который будет обрабатывать уведомления. - Исключения:
-
IllegalArgumentException- еслиmbeanInterfaceне соответствует шаблонам проектирования JMX для интерфейсов управления, или еслиthisне реализует указанный интерфейс, или еслиemitterравно null.
Методы
removeNotificationListener
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с различными объектами обратной связи или фильтрами уведомлений, все записи, соответствующие слушателю, будут удалены.
- Указано в:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- Слушатель, который был ранее добавлен в этот MBean. - Исключения:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
-
NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object),NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
removeNotificationListener
public void removeNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback)
throws ListenerNotFoundException Описание скопировано из интерфейса: NotificationEmitter
Удаляет слушателя из этого MBean. MBean должен иметь слушателя, который точно соответствует заданным параметрам listener, filter, и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, только если они null в удаляемом слушателе.
- Указано в:
-
removeNotificationListenerв интерфейсеNotificationEmitter - Параметры:
-
listener- Слушатель, который был ранее добавлен в этот MBean. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Объект обратной связи, указанный при добавлении слушателя. - Исключения:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean, или не зарегистрирован с указанным фильтром и объектом обратной связи.
addNotificationListener
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback) Описание скопировано из интерфейса: NotificationBroadcaster
Добавляет слушателя в этот MBean.
- Указано в:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- Объект слушателя, который будет обрабатывать уведомления, исходящие от распределителя. -
filter- Объект фильтра. Если filter равен null, фильтрация уведомлений не будет выполнена. -
handback- Непрозрачный объект, который будет возвращён слушателю при отправке уведомления. Этот объект не может быть использован объектом-распределителем уведомлений. Он должен быть возвращён неизменённым вместе с уведомлением слушателю. - См. также:
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
Описание скопировано из интерфейса: NotificationBroadcaster
Возвращает массив, указывающий для каждой уведомления, которое данный MBean может отправить, имя класса Java уведомления и тип уведомления.
MBean может отправлять уведомления, не описанные в этом массиве, без нарушения правил. Однако некоторые клиенты сервера MBean могут полагаться на полноту массива для корректной работы.
- Указано в:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Возвращает:
- массив возможных уведомлений.
sendNotification
public void sendNotification(Notification n)
Отправляет уведомление.
Если параметр emitter конструктора был экземпляром NotificationBroadcasterSupport, то этот метод вызовет emitter.sendNotification.
- Параметры:
-
n- уведомление для отправки. - Исключения:
-
ClassCastException- если параметрemitterконструктора не был экземпляромNotificationBroadcasterSupport.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.