Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.jmx.support
Class MBeanRegistrationSupport

    java.lang.Object
      org.springframework.jmx.support.MBeanRegistrationSupport

Direct Known Subclasses:
  ConnectorServerFactoryBean, MBeanExporter

    public class MBeanRegistrationSupport

extends java.lang.Object

Provides supporting infrastructure for registering MBeans with an `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`.

Since:
  2.0
Author:
  Rob Harrop, Juergen Hoeller
See Also:
  `setServer(javax.management.MBeanServer)`, `setRegistrationBehaviorName(java.lang.String)`, `MBeanExporter`

Field Summary
`protected org.apache.commons.logging.Log` | `logger` `Log` instance for this class.
`protected java.util.Set<javax.management.ObjectName>` | `registeredBeans` The beans that have been registered by this exporter.
`static int` | `REGISTRATION_FAIL_ON_EXISTING` Constant indicating that registration should fail when attempting to register an MBean under a name that already exists.
`static 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.
`static 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.
`protected javax.management.MBeanServer` | `server` The `MBeanServer` instance being used to register beans.

Constructor Summary
`MBeanRegistrationSupport()`

Method Summary
`protected void` | `doRegister(java.lang.Object mbean, javax.management.ObjectName objectName)` Actually register the MBean with the server.
`protected void` | `doUnregister(javax.management.ObjectName objectName)` Actually unregister the specified MBean from the server.
`protected javax.management.ObjectName[]` | `getRegisteredObjectNames()` Return the `ObjectNames` of all registered beans.
`javax.management.MBeanServer` | `getServer()` Return the `MBeanServer` that the beans will be registered with.
`protected void` | `onRegister(javax.management.ObjectName objectName)` Called when an MBean is registered under the given `ObjectName`.
`protected void` | `onRegister(javax.management.ObjectName objectName, java.lang.Object mbean)` Called when an MBean is registered under the given `ObjectName`.
`protected void` | `onUnregister(javax.management.ObjectName objectName)` Called when an MBean is unregistered under the given `ObjectName`.
`void` | `setRegistrationBehavior(int registrationBehavior)` Specify what action should be taken when attempting to register an MBean under an `ObjectName` that already exists.
`void` | `setRegistrationBehaviorName(java.lang.String registrationBehavior)` Set the registration behavior by the name of the corresponding constant, e.g.
`void` | `setServer(javax.management.MBeanServer server)` Specify the `MBeanServer` instance with which all beans should be registered.
`protected void` | `unregisterBeans()` Unregisters all beans that have been registered by an instance of this class.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### REGISTRATION_FAIL_ON_EXISTING

    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.

  See Also:
    Constant Field Values

### REGISTRATION_IGNORE_EXISTING

    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.

  See Also:
    Constant Field Values

### REGISTRATION_REPLACE_EXISTING

    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.

  See Also:
    Constant Field Values

### logger

    protected final org.apache.commons.logging.Log logger

  `Log` instance for this class.

### server

    protected javax.management.MBeanServer server

  The `MBeanServer` instance being used to register beans.

### registeredBeans

    protected final java.util.Set<javax.management.ObjectName> registeredBeans

  The beans that have been registered by this exporter.

Constructor Detail

### MBeanRegistrationSupport

    public MBeanRegistrationSupport()

Method Detail

### setServer

    public void setServer(javax.management.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.

### getServer

    public final javax.management.MBeanServer getServer()

  Return the `MBeanServer` that the beans will be registered with.

### setRegistrationBehaviorName

    public void setRegistrationBehaviorName(java.lang.String registrationBehavior)

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

  See Also:
    `setRegistrationBehavior(int)`, `REGISTRATION_FAIL_ON_EXISTING`, `REGISTRATION_IGNORE_EXISTING`, `REGISTRATION_REPLACE_EXISTING`

### setRegistrationBehavior

    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.

  See Also:
    `setRegistrationBehaviorName(String)`, `REGISTRATION_FAIL_ON_EXISTING`, `REGISTRATION_IGNORE_EXISTING`, `REGISTRATION_REPLACE_EXISTING`

### doRegister

    protected void doRegister(java.lang.Object mbean,
                              javax.management.ObjectName objectName)
                       throws javax.management.JMException

  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:
    `javax.management.JMException` - if the registration failed

### unregisterBeans

    protected void unregisterBeans()

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

### doUnregister

    protected void doUnregister(javax.management.ObjectName objectName)

  Actually unregister the specified MBean from the server.

  Parameters:
    `objectName` - the suggested ObjectName for the MBean

### getRegisteredObjectNames

    protected final javax.management.ObjectName[] getRegisteredObjectNames()

  Return the `ObjectNames` of all registered beans.

### onRegister

    protected void onRegister(javax.management.ObjectName objectName,
                              java.lang.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

### onRegister

    protected void onRegister(javax.management.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

### onUnregister

    protected void onUnregister(javax.management.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

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD