Класс 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— массив, содержащий для каждого уведомления, которое может отправить этот 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— исполнитель, используемый методом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— если прослушиватель равен null. - См. также:
removeNotificationListener
public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
NotificationBroadcaster- Определено в:
-
removeNotificationListenerв интерфейсеNotificationBroadcaster - Параметры:
-
listener— прослушиватель, ранее добавленный в этот MBean. - Вызывает исключение:
-
ListenerNotFoundException— прослушиватель не зарегистрирован в MBean. - См. также:
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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/NotificationBroadcasterSupport.html