Spec-Zone.ru › OpenJDK 21

Класс NotificationBroadcasterSupport

java.lang.Object
javax.management.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(Executor executor)
Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается с помощью переданного Executor.
NotificationBroadcasterSupport(Executor executor, MBeanNotificationInfo... info)
Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены, и где каждый слушатель вызывается с помощью переданного Executor.
NotificationBroadcasterSupport(MBeanNotificationInfo... info)
Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены.

Краткое описание методов

Модификатор и тип Метод Описание
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя.
MBeanNotificationInfo[] getNotificationInfo()
Возвращает массив, указывающий для каждого уведомления, которое может отправить этот MBean, имя Java-класса уведомления и тип уведомления.
protected void handleNotification(NotificationListener listener, Notification notif, Object handback)
Этот метод вызывается sendNotification для каждого слушателя, чтобы отправить уведомление этому слушателю.
void removeNotificationListener(NotificationListener listener)
Удаляет слушателя из этого MBean.
void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Удаляет слушателя из этого MBean.
void sendNotification(Notification notification)
Отправляет уведомление.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

NotificationBroadcasterSupport

public NotificationBroadcasterSupport()
Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, null).

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(Executor executor)
Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается с помощью заданного Executor. Когда вызывается sendNotification, выбирается слушатель, если он был добавлен с null NotificationFilter или если isNotificationEnabled возвращает true для отправляемого уведомления. Вызов NotificationFilter.isNotificationEnabled происходит в потоке, который вызвал sendNotification. Затем для каждого выбранного слушателя вызывается executor.execute с командой, которая вызывает метод handleNotification. Этот конструктор эквивалентен NotificationBroadcasterSupport(executor, null).
Parameters:
executor - executor, используемый методом sendNotification для отправки каждого уведомления. Если он равен null, поток, вызывающий sendNotification, вызовет метод handleNotification сам.
Since:
1.6

NotificationBroadcasterSupport

public NotificationBroadcasterSupport(MBeanNotificationInfo... info)

Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены. Каждый слушатель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, info).

Если массив info не пуст, то он клонируется конструктором как если бы это было сделано info.clone(), и каждый вызов getNotificationInfo() возвращает новый клон.

Parameters:
info - массив, указывающий для каждого уведомления, которое этот MBean может отправить, имя Java-класса уведомления и тип уведомления. Может быть null, что эквивалентно пустому массиву.
Since:
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() возвращает новый клон.

Parameters:
executor - executor, используемый методом sendNotification для отправки каждого уведомления. Если он равен null, поток, вызывающий sendNotification, вызовет метод handleNotification сам.
info - массив, указывающий для каждого уведомления, которое этот MBean может отправить, имя Java-класса уведомления и тип уведомления. Может быть null, что эквивалентно пустому массиву.
Since:
1.6

Подробное описание методов

addNotificationListener

public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
Добавляет слушателя.
Specified by:
addNotificationListener в интерфейсе NotificationBroadcaster
Parameters:
listener - слушатель, который будет получать уведомления.
filter - объект фильтра. Если filter равен null, фильтрация не будет выполняться перед обработкой уведомлений.
handback - непрозрачный объект, который будет возвращён слушателю при отправке уведомления. Этот объект не может быть использован объектом NotificationBroadcaster. Он должен быть отправлен без изменений вместе с уведомлением слушателю.
Throws:
IllegalArgumentException - вызывается, если слушатель равен null.
See Also:
  • removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с различными объектами обратной связи или фильтрами уведомлений, все записи, соответствующие слушателю, будут удалены.
Specified by:
removeNotificationListener в интерфейсе NotificationBroadcaster
Parameters:
listener - слушатель, который ранее был добавлен в этот MBean.
Throws:
ListenerNotFoundException - слушатель не зарегистрирован в MBean.
See Also:
  • NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)
  • NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

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, или он не зарегистрирован с данным фильтром и объектом обратной связи.

getNotificationInfo

public MBeanNotificationInfo[] getNotificationInfo()
Описание скопировано из интерфейса: NotificationBroadcaster

Возвращает массив, указывающий для каждого уведомления, которое этот MBean может отправить, имя Java-класса уведомления и тип уведомления.

Для MBean не является ошибкой отправлять уведомления, не описанные в этом массиве. Однако некоторые клиенты сервера MBean могут полагаться на то, что массив является полным для корректной работы.

Specified by:
getNotificationInfo в интерфейсе NotificationBroadcaster
Returns:
массив возможных уведомлений.

sendNotification

public void sendNotification(Notification notification)
Отправляет уведомление. Если был указан Executor, для каждого выбранного слушателя будет создана одна задача для доставки уведомления этому слушателю.
Parameters:
notification - уведомление для отправки.

handleNotification

protected void handleNotification(NotificationListener listener, Notification notif, Object handback)

Этот метод вызывается sendNotification для каждого слушателя, чтобы отправить уведомление этому слушателю. Он может быть переопределён в подклассах для изменения поведения доставки уведомления, например, для доставки уведомления в отдельном потоке.

По умолчанию этот метод эквивалентен

 listener.handleNotification(notif, handback);
 
Parameters:
listener - слушатель, которому передаётся уведомление.
notif - уведомление, передаваемое слушателю.
handback - объект обратной связи, который был предоставлен при добавлении слушателя.

© 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/NotificationBroadcasterSupport.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API