Package org.opends.server.extensions
Class JMXAlertHandler
- java.lang.Object
-
- javax.management.NotificationBroadcasterSupport
-
- org.opends.server.extensions.JMXAlertHandler
-
- All Implemented Interfaces:
DynamicMBean
,NotificationBroadcaster
,NotificationEmitter
,ConfigurationChangeListener<JmxAlertHandlerCfg>
,AlertHandler<JmxAlertHandlerCfg>
,DirectoryServerMBean
public class JMXAlertHandler extends NotificationBroadcasterSupport implements AlertHandler<JmxAlertHandlerCfg>, ConfigurationChangeListener<JmxAlertHandlerCfg>, DynamicMBean, DirectoryServerMBean
This class provides an implementation of a Directory Server alert handler that will send alerts using JMX notifications.
-
-
Constructor Summary
Constructors Constructor Description JMXAlertHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConfigChangeResult
applyConfigurationChange(JmxAlertHandlerCfg configuration)
Applies the configuration changes to this change listener.void
finalizeAlertHandler()
Performs any necessary cleanup that may be necessary when this alert handler is finalized.AlertHandlerCfg
getAlertHandlerConfiguration()
Retrieves the current configuration for this alert handler.Attribute
getAttribute(String attribute)
Obtain the value of a specific attribute of the Dynamic MBean.AttributeList
getAttributes(String[] attributes)
Get the values of several attributes of the Dynamic MBean.MBeanInfo
getMBeanInfo()
Provides the exposed attributes and actions of the Dynamic MBean using an MBeanInfo object.MBeanNotificationInfo[]
getNotificationInfo()
Retrieves information about the types of JMX notifications that may be generated.ObjectName
getObjectName()
Retrieves the JMX object name for this JMX alert handler.void
initializeAlertHandler(ServerContext serverContext, JmxAlertHandlerCfg configuration)
Initializes this alert handler based on the information in the provided configuration entry.Object
invoke(String actionName, Object[] params, String[] signature)
Allows an action to be invoked on the Dynamic MBean.boolean
isConfigurationAcceptable(JmxAlertHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)
Indicates whether the provided configuration is acceptable for this alert handler.boolean
isConfigurationChangeAcceptable(JmxAlertHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)
Indicates whether the proposed change to the configuration is acceptable to this change listener.void
sendAlertNotification(AlertGenerator generator, String alertType, LocalizableMessage alertMessage)
Sends an alert notification based on the provided information.void
setAttribute(Attribute attribute)
Set the value of a specific attribute of the Dynamic MBean.AttributeList
setAttributes(AttributeList attributes)
Sets the values of several attributes of the Dynamic MBean.-
Methods inherited from class javax.management.NotificationBroadcasterSupport
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
-
-
-
-
Method Detail
-
initializeAlertHandler
public void initializeAlertHandler(ServerContext serverContext, JmxAlertHandlerCfg configuration) throws InitializationException
Description copied from interface:AlertHandler
Initializes this alert handler based on the information in the provided configuration entry.- Specified by:
initializeAlertHandler
in interfaceAlertHandler<JmxAlertHandlerCfg>
- Parameters:
serverContext
- The server contextconfiguration
- The configuration to use to initialize this alert handler.- Throws:
InitializationException
- If a problem occurs during initialization that is not related to the server configuration.
-
getAlertHandlerConfiguration
public AlertHandlerCfg getAlertHandlerConfiguration()
Description copied from interface:AlertHandler
Retrieves the current configuration for this alert handler.- Specified by:
getAlertHandlerConfiguration
in interfaceAlertHandler<JmxAlertHandlerCfg>
- Returns:
- The current configuration for this alert handler.
-
finalizeAlertHandler
public void finalizeAlertHandler()
Description copied from interface:AlertHandler
Performs any necessary cleanup that may be necessary when this alert handler is finalized.- Specified by:
finalizeAlertHandler
in interfaceAlertHandler<JmxAlertHandlerCfg>
-
getObjectName
public ObjectName getObjectName()
Retrieves the JMX object name for this JMX alert handler.- Specified by:
getObjectName
in interfaceDirectoryServerMBean
- Returns:
- The JMX object name for this JMX alert handler.
-
sendAlertNotification
public void sendAlertNotification(AlertGenerator generator, String alertType, LocalizableMessage alertMessage)
Description copied from interface:AlertHandler
Sends an alert notification based on the provided information.- Specified by:
sendAlertNotification
in interfaceAlertHandler<JmxAlertHandlerCfg>
- Parameters:
generator
- The alert generator that created the alert.alertType
- The alert type name for this alert.alertMessage
- A message (possiblynull
) that can provide more information about this alert.
-
getNotificationInfo
public MBeanNotificationInfo[] getNotificationInfo()
Retrieves information about the types of JMX notifications that may be generated.- Specified by:
getNotificationInfo
in interfaceNotificationBroadcaster
- Overrides:
getNotificationInfo
in classNotificationBroadcasterSupport
- Returns:
- Information about the types of JMX notifications that may be generated.
-
getAttribute
public Attribute getAttribute(String attribute) throws AttributeNotFoundException
Obtain the value of a specific attribute of the Dynamic MBean.- Specified by:
getAttribute
in interfaceDynamicMBean
- Parameters:
attribute
- The name of the attribute to be retrieved.- Returns:
- The requested MBean attribute.
- Throws:
AttributeNotFoundException
- If the specified attribute is not associated with this MBean.
-
setAttribute
public void setAttribute(Attribute attribute) throws AttributeNotFoundException
Set the value of a specific attribute of the Dynamic MBean.- Specified by:
setAttribute
in interfaceDynamicMBean
- Parameters:
attribute
- The identification of the attribute to be set and the value it is to be set to.- Throws:
AttributeNotFoundException
- If the specified attribute is not associated with this MBean.
-
getAttributes
public AttributeList getAttributes(String[] attributes)
Get the values of several attributes of the Dynamic MBean.- Specified by:
getAttributes
in interfaceDynamicMBean
- Parameters:
attributes
- A list of the attributes to be retrieved.- Returns:
- The list of attributes retrieved.
-
setAttributes
public AttributeList setAttributes(AttributeList attributes)
Sets the values of several attributes of the Dynamic MBean.- Specified by:
setAttributes
in interfaceDynamicMBean
- Parameters:
attributes
- A list of attributes: The identification of the attributes to be set and the values they are to be set to.- Returns:
- The list of attributes that were set with their new values.
-
invoke
public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException
Allows an action to be invoked on the Dynamic MBean.- Specified by:
invoke
in interfaceDynamicMBean
- Parameters:
actionName
- The name of the action to be invoked.params
- An array containing the parameters to be set when the action is invoked.signature
- An array containing the signature of the action. The class objects will be loaded through the same class loader as the one used for loading the MBean on which action is invoked.- Returns:
- The object returned by the action, which represents the result of invoking the action on the MBean specified.
- Throws:
MBeanException
- If a problem is encountered while invoking the method.
-
getMBeanInfo
public MBeanInfo getMBeanInfo()
Provides the exposed attributes and actions of the Dynamic MBean using an MBeanInfo object.- Specified by:
getMBeanInfo
in interfaceDynamicMBean
- Returns:
- An instance of
MBeanInfo
allowing all attributes and actions exposed by this Dynamic MBean to be retrieved.
-
isConfigurationAcceptable
public boolean isConfigurationAcceptable(JmxAlertHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)
Description copied from interface:AlertHandler
Indicates whether the provided configuration is acceptable for this alert handler.- Specified by:
isConfigurationAcceptable
in interfaceAlertHandler<JmxAlertHandlerCfg>
- Parameters:
configuration
- The configuration for which to make tje determination.unacceptableReasons
- A list to which human-readable reasons may be added to explain why the configuration is not acceptable.- Returns:
true
if the provided configuration is acceptable, orfalse
if it is not.
-
isConfigurationChangeAcceptable
public boolean isConfigurationChangeAcceptable(JmxAlertHandlerCfg configuration, List<LocalizableMessage> unacceptableReasons)
Description copied from interface:ConfigurationChangeListener
Indicates whether the proposed change to the configuration is acceptable to this change listener.- Specified by:
isConfigurationChangeAcceptable
in interfaceConfigurationChangeListener<JmxAlertHandlerCfg>
- Parameters:
configuration
- The new configuration containing the changes.unacceptableReasons
- A list that can be used to hold messages about why the provided configuration is not acceptable.- Returns:
- Returns
true
if the proposed change is acceptable, orfalse
if it is not.
-
applyConfigurationChange
public ConfigChangeResult applyConfigurationChange(JmxAlertHandlerCfg configuration)
Description copied from interface:ConfigurationChangeListener
Applies the configuration changes to this change listener.- Specified by:
applyConfigurationChange
in interfaceConfigurationChangeListener<JmxAlertHandlerCfg>
- Parameters:
configuration
- The new configuration containing the changes.- Returns:
- Returns information about the result of changing the configuration.
-
-