Package org.opends.server.api
Class MonitorProvider<T extends MonitorProviderCfg>
- java.lang.Object
-
- org.opends.server.api.MonitorProvider<T>
-
- Type Parameters:
T- The type of configuration handled by this monitor provider.
- Direct Known Subclasses:
ClientConnectionMonitorProvider,ConnectionHandlerMonitor,DiskSpaceMonitor,EntryCacheMonitorProvider,LDAPStatistics,LightweightServerHandler,LocalBackendMonitor,MemoryUsageMonitorProvider,ParallelWorkQueueMonitor,ReplicationMonitor,ReplicationServerDomain,ServerHandler,StackTraceMonitorProvider,SystemInfoMonitorProvider,TraditionalWorkQueueMonitor,VersionMonitorProvider
@PublicAPI(stability=VOLATILE, mayInstantiate=false, mayExtend=true, mayInvoke=false) public abstract class MonitorProvider<T extends MonitorProviderCfg> extends Object
This class defines the set of methods and structures that must be implemented by a Directory Server module that can provide usage, performance, availability, or other kinds of monitor information to clients.
-
-
Constructor Summary
Constructors Constructor Description MonitorProvider()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidfinalizeMonitorProvider()Finalizes this monitor provider so that it may be unloaded and taken out of service.abstract MonitorDatagetMonitorData()Retrieves a set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.abstract StringgetMonitorInstanceName()Retrieves the name of this monitor provider.ObjectClassgetMonitorObjectClass()Retrieves the objectclass that should be included in the monitor entry created from this monitor provider.voidinitializeMonitorProvider(T configuration)Initializes this monitor provider based on the information in the provided configuration entry.booleanisConfigurationAcceptable(MonitorProviderCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)Indicates whether the provided configuration is acceptable for this monitor provider.protected voidscheduleUpdate(Runnable updater, long initialDelay, long period, TimeUnit unit)Schedules any periodic processing that may be desired to update the information associated with this monitor.
-
-
-
Method Detail
-
initializeMonitorProvider
public void initializeMonitorProvider(T configuration) throws ConfigException, InitializationException
Initializes this monitor provider based on the information in the provided configuration entry.- Parameters:
configuration- The configuration to use to initialize this monitor provider.- Throws:
ConfigException- If an unrecoverable problem arises in the process of performing the initialization.InitializationException- If a problem occurs during initialization that is not related to the server configuration.
-
isConfigurationAcceptable
public boolean isConfigurationAcceptable(MonitorProviderCfg configuration, List<org.forgerock.i18n.LocalizableMessage> unacceptableReasons)
Indicates whether the provided configuration is acceptable for this monitor provider. It should be possible to call this method on an uninitialized monitor provider instance in order to determine whether the monitor provider would be able to use the provided configuration.
Note that implementations which use a subclass of the provided configuration class will likely need to cast the configuration to the appropriate subclass type.- Parameters:
configuration- The monitor provider configuration for which to make the determination.unacceptableReasons- A list that may be used to hold the reasons that the provided configuration is not acceptable.- Returns:
trueif the provided configuration is acceptable for this monitor provider, orfalseif not.
-
finalizeMonitorProvider
public void finalizeMonitorProvider()
Finalizes this monitor provider so that it may be unloaded and taken out of service. This method should be overridden by any monitor provider that has resources that should be released when the monitor is no longer needed. Any monitor that does override this method must first invoke this version by callingsuper.finalizeMonitorProvider.
-
getMonitorInstanceName
public abstract String getMonitorInstanceName()
Retrieves the name of this monitor provider. It should be unique among all monitor providers, including all instances of the same monitor provider.- Returns:
- The name of this monitor provider.
-
getMonitorObjectClass
public ObjectClass getMonitorObjectClass()
Retrieves the objectclass that should be included in the monitor entry created from this monitor provider. This may be overridden by subclasses that wish to include their own custom objectclass in the monitor entry (e.g., to make it easier to search for monitor entries of that type). The default implementation returns the "extensibleObject" objectclass.- Returns:
- The objectclass that should be included in the monitor entry created from this monitor provider.
-
scheduleUpdate
protected final void scheduleUpdate(Runnable updater, long initialDelay, long period, TimeUnit unit)
Schedules any periodic processing that may be desired to update the information associated with this monitor. Note that best-effort attempts will be made to ensure that calls to this method comegetUpdateIntervalmilliseconds apart, but no guarantees will be made.- Parameters:
updater- The updater to execute.initialDelay- The time to delay first execution.period- The period between successive executions.unit- The time unit of the initialDelay and period parameters.
-
getMonitorData
public abstract MonitorData getMonitorData()
Retrieves a set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.- Returns:
- A set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.
-
-