Spec-Zone.ru › OpenJDK 25

Класс 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, с интерфейсом управления, определяемым (как и для текущих стандартных 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

Краткое описание конструкторов

StandardEmitterMBean(Class<?> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
StandardEmitterMBean(Class<?> mbeanInterface, NotificationEmitter emitter)
StandardEmitterMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean, NotificationEmitter emitter)
StandardEmitterMBean(T implementation, Class<T> mbeanInterface, NotificationEmitter emitter)
Модификатор Конструктор Описание
protected
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, а обработка уведомлений выполняется указанным объектом NotificationEmitter.
protected
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, а обработка уведомлений выполняется указанным объектом NotificationEmitter.
 <T> 
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, с указанной реализацией; обработка уведомлений выполняется указанным объектом NotificationEmitter.
 <T> 
Создает MBean, интерфейс управления которого задается параметром mbeanInterface, с указанной реализацией; обработка уведомлений выполняется указанным объектом NotificationEmitter.

Краткое описание методов

Модификатор и тип Метод Описание
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)
Отправляет уведомление.

Методы, объявленные в классе 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

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

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
Удаляет прослушиватель из этого MBean. Если прослушиватель был зарегистрирован с разными объектами handback или фильтрами уведомлений, будут удалены все записи, соответствующие этому прослушивателю.
Определено в:
removeNotificationListener в интерфейсе NotificationBroadcaster
Параметры:
listener — прослушиватель, ранее добавленный к этому MBean.
Исключения:
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean.
См. также:
  • NotificationBroadcaster.addNotificationListener(NotificationListener, NotificationFilter, Object)
  • NotificationEmitter.removeNotificationListener(NotificationListener, NotificationFilter, 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 — объект handback, указанный при добавлении прослушивателя.
Исключения:
ListenerNotFoundException — прослушиватель не зарегистрирован в MBean либо зарегистрирован не с указанными фильтром и объектом handback.

addNotificationListener

public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Описание скопировано из интерфейса: NotificationBroadcaster
Добавляет прослушиватель к этому MBean.
Определено в:
addNotificationListener в интерфейсе NotificationBroadcaster
Параметры:
listener — объект прослушивателя, который будет обрабатывать уведомления, отправленные широковещателем.
filter — объект фильтра. Если фильтр равен null, фильтрация перед обработкой уведомлений выполняться не будет.
handback — непрозрачный объект, который будет передаваться обратно прослушивателю при отправке уведомления. Этот объект не может использоваться объектом-широковещателем уведомлений. Он должен повторно передаваться прослушивателю без изменений вместе с уведомлением.
См. также:
  • NotificationBroadcaster.removeNotificationListener(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.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API