Класс 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
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт MBean, интерфейс управления которым задаётся параметром mbeanInterface, и где уведомления обрабатываются заданным NotificationEmitter. |
|
protected |
Создаёт MBean, интерфейс управления которым задаётся параметром mbeanInterface, и где уведомления обрабатываются заданным NotificationEmitter. |
|
| Создаёт MBean, интерфейс управления которым задаётся параметром mbeanInterface, с заданной реализацией и где уведомления обрабатываются заданным
NotificationEmitter. |
||
| Создаёт MBean, интерфейс управления которым задаётся параметром mbeanInterface, с заданной реализацией и где уведомления обрабатываются заданным NotificationEmitter. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет слушателя к этому MBean. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, указывающий для каждого уведомления, которое может отправлять этот MBean, имя Java-класса уведомления и тип уведомления. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Методы, объявленные в классе 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
Подробное описание конструкторов
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- Specified by:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Parameters:
-
listener- Слушатель, который был ранее добавлен в этот MBean. - Throws:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - See Also:
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- Указано в:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- объект слушателя, который будет обрабатывать уведомления, отправленные рассылками. -
filter- объект фильтра. Если 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, 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