diff -r fd16c54261b3 -r 90ce3da70b43 jdk/src/share/classes/javax/management/monitor/MonitorNotification.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/share/classes/javax/management/monitor/MonitorNotification.java Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,259 @@ +/* + * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +package javax.management.monitor; + + +// jmx imports +// +import javax.management.ObjectName; + +/** + * Provides definitions of the notifications sent by monitor MBeans. + *

+ * The notification source and a set of parameters concerning the monitor MBean's state + * need to be specified when creating a new object of this class. + * + * The list of notifications fired by the monitor MBeans is the following: + * + *

+ * + * + * @since 1.5 + */ +public class MonitorNotification extends javax.management.Notification { + + + /* + * ------------------------------------------ + * PUBLIC VARIABLES + * ------------------------------------------ + */ + + /** + * Notification type denoting that the observed object is not registered in the MBean server. + * This notification is fired by all kinds of monitors. + *
The value of this notification type is jmx.monitor.error.mbean. + */ + public static final String OBSERVED_OBJECT_ERROR = "jmx.monitor.error.mbean"; + + /** + * Notification type denoting that the observed attribute is not contained in the observed object. + * This notification is fired by all kinds of monitors. + *
The value of this notification type is jmx.monitor.error.attribute. + */ + public static final String OBSERVED_ATTRIBUTE_ERROR = "jmx.monitor.error.attribute"; + + /** + * Notification type denoting that the type of the observed attribute is not correct. + * This notification is fired by all kinds of monitors. + *
The value of this notification type is jmx.monitor.error.type. + */ + public static final String OBSERVED_ATTRIBUTE_TYPE_ERROR = "jmx.monitor.error.type"; + + /** + * Notification type denoting that the type of the thresholds, offset or modulus is not correct. + * This notification is fired by counter and gauge monitors. + *
The value of this notification type is jmx.monitor.error.threshold. + */ + public static final String THRESHOLD_ERROR = "jmx.monitor.error.threshold"; + + /** + * Notification type denoting that a non-predefined error type has occurred when trying to get the value of the observed attribute. + * This notification is fired by all kinds of monitors. + *
The value of this notification type is jmx.monitor.error.runtime. + */ + public static final String RUNTIME_ERROR = "jmx.monitor.error.runtime"; + + /** + * Notification type denoting that the observed attribute has reached the threshold value. + * This notification is only fired by counter monitors. + *
The value of this notification type is jmx.monitor.counter.threshold. + */ + public static final String THRESHOLD_VALUE_EXCEEDED = "jmx.monitor.counter.threshold"; + + /** + * Notification type denoting that the observed attribute has exceeded the threshold high value. + * This notification is only fired by gauge monitors. + *
The value of this notification type is jmx.monitor.gauge.high. + */ + public static final String THRESHOLD_HIGH_VALUE_EXCEEDED = "jmx.monitor.gauge.high"; + + /** + * Notification type denoting that the observed attribute has exceeded the threshold low value. + * This notification is only fired by gauge monitors. + *
The value of this notification type is jmx.monitor.gauge.low. + */ + public static final String THRESHOLD_LOW_VALUE_EXCEEDED = "jmx.monitor.gauge.low"; + + /** + * Notification type denoting that the observed attribute has matched the "string to compare" value. + * This notification is only fired by string monitors. + *
The value of this notification type is jmx.monitor.string.matches. + */ + public static final String STRING_TO_COMPARE_VALUE_MATCHED = "jmx.monitor.string.matches"; + + /** + * Notification type denoting that the observed attribute has differed from the "string to compare" value. + * This notification is only fired by string monitors. + *
The value of this notification type is jmx.monitor.string.differs. + */ + public static final String STRING_TO_COMPARE_VALUE_DIFFERED = "jmx.monitor.string.differs"; + + + /* + * ------------------------------------------ + * PRIVATE VARIABLES + * ------------------------------------------ + */ + + /* Serial version */ + private static final long serialVersionUID = -4608189663661929204L; + + /** + * @serial Monitor notification observed object. + */ + private ObjectName observedObject = null; + + /** + * @serial Monitor notification observed attribute. + */ + private String observedAttribute = null; + + /** + * @serial Monitor notification derived gauge. + */ + private Object derivedGauge = null; + + /** + * @serial Monitor notification release mechanism. + * This value is used to keep the threshold/string (depending on the + * monitor type) that triggered off this notification. + */ + private Object trigger = null; + + + /* + * ------------------------------------------ + * CONSTRUCTORS + * ------------------------------------------ + */ + + /** + * Creates a monitor notification object. + * + * @param type The notification type. + * @param source The notification producer. + * @param sequenceNumber The notification sequence number within the source object. + * @param timeStamp The notification emission date. + * @param msg The notification message. + * @param obsObj The object observed by the producer of this notification. + * @param obsAtt The attribute observed by the producer of this notification. + * @param derGauge The derived gauge. + * @param trigger The threshold/string (depending on the monitor type) that triggered the notification. + */ + MonitorNotification(String type, Object source, long sequenceNumber, long timeStamp, String msg, + ObjectName obsObj, String obsAtt, Object derGauge, Object trigger) { + + super(type, source, sequenceNumber, timeStamp, msg); + this.observedObject = obsObj; + this.observedAttribute = obsAtt; + this.derivedGauge = derGauge; + this.trigger = trigger; + } + + /* + * ------------------------------------------ + * PUBLIC METHODS + * ------------------------------------------ + */ + + // GETTERS AND SETTERS + //-------------------- + + /** + * Gets the observed object of this monitor notification. + * + * @return The observed object. + */ + public ObjectName getObservedObject() { + return observedObject; + } + + /** + * Gets the observed attribute of this monitor notification. + * + * @return The observed attribute. + */ + public String getObservedAttribute() { + return observedAttribute; + } + + /** + * Gets the derived gauge of this monitor notification. + * + * @return The derived gauge. + */ + public Object getDerivedGauge() { + return derivedGauge; + } + + /** + * Gets the threshold/string (depending on the monitor type) that triggered off this monitor notification. + * + * @return The trigger. + */ + public Object getTrigger() { + return trigger; + } + +}