Module java.management
Package javax.management

## Class MBeanServerNotification

- java.lang.Object
- - java.util.EventObject
  - - javax.management.Notification
    - - javax.management.MBeanServerNotification

All Implemented Interfaces:
  Serializable

    public class MBeanServerNotification
    extends Notification

Represents a notification emitted by the MBean Server through the MBeanServerDelegate MBean. The MBean Server emits the following types of notifications: MBean registration, MBean unregistration.

To receive MBeanServerNotifications, you need to register a listener with the `MBeanServerDelegate` MBean that represents the MBeanServer. The ObjectName of the MBeanServerDelegate is `MBeanServerDelegate.DELEGATE_NAME`, which is `JMImplementation:type=MBeanServerDelegate`.

The following code prints a message every time an MBean is registered or unregistered in the MBean Server `mbeanServer`:

     private static final NotificationListener printListener = new NotificationListener() {
         public void handleNotification(Notification n, Object handback) {
             if (!(n instanceof MBeanServerNotification)) {
                 System.out.println("Ignored notification of class " + n.getClass().getName());
                 return;
             }
             MBeanServerNotification mbsn = (MBeanServerNotification) n;
             String what;
             if (n.getType().equals(MBeanServerNotification.REGISTRATION_NOTIFICATION))
                 what = "MBean registered";
             else if (n.getType().equals(MBeanServerNotification.UNREGISTRATION_NOTIFICATION))
                 what = "MBean unregistered";
             else
                 what = "Unknown type " + n.getType();
             System.out.println("Received MBean Server notification: " + what + ": " +
                     mbsn.getMBeanName());
         }
     };

     ...
         mbeanServer.addNotificationListener(
                 MBeanServerDelegate.DELEGATE_NAME, printListener, null, null);

An MBean which is not an `MBeanServerDelegate` may also emit MBeanServerNotifications. In particular, there is a convention for MBeans to emit an MBeanServerNotification for a group of MBeans.

An MBeanServerNotification emitted to denote the registration or unregistration of a group of MBeans has the following characteristics:

- Its notification type is `"JMX.mbean.registered.group"` or `"JMX.mbean.unregistered.group"`, which can also be written `REGISTRATION_NOTIFICATION``+ ".group"` or `UNREGISTRATION_NOTIFICATION``+ ".group"`.
- Its MBean name is an ObjectName pattern that selects the set (or a superset) of the MBeans being registered or unregistered
- Its user data can optionally be set to an array of ObjectNames containing the names of all MBeans being registered or unregistered.

MBeans which emit these group registration/unregistration notifications will declare them in their `MBeanNotificationInfo`.

Since:
  1.5
See Also:
  Serialized Form

### Field Summary

Fields
`static String` `REGISTRATION_NOTIFICATION` Notification type denoting that an MBean has been registered.
`static String` `UNREGISTRATION_NOTIFICATION` Notification type denoting that an MBean has been unregistered.

### Fields inherited from class javax.management.Notification

`source`

### Constructor Summary

Constructors
Constructor and Description
`MBeanServerNotification(String type, Object source, long sequenceNumber, ObjectName objectName)` Creates an MBeanServerNotification object specifying object names of the MBeans that caused the notification and the specified notification type.

### Method Summary

All Methods Instance Methods Concrete Methods
`ObjectName` `getMBeanName()` Returns the object name of the MBean that caused the notification.
`String` `toString()` Returns a String representation of this notification.

### Methods inherited from class java.util.EventObject

`getSource`

### Methods inherited from class javax.management.Notification

`getMessage, getSequenceNumber, getTimeStamp, getType, getUserData, setSequenceNumber, setSource, setTimeStamp, setUserData`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### REGISTRATION_NOTIFICATION

    public static final String REGISTRATION_NOTIFICATION

Notification type denoting that an MBean has been registered. Value is "JMX.mbean.registered".

See Also:
  Constant Field Values

#### UNREGISTRATION_NOTIFICATION

    public static final String UNREGISTRATION_NOTIFICATION

Notification type denoting that an MBean has been unregistered. Value is "JMX.mbean.unregistered".

See Also:
  Constant Field Values

### Constructor Detail

#### MBeanServerNotification

    public MBeanServerNotification(String type,
                                   Object source,
                                   long sequenceNumber,
                                   ObjectName objectName)

Creates an MBeanServerNotification object specifying object names of the MBeans that caused the notification and the specified notification type.

Parameters:
  `type` - A string denoting the type of the notification. Set it to one these values: `REGISTRATION_NOTIFICATION`, `UNREGISTRATION_NOTIFICATION`.
  `source` - The MBeanServerNotification object responsible for forwarding MBean server notification.
  `sequenceNumber` - A sequence number that can be used to order received notifications.
  `objectName` - The object name of the MBean that caused the notification.

### Method Detail

#### getMBeanName

    public ObjectName getMBeanName()

Returns the object name of the MBean that caused the notification.

Returns:
  the object name of the MBean that caused the notification.

#### toString

    public String toString()

Description copied from class: `Notification`
Returns a String representation of this notification.

Overrides:
  `toString` in class `Notification`
Returns:
  A String representation of this notification.