Класс 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. |
|
<T> |
Создаёт MBean, чьи методы управления задаются по mbeanInterface, с заданной реализацией и обработкой уведомлений данным
NotificationEmitter. |
|
<T> |
Создаёт 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 <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() этого объекта.
- Type Parameters:
T- тип реализации MBean- Parameters:
-
implementation- реализация интерфейса MBean. -
mbeanInterface- интерфейс Standard MBean. -
emitter- объект, который будет обрабатывать уведомления. - Throws:
-
IllegalArgumentException- если интерфейс управленияmbeanInterfaceне соответствует шаблонам проектирования JMX, или если заданныйimplementationне реализует указанный интерфейс, или еслиemitterравен null.
StandardEmitterMBean
public <T> 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, 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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/StandardEmitterMBean.html