Класс 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 (если Excecutor не указан) вызывает исключение Error, то это исключение передаётся вызывающему методу sendNotification.
Удаленные слушатели, добавленные с помощью JMX Remote API (см. JMXConnector), обычно не вызываются синхронно. То есть, после возврата sendNotification нет гарантии, что удалённые слушатели уже получили уведомление.
- С момента:
- 1.5
Конструкторы
| Конструктор и описание |
|---|
NotificationBroadcasterSupport() Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается потоком, отправляющим уведомление. |
NotificationBroadcasterSupport(Executor executor) Создаёт NotificationBroadcasterSupport, где каждый слушатель вызывается с использованием заданного |
NotificationBroadcasterSupport(Executor executor,
MBeanNotificationInfo... info) Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены, и где каждый слушатель вызывается с использованием заданного |
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) Этот метод вызывается |
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).
- Параметры:
-
executor- executor, используемый методомsendNotificationдля отправки каждого уведомления. Если он равен null, поток, вызывающийsendNotification, вызовет методhandleNotificationсам. - С:
- 1.6
NotificationBroadcasterSupport
public NotificationBroadcasterSupport(MBeanNotificationInfo... info)
Создаёт NotificationBroadcasterSupport с информацией об уведомлениях, которые могут быть отправлены. Каждый слушатель вызывается потоком, отправляющим уведомление. Этот конструктор эквивалентен NotificationBroadcasterSupport(null, info).
Если массив info не пустой, он клонируется конструктором как будто с помощью info.clone(), и каждый вызов getNotificationInfo() возвращает новый клон.
- Параметры:
-
info- массив, указывающий для каждого уведомления, которое может отправить данный MBean, имя 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- executor, используемый методомsendNotificationдля отправки каждого уведомления. Если он равен null, поток, вызывающийsendNotification, вызовет методhandleNotificationсам. -
info- массив, указывающий для каждого уведомления, которое может отправить данный MBean, имя Java-класса уведомления и тип уведомления. Может быть null, что эквивалентно пустому массиву. - С:
- 1.6
Методы
addNotificationListener
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object handback) Добавляет слушателя.
- Указано в:
-
addNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- Слушатель для получения уведомлений. -
filter- Объект фильтра. Если filter равен null, никакого фильтрации не будет выполнено перед обработкой уведомлений. -
handback- Непрозрачный объект, который будет возвращён слушателю при отправке уведомления. Этот объект не может быть использован объектом Notification broadcaster. Он должен быть передан без изменений вместе с уведомлением слушателю. - Выбрасывает:
-
IllegalArgumentException- выбрасывается, если listener равен null. - См. также:
removeNotificationListener(javax.management.NotificationListener)
removeNotificationListener
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException Описание скопировано из интерфейса: NotificationBroadcaster
Удаляет слушателя из этого MBean. Если слушатель был зарегистрирован с различными объектами handback или фильтрами уведомлений, все записи, соответствующие слушателю, будут удалены.
- Указано в:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener- Слушатель, который был ранее добавлен в этот MBean. - Выбрасывает:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean. - См. также:
-
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 у слушателя, который необходимо удалить.
- Указано в:
-
removeNotificationListenerв интерфейсеNotificationEmitter - Параметры:
-
listener- Слушатель, который был ранее добавлен в этот MBean. -
filter- Фильтр, указанный при добавлении слушателя. -
handback- Объект handback, указанный при добавлении слушателя. - Выбрасывает:
-
ListenerNotFoundException- Слушатель не зарегистрирован в MBean, или он не зарегистрирован с заданным фильтром и handback.
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
Описание скопировано из интерфейса: NotificationBroadcaster
Возвращает массив, указывающий для каждого уведомления, которое может отправить данный MBean, имя Java-класса уведомления и тип уведомления.
Для MBean не является ошибкой отправлять уведомления, не описанные в этом массиве. Однако некоторые клиенты сервера MBean могут полагаться на то, что массив является полным для правильной работы.
- Указано в:
-
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- объект handback, который был предоставлен при добавлении слушателя.
© 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.