Класс 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
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | StandardEmitterMBean(Class<?> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) | Создать MBean, чьи методы управления задаются через |
protected | StandardEmitterMBean(Class<?> mbeanInterface,
NotificationEmitter emitter) | Создать MBean, чьи методы управления задаются через |
StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
boolean isMXBean,
NotificationEmitter emitter) | Создать MBean, чьи методы управления задаются через | |
StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
NotificationEmitter emitter) | Создать MBean, чьи методы управления задаются через |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | sendNotification(Notification n) | Отправляет уведомление. |
Методы, унаследованные от класса javax.management.StandardMBean
cacheMBeanInfo, getCachedMBeanInfo, getClassName, getConstructors, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getDescription, getImpact, getImplementation, getImplementationClass, getMBeanInfo, getMBeanInterface, getParameterName, getParameterName, postDeregister, postRegister, preDeregister, preRegister, setImplementation Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, унаследованные от интерфейса javax.management.DynamicMBean
getAttribute, getAttributes, invoke, setAttribute, setAttributes Методы, унаследованные от интерфейса javax.management.NotificationBroadcaster
addNotificationListener, getNotificationInfo, removeNotificationListener Методы, унаследованные от интерфейса javax.management.NotificationEmitter
removeNotificationListener Конструкторы
StandardEmitterMBean
public StandardEmitterMBean(T implementation,
Class<T> mbeanInterface,
NotificationEmitter emitter) Создает MBean, интерфейс управления которого задан параметром mbeanInterface, с заданной реализацией и обработкой уведомлений с помощью указанного NotificationEmitter. Полученный MBean реализует интерфейс NotificationEmitter, перенаправляя свои методы на emitter. Допустимо и полезно, чтобы implementation и emitter были одним и тем же объектом.
Если emitter является экземпляром
NotificationBroadcasterSupport, то метод MBean sendNotification вызовет emitter.sendNotification.
Массив, возвращаемый методом NotificationBroadcaster.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.
Массив, возвращаемый методом NotificationBroadcaster.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.
Массив, возвращаемый методом NotificationBroadcaster.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.
Массив, возвращаемый методом NotificationBroadcaster.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.
Методы
sendNotification
public void sendNotification(Notification n)
Отправляет уведомление.
Если параметр emitter конструктора был экземпляром NotificationBroadcasterSupport, то этот метод вызовет emitter.sendNotification.
- Parameters:
-
n- уведомление для отправки. - Throws:
-
ClassCastException- если параметрemitterконструктора не был экземпляромNotificationBroadcasterSupport.
© 1993, 2020, 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/11/docs/api/java.management/javax/management/StandardEmitterMBean.html