Поиск рекомендаций по определению MBean, который отправляет уведомления, особенно по типу уведомлений. JMX Best Practices на сайте Oracle гласит следующее.Но он немного старый и до Java6.
Уведомления должны быть экземплярами javax.management.Notification или одним из подклассов из пространства имен javax.management.Информация, которая не вписывается ни в один из этих подклассов, должна передаваться путем присоединения CompositeData к уведомлению с помощью метода setUserData.
Также на сайте Oracle я вижу, что Weblogic определяет некоторые из своих собственных подклассов,например, WebLogicLogNotification.Его Best Practices гласит:
Все объекты уведомлений JMX расширяют тип объекта javax.management.Notification.JMX и WebLogic Server определяют дополнительные типы объектов уведомлений, такие как javax.management.AttributeChangeNotification.Дополнительные типы объектов содержат специализированные наборы информации, которые подходят для различных типов событий.
Наши уведомления не соответствуют ни одному из стандартных подклассов, как, например, WLS, учитывая возможность определения нашего собственного подкласса с помощью пользовательскихполучатели информации, которую мы хотим передать с помощью уведомлений.Или было бы лучше придерживаться базового javax.management.Notification и просто прикрепить нашу информацию с помощью универсального setUserData (Object)?Если мы сделаем последнее, я полагаю, что объект должен иметь тип JMX, такой как CompositeData, который выглядит не так хорошо.Мысли о том, что было бы лучше с точки зрения потребителя?
РЕДАКТИРОВАТЬ: С точки зрения потребителей, я предполагаю, что недостатком пользовательского подкласса является то, что они должны будут включить это в свое приложение / classpath.