Класс NotificationBroadcasterSupport
- Все реализованные интерфейсы:
-
NotificationBroadcaster,NotificationEmitter
- Прямые известные подклассы:
-
JMXConnectorServer,Monitor,RelationService,Timer
public class NotificationBroadcasterSupport extends Object implements NotificationEmitter
Реализует интерфейс NotificationEmitter. Его можно использовать в качестве суперкласса для MBean, отправляющего уведомления.
По умолчанию, модель отправки уведомлений синхронная. То есть, когда поток вызывает sendNotification, метод NotificationListener.handleNotification каждого слушателя вызывается в рамках этого потока. Вы можете изменить это поведение, переопределив handleNotification в подклассе или передав Executor в конструктор.
Если вызов метода фильтра или слушателя генерирует Exception, то это исключение не препятствует вызову других слушателей. Однако, если вызов метода фильтра или Executor.execute или handleNotification (при отсутствии указанного Executor) генерирует Error, то данное Error будет передано вызывающей стороне метода sendNotification.
Удаленные слушатели, добавленные с помощью JMX Remote API (см. JMXConnector), обычно не вызываются синхронно. То есть, после возвращения sendNotification нет гарантии, что все удалённые слушатели уже получили уведомление.
- С:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
NotificationBroadcasterSupport() |
Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается в потоке, отправляющем уведомление. |
NotificationBroadcasterSupport |
Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается с помощью указанного Executor. |
NotificationBroadcasterSupport |
Создаёт NotificationBroadcasterSupport с информацией об отправляемых уведомлениях, где каждый слушатель вызывается с помощью указанного Executor. |
NotificationBroadcasterSupport |
Создаёт NotificationBroadcasterSupport с информацией об отправляемых уведомлениях. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addNotificationListener |
Добавляет слушателя. |
MBeanNotificationInfo[] |
getNotificationInfo() |
Возвращает массив, указывающий для каждого уведомления, которое может отправить этот MBean, имя класса Java уведомления и тип уведомления. |
protected void |
handleNotification |
Этот метод вызывается методом sendNotification для каждого слушателя, чтобы отправить уведомление этому слушателю. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
removeNotificationListener |
Удаляет слушателя из этого MBean. |
void |
sendNotification |
Отправляет уведомление. |
Подробное описание конструкторов
NotificationBroadcasterSupport
public NotificationBroadcasterSupport()
NotificationBroadcasterSupport(null, null).NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor)
Executor. Когда вызывается sendNotification, выбирается слушатель, если он был добавлен с null NotificationFilter, или если isNotificationEnabled возвращает true для отправляемого уведомления. Вызов NotificationFilter.isNotificationEnabled происходит в потоке, который вызвал sendNotification. Затем для каждого выбранного слушателя вызывается executor.execute с командой, которая вызывает метод handleNotification. Этот конструктор эквивалентен NotificationBroadcasterSupport(executor, null).- Параметры:
-
executor- экзекутор, используемый методомsendNotificationдля отправки каждого уведомления. Если он равен null, поток, вызывающийsendNotification, сам вызовет методhandleNotification. - С:
- 1.6
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены. Каждый слушатель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, info).
Если массив info не пустой, то он дублируется конструктором, как если бы это делалось методом info.clone(), и каждый вызов getNotificationInfo() возвращает новую копию.
- Параметры:
-
info- массив, указывающий для каждого уведомления, которое может отправить данный управляемый компонент, имя Java-класса уведомления и тип уведомления. Может быть null, что эквивалентно пустому массиву. - С:
- 1.6
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены, и где каждый слушатель вызывается с помощью предоставленного Executor.
Когда вызывается sendNotification, выбирается слушатель, если он был добавлен с null NotificationFilter, или если isNotificationEnabled возвращает true для отправляемого уведомления. Вызов NotificationFilter.isNotificationEnabled происходит в потоке, который вызвал sendNotification. Затем для каждого выбранного слушателя вызывается executor.execute с командой, которая вызывает метод handleNotification.
Если массив info не пустой, то он дублируется конструктором, как если бы это делалось методом info.clone(), и каждый вызов getNotificationInfo() возвращает новую копию.
- Параметры:
-
executor- экзекутор, используемый методомsendNotificationдля отправки каждого уведомления. Если он равен null, поток, вызывающийsendNotification, сам вызовет методhandleNotification. -
info- массив, указывающий для каждого уведомления, которое может отправить данный управляемый компонент, имя Java-класса уведомления и тип уведомления. Может быть null, что эквивалентно пустому массиву. - С:
- 1.6
Подробное описание методов
addNotificationListener
public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
- Унаследовано от:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- слушатель, который получит уведомления. -
filter- объект фильтра. Если filter равен null, фильтрация перед обработкой уведомлений не будет выполняться. -
handback- некий объект, который будет возвращён слушателю при отправке уведомления. Этот объект не может быть использован объектом-распространителем уведомлений. Он должен быть передан неизменным вместе с уведомлением слушателю. - Исключения:
-
IllegalArgumentException- выбрасывается, если слушатель равен null. - См. также:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster- Унаследовано от:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- слушатель, который был ранее добавлен в этот управляемый компонент. - Исключения:
-
ListenerNotFoundException- слушатель не зарегистрирован в управляемом компоненте. - См. также:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws ListenerNotFoundException
NotificationEmitterУдаляет слушателя из этого управляемого компонента. Управляемый компонент должен иметь слушателя, который точно соответствует данным параметрам: listener, filter и handback. Если таких слушателей несколько, удаляется только один.
Параметры filter и handback могут быть null, только если они равны null в удаляемом слушателе.
- Унаследовано от:
-
removeNotificationListenerв интерфейсеNotificationEmitter - Параметры:
-
listener- слушатель, который был ранее добавлен в этот управляемый компонент. -
filter- фильтр, который был указан при добавлении слушателя. -
handback- объект обратной связи, который был указан при добавлении слушателя. - Исключения:
-
ListenerNotFoundException- слушатель не зарегистрирован в управляемом компоненте или не зарегистрирован с указанным фильтром и объектом обратной связи.
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
NotificationBroadcasterВозвращает массив, указывающий для каждого уведомления, которое может отправить данный управляемый компонент, имя Java-класса уведомления и тип уведомления.
Для управляемого компонента не является ошибкой отправлять уведомления, не описанные в этом массиве. Однако некоторые клиенты сервера управляемых компонентов могут полагаться на полноту массива для корректной работы.
- Унаследовано от:
-
getNotificationInfoв интерфейсеNotificationBroadcaster - Возвращает:
- массив возможных уведомлений.
sendNotification
public void sendNotification(Notification notification)
Executor, то для каждого выбранного слушателя будет создана задача для доставки уведомления этому слушателю.- Параметры:
-
notification- уведомление для отправки.
handleNotification
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
Этот метод вызывается sendNotification для каждого слушателя, чтобы отправить уведомление этому слушателю. Его можно переопределить в подклассах, чтобы изменить поведение доставки уведомлений, например, чтобы доставить уведомление в отдельном потоке.
По умолчанию этот метод эквивалентен:
listener.handleNotification(notif, handback);
- Параметры:
-
listener- слушатель, которому передаётся уведомление. -
notif- уведомление, передаваемое слушателю. -
handback- объект обратной связи, который был передан при добавлении слушателя.
© 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/NotificationBroadcasterSupport.html