Класс 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 MBeans, так и MXBeans. Результирующий 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 MBeans, так и MXBeans. Результирующий 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, 2021, 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/17/docs/api/java.management/javax/management/StandardEmitterMBean.html