public class

MBeanRegistrationSupport

extends Object
java.lang.Object
   ↳ org.springframework.jmx.support.MBeanRegistrationSupport
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Provides supporting infrastructure for registering MBeans with an javax.management.MBeanServer. The behavior when encountering an existing MBean at a given ObjectName is fully configurable allowing for flexible registration settings.

All registered MBeans are tracked and can be unregistered by calling the #unregisterBeans() method.

Sub-classes can receive notifications when an MBean is registered or unregistered by overriding the onRegister(ObjectName) and onUnregister(ObjectName) methods respectively.

By default, the registration process will fail if attempting to register an MBean using a ObjectName that is already used.

By setting the registrationBehaviorName property to REGISTRATION_IGNORE_EXISTING the registration process will simply ignore existing MBeans leaving them registered. This is useful in settings where multiple applications want to share a common MBean in a shared MBeanServer.

Setting registrationBehaviorName property to REGISTRATION_REPLACE_EXISTING will cause existing MBeans to be replaced during registration if necessary. This is useful in situations where you can't guarantee the state of your MBeanServer.

Summary

Constants
int REGISTRATION_FAIL_ON_EXISTING Constant indicating that registration should fail when attempting to register an MBean under a name that already exists.
int REGISTRATION_IGNORE_EXISTING Constant indicating that registration should ignore the affected MBean when attempting to register an MBean under a name that already exists.
int REGISTRATION_REPLACE_EXISTING Constant indicating that registration should replace the affected MBean when attempting to register an MBean under a name that already exists.
Fields
protected final Log logger Log instance for this class.
protected final Set<ObjectName> registeredBeans The beans that have been registered by this exporter.
protected MBeanServer server The MBeanServer instance being used to register beans.
Public Constructors
MBeanRegistrationSupport()
Public Methods
final MBeanServer getServer()
Return the MBeanServer that the beans will be registered with.
void setRegistrationBehavior(int registrationBehavior)
Specify what action should be taken when attempting to register an MBean under an ObjectName that already exists.
void setRegistrationBehaviorName(String registrationBehavior)
Set the registration behavior by the name of the corresponding constant, e.g.
void setServer(MBeanServer server)
Specify the MBeanServer instance with which all beans should be registered.
Protected Methods
void doRegister(Object mbean, ObjectName objectName)
Actually register the MBean with the server.
void doUnregister(ObjectName objectName)
Actually unregister the specified MBean from the server.
final ObjectName[] getRegisteredObjectNames()
Return the ObjectNames of all registered beans.
void onRegister(ObjectName objectName)
Called when an MBean is registered under the given ObjectName.
void onRegister(ObjectName objectName, Object mbean)
Called when an MBean is registered under the given ObjectName.
void onUnregister(ObjectName objectName)
Called when an MBean is unregistered under the given ObjectName.
void unregisterBeans()
Unregisters all beans that have been registered by an instance of this class.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int REGISTRATION_FAIL_ON_EXISTING

Constant indicating that registration should fail when attempting to register an MBean under a name that already exists.

This is the default registration behavior.

Constant Value: 0 (0x00000000)

public static final int REGISTRATION_IGNORE_EXISTING

Constant indicating that registration should ignore the affected MBean when attempting to register an MBean under a name that already exists.

Constant Value: 1 (0x00000001)

public static final int REGISTRATION_REPLACE_EXISTING

Constant indicating that registration should replace the affected MBean when attempting to register an MBean under a name that already exists.

Constant Value: 2 (0x00000002)

Fields

protected final Log logger

Log instance for this class.

protected final Set<ObjectName> registeredBeans

The beans that have been registered by this exporter.

protected MBeanServer server

The MBeanServer instance being used to register beans.

Public Constructors

public MBeanRegistrationSupport ()

Public Methods

public final MBeanServer getServer ()

Return the MBeanServer that the beans will be registered with.

public void setRegistrationBehavior (int registrationBehavior)

Specify what action should be taken when attempting to register an MBean under an ObjectName that already exists.

Default is REGISTRATION_FAIL_ON_EXISTING.

public void setRegistrationBehaviorName (String registrationBehavior)

Set the registration behavior by the name of the corresponding constant, e.g. "REGISTRATION_IGNORE_EXISTING".

public void setServer (MBeanServer server)

Specify the MBeanServer instance with which all beans should be registered. The MBeanExporter will attempt to locate an existing MBeanServer if none is supplied.

Protected Methods

protected void doRegister (Object mbean, ObjectName objectName)

Actually register the MBean with the server. The behavior when encountering an existing MBean can be configured using the setRegistrationBehavior(int) and setRegistrationBehaviorName(String) methods.

Parameters
mbean the MBean instance
objectName the suggested ObjectName for the MBean
Throws
JMException if the registration failed

protected void doUnregister (ObjectName objectName)

Actually unregister the specified MBean from the server.

Parameters
objectName the suggested ObjectName for the MBean

protected final ObjectName[] getRegisteredObjectNames ()

Return the ObjectNames of all registered beans.

protected void onRegister (ObjectName objectName)

Called when an MBean is registered under the given ObjectName. Allows subclasses to perform additional processing when an MBean is registered.

The default implementation is empty. Can be overridden in subclasses.

Parameters
objectName the actual ObjectName that the MBean was registered with

protected void onRegister (ObjectName objectName, Object mbean)

Called when an MBean is registered under the given ObjectName. Allows subclasses to perform additional processing when an MBean is registered.

The default implementation delegates to onRegister(ObjectName).

Parameters
objectName the actual ObjectName that the MBean was registered with
mbean the registered MBean instance

protected void onUnregister (ObjectName objectName)

Called when an MBean is unregistered under the given ObjectName. Allows subclasses to perform additional processing when an MBean is unregistered.

The default implementation is empty. Can be overridden in subclasses.

Parameters
objectName the ObjectName that the MBean was registered with

protected void unregisterBeans ()

Unregisters all beans that have been registered by an instance of this class.