public class ModelMBeanNotificationPublisher extends java.lang.Object implements NotificationPublisher
NotificationPublisher
implementation that uses the infrastructure
provided by the ModelMBean
interface to track
javax.management.NotificationListeners
and send Notifications
to those listeners.ModelMBeanNotificationBroadcaster
,
NotificationPublisherAware
Modifier and Type | Field and Description |
---|---|
private java.lang.Object |
managedResource
The managed resource associated with the
modelMBean . |
private javax.management.modelmbean.ModelMBeanNotificationBroadcaster |
modelMBean
The
ModelMBean instance wrapping the managed resource into which this
NotificationPublisher will be injected. |
private javax.management.ObjectName |
objectName
The
ObjectName associated with the modelMBean . |
Constructor and Description |
---|
ModelMBeanNotificationPublisher(javax.management.modelmbean.ModelMBeanNotificationBroadcaster modelMBean,
javax.management.ObjectName objectName,
java.lang.Object managedResource)
Create a new instance of the
ModelMBeanNotificationPublisher class
that will publish all Notifications
to the supplied ModelMBean . |
Modifier and Type | Method and Description |
---|---|
private void |
replaceNotificationSourceIfNecessary(javax.management.Notification notification)
From the
javadoc : |
void |
sendNotification(javax.management.Notification notification)
Send the supplied
Notification using the wrapped
ModelMBean instance. |
private final javax.management.modelmbean.ModelMBeanNotificationBroadcaster modelMBean
ModelMBean
instance wrapping the managed resource into which this
NotificationPublisher
will be injected.private final javax.management.ObjectName objectName
ObjectName
associated with the modelMBean
.private final java.lang.Object managedResource
modelMBean
.public ModelMBeanNotificationPublisher(javax.management.modelmbean.ModelMBeanNotificationBroadcaster modelMBean, javax.management.ObjectName objectName, java.lang.Object managedResource)
ModelMBeanNotificationPublisher
class
that will publish all Notifications
to the supplied ModelMBean
.modelMBean
- the target ModelMBean
; must not be null
objectName
- the ObjectName
of the source ModelMBean
managedResource
- the managed resource exposed by the supplied ModelMBean
java.lang.IllegalArgumentException
- if any of the parameters is null
public void sendNotification(javax.management.Notification notification)
Notification
using the wrapped
ModelMBean
instance.sendNotification
in interface NotificationPublisher
notification
- the Notification
to be sentjava.lang.IllegalArgumentException
- if the supplied notification
is null
UnableToSendNotificationException
- if the supplied notification
could not be sentprivate void replaceNotificationSourceIfNecessary(javax.management.Notification notification)
javadoc
:
"It is strongly recommended that notification senders use the object name rather than a reference to the MBean object as the source."
notification
- the Notification
whose
EventObject.getSource()
might need massaging