Класс StandardEmitterMBean
- Все реализованные интерфейсы:
DynamicMBean, MBeanRegistration, NotificationBroadcaster, NotificationEmitter
public class StandardEmitterMBean extends StandardMBean implements NotificationEmitter
MBean, интерфейс управления которого определяется посредством рефлексии на основе интерфейса Java и который отправляет уведомления.
В следующем примере показано, как использовать открытый конструктор StandardEmitterMBean(implementation, mbeanInterface, emitter) для создания MBean, отправляющего уведомления, с именем любого класса реализации Impl, с интерфейсом управления, определяемым (как и для текущих стандартных 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
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, а обработка уведомлений выполняется указанным объектом NotificationEmitter. |
|
protected |
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, а обработка уведомлений выполняется указанным объектом NotificationEmitter. |
|
<T> |
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, с указанной реализацией; обработка уведомлений выполняется указанным объектом
NotificationEmitter. |
|
<T> |
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, с указанной реализацией; обработка уведомлений выполняется указанным объектом NotificationEmitter. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет прослушиватель к этому MBean. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, содержащий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления. |
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
void |
removeNotificationListener |
Удаляет прослушиватель из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Методы, объявленные в классе 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
Подробное описание конструкторов
StandardEmitterMBean
public <T> 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() данного объекта.
- Параметры типа:
T— тип реализации MBean- Параметры:
-
implementation— реализация интерфейса MBean. -
mbeanInterface— интерфейс стандартного MBean. -
emitter— объект, который будет обрабатывать уведомления. - Исключения:
-
IllegalArgumentException— еслиmbeanInterfaceне соответствует шаблонам проектирования JMX для интерфейсов управления, если указанныйimplementationне реализует заданный интерфейс или еслиemitterимеет значение null.
StandardEmitterMBean
public <T> StandardEmitterMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, с указанной реализацией; обработка уведомлений выполняется указанным объектом
NotificationEmitter. Этот конструктор можно использовать для создания стандартных MBean или MXBean. Полученный MBean реализует интерфейс NotificationEmitter, перенаправляя его вызовы методам объекта emitter. Допускается и целесообразно, чтобы implementation и emitter были одним и тем же объектом.
Если emitter является экземпляром
NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом getNotificationInfo() нового MBean, является копией массива, возвращаемого emitter.getNotificationInfo() на момент создания. Если массив, возвращаемый emitter.getNotificationInfo(), впоследствии изменится, это не повлияет на getNotificationInfo() данного объекта.
- Параметры типа:
T— тип реализации MBean- Параметры:
-
implementation— реализация интерфейса MBean. -
mbeanInterface— интерфейс стандартного 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. Этот конструктор можно использовать для создания стандартных 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- Определено в:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener— прослушиватель, ранее добавленный к этому MBean. - Исключения:
-
ListenerNotFoundException— прослушиватель не зарегистрирован в MBean. - См. также:
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— объект handback, указанный при добавлении прослушивателя. - Исключения:
-
ListenerNotFoundException— прослушиватель не зарегистрирован в MBean либо зарегистрирован не с указанными фильтром и объектом handback.
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
NotificationBroadcaster- Определено в:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener— объект прослушивателя, который будет обрабатывать уведомления, отправленные широковещателем. -
filter— объект фильтра. Если фильтр равен null, фильтрация перед обработкой уведомлений выполняться не будет. -
handback— непрозрачный объект, который будет передаваться обратно прослушивателю при отправке уведомления. Этот объект не может использоваться объектом-широковещателем уведомлений. Он должен повторно передаваться прослушивателю без изменений вместе с уведомлением. - См. также:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/StandardEmitterMBean.html