javax.management.AttributeChangeNotification Java Examples

The following examples show how to use javax.management.AttributeChangeNotification. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CommunicatorServer.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}
 
Example #2
Source File: ModelMBeanNotificationPublisher.java    From spring-analysis-note with MIT License 6 votes vote down vote up
/**
 * Send the supplied {@link Notification} using the wrapped
 * {@link ModelMBean} instance.
 * @param notification the {@link Notification} to be sent
 * @throws IllegalArgumentException if the supplied {@code notification} is {@code null}
 * @throws UnableToSendNotificationException if the supplied {@code notification} could not be sent
 */
@Override
public void sendNotification(Notification notification) {
	Assert.notNull(notification, "Notification must not be null");
	replaceNotificationSourceIfNecessary(notification);
	try {
		if (notification instanceof AttributeChangeNotification) {
			this.modelMBean.sendAttributeChangeNotification((AttributeChangeNotification) notification);
		}
		else {
			this.modelMBean.sendNotification(notification);
		}
	}
	catch (MBeanException ex) {
		throw new UnableToSendNotificationException("Unable to send notification [" + notification + "]", ex);
	}
}
 
Example #3
Source File: TestSlowQueryReport.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
@Override
public void handleNotification(Notification notification,
                               Object handback) {
    notificationCount.incrementAndGet();
    System.out.println("\nReceived notification:");
    System.out.println("\tClassName: " + notification.getClass().getName());
    System.out.println("\tSource: " + notification.getSource());
    System.out.println("\tType: " + notification.getType());
    System.out.println("\tMessage: " + notification.getMessage());
    if (notification instanceof AttributeChangeNotification) {
        AttributeChangeNotification acn =
            (AttributeChangeNotification) notification;
        System.out.println("\tAttributeName: " + acn.getAttributeName());
        System.out.println("\tAttributeType: " + acn.getAttributeType());
        System.out.println("\tNewValue: " + acn.getNewValue());
        System.out.println("\tOldValue: " + acn.getOldValue());
    }
}
 
Example #4
Source File: ModelMBeanNotificationPublisher.java    From lams with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Send the supplied {@link Notification} using the wrapped
 * {@link ModelMBean} instance.
 * @param notification the {@link Notification} to be sent
 * @throws IllegalArgumentException if the supplied {@code notification} is {@code null}
 * @throws UnableToSendNotificationException if the supplied {@code notification} could not be sent
 */
@Override
public void sendNotification(Notification notification) {
	Assert.notNull(notification, "Notification must not be null");
	replaceNotificationSourceIfNecessary(notification);
	try {
		if (notification instanceof AttributeChangeNotification) {
			this.modelMBean.sendAttributeChangeNotification((AttributeChangeNotification) notification);
		}
		else {
			this.modelMBean.sendNotification(notification);
		}
	}
	catch (MBeanException ex) {
		throw new UnableToSendNotificationException("Unable to send notification [" + notification + "]", ex);
	}
}
 
Example #5
Source File: BaseAttributeFilter.java    From Tomcat7.0.67 with Apache License 2.0 6 votes vote down vote up
/**
 * <p>Test whether notification enabled for this event.
 * Return true if:</p>
 * <ul>
 * <li>This is an attribute change notification</li>
 * <li>Either the set of accepted names is empty (implying that all
 *     attribute names are of interest) or the set of accepted names
 *     includes the name of the attribute in this notification</li>
 * </ul>
 */
@Override
public boolean isNotificationEnabled(Notification notification) {

    if (notification == null)
        return (false);
    if (!(notification instanceof AttributeChangeNotification))
        return (false);
    AttributeChangeNotification acn =
        (AttributeChangeNotification) notification;
    if (!AttributeChangeNotification.ATTRIBUTE_CHANGE.equals(acn.getType()))
        return (false);
    synchronized (names) {
        if (names.size() < 1)
            return (true);
        else
            return (names.contains(acn.getAttributeName()));
    }

}
 
Example #6
Source File: BaseModelMBean.java    From Tomcat7.0.67 with Apache License 2.0 6 votes vote down vote up
/**
 * Send an <code>AttributeChangeNotification</code> to all registered
 * listeners.
 *
 * @param oldValue The original value of the <code>Attribute</code>
 * @param newValue The new value of the <code>Attribute</code>
 *
 * @exception MBeanException if an object initializer throws an
 *  exception
 * @exception RuntimeOperationsException wraps IllegalArgumentException
 *  when the specified notification is <code>null</code> or invalid
 */
@Override
public void sendAttributeChangeNotification
    (Attribute oldValue, Attribute newValue)
    throws MBeanException, RuntimeOperationsException {

    // Calculate the class name for the change notification
    String type = null;
    if (newValue.getValue() != null)
        type = newValue.getValue().getClass().getName();
    else if (oldValue.getValue() != null)
        type = oldValue.getValue().getClass().getName();
    else
        return;  // Old and new are both null == no change

    AttributeChangeNotification notification =
        new AttributeChangeNotification
        (this, 1, System.currentTimeMillis(),
         "Attribute value has changed",
         oldValue.getName(), type,
         oldValue.getValue(), newValue.getValue());
    sendAttributeChangeNotification(notification);

}
 
Example #7
Source File: SimpleStandard.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject("reset");
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #8
Source File: BaseModelMBean.java    From Tomcat8-Source-Read with MIT License 6 votes vote down vote up
/**
 * Send an <code>AttributeChangeNotification</code> to all registered
 * listeners.
 *
 * @param notification The <code>AttributeChangeNotification</code>
 *  that will be passed
 *
 * @exception MBeanException if an object initializer throws an
 *  exception
 * @exception RuntimeOperationsException wraps IllegalArgumentException
 *  when the specified notification is <code>null</code> or invalid
 */
@Override
public void sendAttributeChangeNotification
    (AttributeChangeNotification notification)
    throws MBeanException, RuntimeOperationsException {

    if (notification == null)
        throw new RuntimeOperationsException
            (new IllegalArgumentException("Notification is null"),
             "Notification is null");
    if (attributeBroadcaster == null)
        return; // This means there are no registered listeners
    if( log.isDebugEnabled() )
        log.debug( "AttributeChangeNotification " + notification );
    attributeBroadcaster.sendNotification(notification);

}
 
Example #9
Source File: SimpleStandard.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #10
Source File: SimpleStandard.java    From jdk8u_jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject("reset");
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #11
Source File: CommunicatorServer.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}
 
Example #12
Source File: SimpleStandard.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject();
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #13
Source File: ScanManager.java    From openjdk-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Enqueue a state changed notification for the given states.
 **/
private void queueStateChangedNotification(
                long sequence,
                long time,
                ScanState old,
                ScanState current) {
    final AttributeChangeNotification n =
            new AttributeChangeNotification(SCAN_MANAGER_NAME,sequence,time,
            "ScanManager State changed to "+current,"State",
            ScanState.class.getName(),old.toString(),current.toString());
    // Queue the notification. We have created an unlimited queue, so
    // this method should always succeed.
    try {
        if (!pendingNotifs.offer(n,2,TimeUnit.SECONDS)) {
            LOG.fine("Can't queue Notification: "+n);
        }
    } catch (InterruptedException x) {
            LOG.fine("Can't queue Notification: "+x);
    }
}
 
Example #14
Source File: ScanManager.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Enqueue a state changed notification for the given states.
 **/
private void queueStateChangedNotification(
                long sequence,
                long time,
                ScanState old,
                ScanState current) {
    final AttributeChangeNotification n =
            new AttributeChangeNotification(SCAN_MANAGER_NAME,sequence,time,
            "ScanManager State changed to "+current,"State",
            ScanState.class.getName(),old.toString(),current.toString());
    // Queue the notification. We have created an unlimited queue, so
    // this method should always succeed.
    try {
        if (!pendingNotifs.offer(n,2,TimeUnit.SECONDS)) {
            LOG.fine("Can't queue Notification: "+n);
        }
    } catch (InterruptedException x) {
            LOG.fine("Can't queue Notification: "+x);
    }
}
 
Example #15
Source File: NotificationListenerTests.java    From spring4-understanding with Apache License 2.0 6 votes vote down vote up
@Override
public void handleNotification(Notification notification, Object handback) {
	if (notification instanceof AttributeChangeNotification) {
		AttributeChangeNotification attNotification = (AttributeChangeNotification) notification;
		String attributeName = attNotification.getAttributeName();

		Integer currentCount = (Integer) this.attributeCounts.get(attributeName);

		if (currentCount != null) {
			int count = currentCount.intValue() + 1;
			this.attributeCounts.put(attributeName, new Integer(count));
		} else {
			this.attributeCounts.put(attributeName, new Integer(1));
		}

		this.attributeHandbacks.put(attributeName, handback);
	}
}
 
Example #16
Source File: SimpleStandard.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #17
Source File: SimpleStandard.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject();
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #18
Source File: ScanManager.java    From jdk8u-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Enqueue a state changed notification for the given states.
 **/
private void queueStateChangedNotification(
                long sequence,
                long time,
                ScanState old,
                ScanState current) {
    final AttributeChangeNotification n =
            new AttributeChangeNotification(SCAN_MANAGER_NAME,sequence,time,
            "ScanManager State changed to "+current,"State",
            ScanState.class.getName(),old.toString(),current.toString());
    // Queue the notification. We have created an unlimited queue, so
    // this method should always succeed.
    try {
        if (!pendingNotifs.offer(n,2,TimeUnit.SECONDS)) {
            LOG.fine("Can't queue Notification: "+n);
        }
    } catch (InterruptedException x) {
            LOG.fine("Can't queue Notification: "+x);
    }
}
 
Example #19
Source File: CommunicatorServer.java    From jdk8u-dev-jdk with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}
 
Example #20
Source File: CommunicatorServer.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}
 
Example #21
Source File: SimpleStandard.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #22
Source File: CommunicatorServer.java    From JDKSourceCode1.8 with MIT License 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}
 
Example #23
Source File: SimpleStandard.java    From openjdk-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject("reset");
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #24
Source File: SimpleStandard.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject("reset");
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #25
Source File: MX4JModelMBean.java    From gemfirexd-oss with Apache License 2.0 6 votes vote down vote up
public void sendAttributeChangeNotification(Attribute oldAttribute, Attribute newAttribute) throws MBeanException, RuntimeOperationsException
{
   if (oldAttribute == null || newAttribute == null) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_CANNOT_BE_NULL.toLocalizedString()));
   if (!oldAttribute.getName().equals(newAttribute.getName())) throw new RuntimeOperationsException(new IllegalArgumentException(LocalizedStrings.MX4JModelMBean_ATTRIBUTE_NAMES_CANNOT_BE_DIFFERENT.toLocalizedString()));

   // TODO: the source must be the object name of the MBean if the listener was registered through MBeanServer
   Object oldValue = oldAttribute.getValue();
   AttributeChangeNotification n = new AttributeChangeNotification(this,
                                                                   1,
                                                                   System.currentTimeMillis(),
                                                                   "Attribute value changed",
                                                                   oldAttribute.getName(),
                                                                   oldValue == null ? null : oldValue.getClass().getName(),
                                                                   oldValue,
                                                                   newAttribute.getValue());
   sendAttributeChangeNotification(n);
}
 
Example #26
Source File: MBeanInfoFactory.java    From wildfly-core with GNU Lesser General Public License v2.1 6 votes vote down vote up
private MBeanNotificationInfo[] getNotifications() {
    List<MBeanNotificationInfo> notifications = new ArrayList<>();
    for (Map.Entry<String, NotificationEntry> entry : resourceRegistration.getNotificationDescriptions(PathAddress.EMPTY_ADDRESS, true).entrySet()) {
        ModelNode descriptionModel = entry.getValue().getDescriptionProvider().getModelDescription(null);
        String description = descriptionModel.get(DESCRIPTION).asString();
        String notificationType = entry.getKey();
        MBeanNotificationInfo info = null;
        if (notificationType.equals(ModelDescriptionConstants.ATTRIBUTE_VALUE_WRITTEN_NOTIFICATION)) {
            info = new MBeanNotificationInfo(new String[]{AttributeChangeNotification.ATTRIBUTE_CHANGE}, AttributeChangeNotification.class.getName(), description);
        } else if (notificationType.equals(ModelDescriptionConstants.RESOURCE_ADDED_NOTIFICATION)
                || notificationType.equals(ModelDescriptionConstants.RESOURCE_REMOVED_NOTIFICATION)) {
            // do not expose these notifications as they are emitted by the JMImplementation:type=MBeanServerDelegate MBean.
        } else {
            info = new MBeanNotificationInfo(new String[]{notificationType}, Notification.class.getName(), description);
        }
        if (info != null) {
            notifications.add(info);
        }
    }
    return notifications.toArray(new MBeanNotificationInfo[notifications.size()]);
}
 
Example #27
Source File: SimpleStandard.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject();
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #28
Source File: SimpleStandard.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Operation: reset to their initial values the "State" and "NbChanges"
 * attributes of the "SimpleStandard" standard MBean.
 */
public void reset() {
    checkSubject();
    AttributeChangeNotification acn =
        new AttributeChangeNotification(this,
                                        0,
                                        0,
                                        "NbChanges reset",
                                        "NbChanges",
                                        "Integer",
                                        new Integer(nbChanges),
                                        new Integer(0));
    state = "initial state";
    nbChanges = 0;
    nbResets++;
    sendNotification(acn);
}
 
Example #29
Source File: BaseModelMBean.java    From tomcatsrc with Apache License 2.0 6 votes vote down vote up
/**
 * Send an <code>AttributeChangeNotification</code> to all registered
 * listeners.
 *
 * @param notification The <code>AttributeChangeNotification</code>
 *  that will be passed
 *
 * @exception MBeanException if an object initializer throws an
 *  exception
 * @exception RuntimeOperationsException wraps IllegalArgumentException
 *  when the specified notification is <code>null</code> or invalid
 */
@Override
public void sendAttributeChangeNotification
    (AttributeChangeNotification notification)
    throws MBeanException, RuntimeOperationsException {

    if (notification == null)
        throw new RuntimeOperationsException
            (new IllegalArgumentException("Notification is null"),
             "Notification is null");
    if (attributeBroadcaster == null)
        return; // This means there are no registered listeners
    if( log.isDebugEnabled() )
        log.debug( "AttributeChangeNotification " + notification );
    attributeBroadcaster.sendNotification(notification);

}
 
Example #30
Source File: CommunicatorServer.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Returns an array of MBeanNotificationInfo objects describing
 * the notification types sent by this CommunicatorServer.
 * There is only one type of notifications sent by the CommunicatorServer:
 * it is <tt>{@link javax.management.AttributeChangeNotification}</tt>,
 * sent when the <tt>State</tt> attribute of this CommunicatorServer
 * changes.
 */
@Override
public MBeanNotificationInfo[] getNotificationInfo() {

    // Initialize notifInfos on first call to getNotificationInfo()
    //
    if (notifInfos == null) {
        notifInfos = new MBeanNotificationInfo[1];
        String[] notifTypes = {
            AttributeChangeNotification.ATTRIBUTE_CHANGE};
        notifInfos[0] = new MBeanNotificationInfo( notifTypes,
                 AttributeChangeNotification.class.getName(),
                 "Sent to notify that the value of the State attribute "+
                 "of this CommunicatorServer instance has changed.");
    }

    return notifInfos.clone();
}