Spec-Zone.ru › OpenJDK 21

Класс 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

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

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.
Создаёт MBean, интерфейс управления которым задаётся параметром mbeanInterface, с заданной реализацией и где уведомления обрабатываются заданным NotificationEmitter.
Создаёт 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)
Отправляет уведомление.

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

Type Parameters:
T - тип реализации MBean
Parameters:
implementation - реализация интерфейса MBean.
mbeanInterface - интерфейс Standard MBean.
emitter - объект, который будет обрабатывать уведомления.
Throws:
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() этого объекта.

Type Parameters:
T - тип реализации MBean
Parameters:
implementation - реализация интерфейса MBean.
mbeanInterface - интерфейс Standard MBean.
isMXBean - Если true, то параметр mbeanInterface задаёт интерфейс MXBean, и результирующий MBean будет MXBean.
emitter - объект, который будет обрабатывать уведомления.
Throws:
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.

Parameters:
mbeanInterface - интерфейс StandardMBean.
emitter - объект, который будет обрабатывать уведомления.
Throws:
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.

Parameters:
mbeanInterface - интерфейс StandardMBean.
isMXBean - Если true, то параметр mbeanInterface задаёт интерфейс MXBean, и результирующий MBean будет MXBean.
emitter - объект, который будет обрабатывать уведомления.
Throws:
IllegalArgumentException - если mbeanInterface не соответствует шаблонам проектирования JMX для интерфейсов управления, или если this не реализует указанный интерфейс, или если emitter равно null.

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

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с различными объектами обратного вызова или фильтрами уведомлений, все записи, соответствующие слушателю, будут удалены.
Specified by:
removeNotificationListener в интерфейсе NotificationBroadcaster
Parameters:
listener - Слушатель, который был ранее добавлен в этот MBean.
Throws:
ListenerNotFoundException - Слушатель не зарегистрирован в MBean.
See Also:
  • 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 в удаляемом слушателе.

Specified by:
removeNotificationListener в интерфейсе NotificationEmitter
Parameters:
listener - Слушатель, который был ранее добавлен в этот MBean.
filter - Фильтр, который был указан при добавлении слушателя.
handback - Объект обратного вызова, указанный при добавлении слушателя.
Throws:
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, 2023, 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/21/docs/api/java.management/javax/management/StandardEmitterMBean.html

Spec-Zone.ru

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