Класс 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, то это 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) | Добавляет слушателя. |
protected void | handleNotification(NotificationListener listener,
Notification notif,
Object handback) | Этот метод вызывается методом |
void | sendNotification(Notification notification) | Отправляет уведомление. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.management.NotificationBroadcaster
getNotificationInfo, removeNotificationListener Методы, объявленные в интерфейсе javax.management.NotificationEmitter
removeNotificationListener Конструкторы
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(), и каждый вызов NotificationBroadcaster.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(), и каждый вызов NotificationBroadcaster.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- Непрозрачный объект, который будет возвращен слушателю при отправке уведомления. Этот объект не может быть использован объектом-распространителем уведомлений. Он должен быть передан без изменений с уведомлением слушателю. - Исключения:
-
IllegalArgumentException- выбрасывается, если слушатель равен null. - См. также:
NotificationBroadcaster.removeNotificationListener(javax.management.NotificationListener)
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, 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/NotificationBroadcasterSupport.html