blob: 7b49f2bee6c27681cf37983110d6a33d661f3a43 [file] [log] [blame]
/*
* Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package com.sun.enterprise.admin.monitor.registry;
/**
* Implementation of this interface enables notifications to
* be received for change in monitoring level from a prior
* level to a new one. Monitoring levels are defined by the
* constants class MonitoringLevel and are currently defined as
* OFF, LOW and HIGH.
* @author <href=mailto:shreedhar.ganapathy@sun.com>Shreedhar Ganapathy
*/
public interface MonitoringLevelListener {
/**
* Sets the monitoring level to a new level. Values are defined by
* MonitoringLevel.OFF, MonitoringLevel.LOW, and MonitoringLevel.High
* @param level corresponding to MonitoringLevel OFF, LOW or HIGH
* @deprecated
*/
public void setLevel(MonitoringLevel level);
/**
* Method to convey the change in monitoring level. It is a usual practice that
* various components may have <em> single instance of listener </em> to listen
* to the changes in monitoring-level for various registered Stats objects. This
* method gives a context for such components to be returned when it is
* called.
* @deprecated
* @param from the MonitoringLevel before the change
* @param to the MonitoringLevel after the change
* @param handback the Stats object that was passed to the registry during registration. It
* is guaranteed that it will be unchanged by monitoring framework.
*/
public void changeLevel(MonitoringLevel from, MonitoringLevel to,
org.glassfish.j2ee.statistics.Stats handback);
/**
* Method to convey the change in monitoring level. The configuration
* of monitoring pertains to certain components like ejb-container, web-container,
* orb, transaction-service, connection-pools, thread-pools etc. The third
* parameter loosely corresponds to the configuration in domain.xml as follows:
* <ul>
* <li> connector-connection-pool : MonitoredObjectType#CONNECTOR_CONN_POOL </li>
* <li> ejb-container : MonitoredObjectType#EJB </li>
* <li> http-service, http-listeners etc. : MonitoredObjectType#HTTP_SERVICE </li>
* <li> jdbc-connection-pool : MonitoredObjectType#JDBC_CONN_POOL </li>
* <li> orb : MonitoredObjectType#ORB </li>
* <li> thread-pool : MonitoredObjectType#THREAD_POOL </li>
* <li> transaction-service : MonitoredObjectType#TRANSACTION_SERVICE </li>
* <li> web-container : MonitoredObjectType#WEB_COMPONENT </li>
* <li> </li>
* </ul>
* The core components are expected to follow the above.
* When the level changes through administrative interfaces, the notification
* is sent to the registered listeners for corresponding types and thus the
* dynamic reconfiguration is done.
* @param from the MonitoringLevel before the change
* @param to the MonitoringLevel after the change
* @param type the MonitoredObjectType that had the level changed
*/
public void changeLevel(MonitoringLevel from, MonitoringLevel to,
MonitoredObjectType type);
}