StandardMBean (Java SE 16 & JDK 16) (original) (raw)
All Implemented Interfaces:
[DynamicMBean](DynamicMBean.html "interface in javax.management")
, [MBeanRegistration](MBeanRegistration.html "interface in javax.management")
Direct Known Subclasses:
[StandardEmitterMBean](StandardEmitterMBean.html "class in javax.management")
An MBean whose management interface is determined by reflection on a Java interface.
This class brings more flexibility to the notion of Management Interface in the use of Standard MBeans. Straightforward use of the patterns for Standard MBeans described in the JMX Specification means that there is a fixed relationship between the implementation class of an MBean and its management interface (i.e., if the implementation class is Thing, the management interface must be ThingMBean). This class makes it possible to keep the convenience of specifying the management interface with a Java interface, without requiring that there be any naming relationship between the implementation and interface classes.
By making a DynamicMBean out of an MBean, this class makes it possible to select any interface implemented by the MBean as its management interface, provided that it complies with JMX patterns (i.e., attributes defined by getter/setter etc...).
This class also provides hooks that make it possible to supply custom descriptions and names for the MBeanInfo returned by the DynamicMBean interface.
Using this class, an MBean can be created with any implementation class name Impl and with a management interface defined (as for current Standard MBeans) by any interface_Intf_, in one of two general ways:
- Using the public constructorStandardMBean(impl,interface):
MBeanServer mbs;
...
Impl impl = new Impl(...);
StandardMBean mbean = new StandardMBean(impl, Intf.class, false);
mbs.registerMBean(mbean, objectName); - Subclassing StandardMBean:
public class Impl extends StandardMBean implements Intf {
public Impl() {
super(Intf.class, false);
}
// implement methods of Intf
}
[...]
MBeanServer mbs;
....
Impl impl = new Impl();
mbs.registerMBean(impl, objectName);
In either case, the class Impl must implement the interface Intf.
Standard MBeans based on the naming relationship between implementation and interface classes are of course still available.
This class may also be used to construct MXBeans. The usage is exactly the same as for Standard MBeans except that in the examples above, the false
parameter to the constructor orsuper(...)
invocation is instead true
.
Since:
1.5
Constructor Summary
Constructorsprotected
[StandardMBean](#%3Cinit%3E%28java.lang.Class%29)([Class](../../../java.base/java/lang/Class.html "class in java.lang")<?> mbeanInterface)
Make a DynamicMBean out of this, using the specifiedmbeanInterface class.protected
[StandardMBean](#%3Cinit%3E%28java.lang.Class,boolean%29)([Class](../../../java.base/java/lang/Class.html "class in java.lang")<?> mbeanInterface, boolean isMXBean)
Make a DynamicMBean out of this, using the specifiedmbeanInterface class, and choosing whether the resulting MBean is an MXBean.[StandardMBean](#%3Cinit%3E%28T,java.lang.Class%29)(T implementation,[Class](../../../java.base/java/lang/Class.html "class in java.lang")<T> mbeanInterface)
Make a DynamicMBean out of the objectimplementation, using the specifiedmbeanInterface class.[StandardMBean](#%3Cinit%3E%28T,java.lang.Class,boolean%29)(T implementation,[Class](../../../java.base/java/lang/Class.html "class in java.lang")<T> mbeanInterface, boolean isMXBean)
Make a DynamicMBean out of the objectimplementation, using the specifiedmbeanInterface class, and choosing whether the resultant MBean is an MXBean.
Method Summary
protected void
Customization hook: cache the MBeanInfo built for this object.
Obtain the value of a specific attribute of the Dynamic MBean.
Get the values of several attributes of the Dynamic MBean.
Customization hook: Return the MBeanInfo cached for this object.
Customization hook: Get the className that will be used in the MBeanInfo returned by this MBean.
Customization hook: Get the MBeanConstructorInfo[] that will be used in the MBeanInfo returned by this MBean.
Customization hook: Get the description that will be used in the MBeanAttributeInfo returned by this MBean.
Customization hook: Get the description that will be used in the MBeanConstructorInfo returned by this MBean.
Customization hook: Get the description that will be used for the sequence MBeanParameterInfo of the MBeanConstructorInfo returned by this MBean.
Customization hook: Get the description that will be used in the MBeanFeatureInfo returned by this MBean.
Customization hook: Get the description that will be used in the MBeanInfo returned by this MBean.
Customization hook: Get the description that will be used in the MBeanOperationInfo returned by this MBean.
Customization hook: Get the description that will be used for the sequence MBeanParameterInfo of the MBeanOperationInfo returned by this MBean.protected int
Customization hook: Get the impact flag of the operation that will be used in the MBeanOperationInfo returned by this MBean.
Get the implementation of this Standard MBean (or MXBean).
Get the class of the implementation of this Standard MBean (or MXBean).
Get the Management Interface of this Standard MBean (or MXBean).
Customization hook: Get the name that will be used for the sequence MBeanParameterInfo of the MBeanConstructorInfo returned by this MBean.
Customization hook: Get the name that will be used for the sequence MBeanParameterInfo of the MBeanOperationInfo returned by this MBean.
Allows an action to be invoked on the Dynamic MBean.void
Allows the MBean to perform any operations needed after having been unregistered in the MBean server.void
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed.void
Allows the MBean to perform any operations it needs before being unregistered by the MBean server.
Allows the MBean to perform any operations it needs before being registered in the MBean server.void
Set the value of a specific attribute of the Dynamic MBean.
Sets the values of several attributes of the Dynamic MBean.void
Replace the implementation object wrapped in this object.
Methods declared in class java.lang.Object
[clone](../../../java.base/java/lang/Object.html#clone%28%29), [equals](../../../java.base/java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../../java.base/java/lang/Object.html#finalize%28%29), [getClass](../../../java.base/java/lang/Object.html#getClass%28%29), [hashCode](../../../java.base/java/lang/Object.html#hashCode%28%29), [notify](../../../java.base/java/lang/Object.html#notify%28%29), [notifyAll](../../../java.base/java/lang/Object.html#notifyAll%28%29), [toString](../../../java.base/java/lang/Object.html#toString%28%29), [wait](../../../java.base/java/lang/Object.html#wait%28%29), [wait](../../../java.base/java/lang/Object.html#wait%28long%29), [wait](../../../java.base/java/lang/Object.html#wait%28long,int%29)
Constructor Details
StandardMBean
Make a DynamicMBean out of the objectimplementation, using the specifiedmbeanInterface class.
Type Parameters:
T
- Allows the compiler to check thatimplementation
does indeed implement the class described bymbeanInterface
. The compiler can only check this ifmbeanInterface
is a class literal such asMyMBean.class
.
Parameters:
implementation
- The implementation of this MBean.
mbeanInterface
- The Management Interface exported by this MBean's implementation. Ifnull
, then this object will use standard JMX design pattern to determine the management interface associated with the given implementation.
Throws:
[IllegalArgumentException](../../../java.base/java/lang/IllegalArgumentException.html "class in java.lang")
- if the givenimplementation is null.
[NotCompliantMBeanException](NotCompliantMBeanException.html "class in javax.management")
- if the mbeanInterface does not follow JMX design patterns for Management Interfaces, or if the given implementation does not implement the specified interface.StandardMBean
Make a DynamicMBean out of this, using the specifiedmbeanInterface class.
Calls this(this,mbeanInterface). This constructor is reserved to subclasses.
Parameters:
mbeanInterface
- The Management Interface exported by this MBean.
Throws:
[NotCompliantMBeanException](NotCompliantMBeanException.html "class in javax.management")
- if the mbeanInterface does not follow JMX design patterns for Management Interfaces, or if this does not implement the specified interface.StandardMBean
public StandardMBean(T implementation,Class mbeanInterface, boolean isMXBean)
Make a DynamicMBean out of the objectimplementation, using the specifiedmbeanInterface class, and choosing whether the resultant MBean is an MXBean. This constructor can be used to make either Standard MBeans or MXBeans. Unlike the constructor StandardMBean(Object, Class), it does not throw NotCompliantMBeanException.
Type Parameters:
T
- Allows the compiler to check thatimplementation
does indeed implement the class described bymbeanInterface
. The compiler can only check this ifmbeanInterface
is a class literal such asMyMBean.class
.
Parameters:
implementation
- The implementation of this MBean.
mbeanInterface
- The Management Interface exported by this MBean's implementation. Ifnull
, then this object will use standard JMX design pattern to determine the management interface associated with the given implementation.
isMXBean
- If true, thembeanInterface
parameter names an MXBean interface and the resultant MBean is an MXBean.
Throws:
[IllegalArgumentException](../../../java.base/java/lang/IllegalArgumentException.html "class in java.lang")
- if the givenimplementation is null, or if the mbeanInterface does not follow JMX design patterns for Management Interfaces, or if the given implementation does not implement the specified interface.
Since:
1.6StandardMBean
protected StandardMBean(Class<?> mbeanInterface, boolean isMXBean)
Make a DynamicMBean out of this, using the specifiedmbeanInterface class, and choosing whether the resulting MBean is an MXBean. This constructor can be used to make either Standard MBeans or MXBeans. Unlike the constructor StandardMBean(Object, Class), it does not throw NotCompliantMBeanException.
Calls this(this, mbeanInterface, isMXBean). This constructor is reserved to subclasses.
Parameters:
mbeanInterface
- The Management Interface exported by this MBean.
isMXBean
- If true, thembeanInterface
parameter names an MXBean interface and the resultant MBean is an MXBean.
Throws:
[IllegalArgumentException](../../../java.base/java/lang/IllegalArgumentException.html "class in java.lang")
- if the mbeanInterface does not follow JMX design patterns for Management Interfaces, or if this does not implement the specified interface.
Since:
1.6Method Details
setImplementation
Replace the implementation object wrapped in this object.
Parameters:
implementation
- The new implementation of this Standard MBean (or MXBean). Theimplementation
object must implement the Standard MBean (or MXBean) interface that was supplied when thisStandardMBean
was constructed.
Throws:
[IllegalArgumentException](../../../java.base/java/lang/IllegalArgumentException.html "class in java.lang")
- if the givenimplementation is null.
[NotCompliantMBeanException](NotCompliantMBeanException.html "class in javax.management")
- if the givenimplementation does not implement the Standard MBean (or MXBean) interface that was supplied at construction.
See Also:
getImplementation()getImplementation
public Object getImplementation()
Get the implementation of this Standard MBean (or MXBean).
Returns:
The implementation of this Standard MBean (or MXBean).
See Also:
setImplementation(java.lang.Object)getMBeanInterface
public final Class<?> getMBeanInterface()
Get the Management Interface of this Standard MBean (or MXBean).
Returns:
The management interface of this Standard MBean (or MXBean).getImplementationClass
public Class<?> getImplementationClass()
Get the class of the implementation of this Standard MBean (or MXBean).
Returns:
The class of the implementation of this Standard MBean (or MXBean).getAttribute
Obtain the value of a specific attribute of the Dynamic MBean.
Specified by:
[getAttribute](DynamicMBean.html#getAttribute%28java.lang.String%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
Parameters:
attribute
- The name of the attribute to be retrieved
Returns:
The value of the attribute retrieved.
Throws:
[AttributeNotFoundException](AttributeNotFoundException.html "class in javax.management")
- if specified attribute does not exist or cannot be retrieved
[MBeanException](MBeanException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown by the MBean's getter.
[ReflectionException](ReflectionException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown while trying to invoke the getter.
See Also:
DynamicMBean.setAttribute(javax.management.Attribute)setAttribute
Set the value of a specific attribute of the Dynamic MBean.
Specified by:
[setAttribute](DynamicMBean.html#setAttribute%28javax.management.Attribute%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
Parameters:
attribute
- The identification of the attribute to be set and the value it is to be set to.
Throws:
[AttributeNotFoundException](AttributeNotFoundException.html "class in javax.management")
- if specified attribute does not exist or cannot be retrieved
[InvalidAttributeValueException](InvalidAttributeValueException.html "class in javax.management")
- if value specified is not valid for the attribute
[MBeanException](MBeanException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown by the MBean's setter.
[ReflectionException](ReflectionException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown while trying to invoke the MBean's setter.
See Also:
DynamicMBean.getAttribute(java.lang.String)getAttributes
Get the values of several attributes of the Dynamic MBean.
Specified by:
[getAttributes](DynamicMBean.html#getAttributes%28java.lang.String%5B%5D%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
Parameters:
attributes
- A list of the attributes to be retrieved.
Returns:
The list of attributes retrieved.
See Also:
DynamicMBean.setAttributes(javax.management.AttributeList)setAttributes
Sets the values of several attributes of the Dynamic MBean.
Specified by:
[setAttributes](DynamicMBean.html#setAttributes%28javax.management.AttributeList%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
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.
See Also:
DynamicMBean.getAttributes(java.lang.String[])invoke
Allows an action to be invoked on the Dynamic MBean.
Specified by:
[invoke](DynamicMBean.html#invoke%28java.lang.String,java.lang.Object%5B%5D,java.lang.String%5B%5D%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
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 the action is invoked.
Returns:
The object returned by the action, which represents the result of invoking the action on the MBean specified.
Throws:
[MBeanException](MBeanException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown by the MBean's invoked method.
[ReflectionException](ReflectionException.html "class in javax.management")
- Wraps ajava.lang.Exception
thrown while trying to invoke the methodgetMBeanInfo
Get the MBeanInfo for this MBean.
This method implementsDynamicMBean.getMBeanInfo().
This method first calls getCachedMBeanInfo() in order to retrieve the cached MBeanInfo for this MBean, if any. If the MBeanInfo returned by getCachedMBeanInfo() is not null, then it is returned.
Otherwise, this method builds a default MBeanInfo for this MBean, using the Management Interface specified for this MBean.
While building the MBeanInfo, this method calls the customization hooks that make it possible for subclasses to supply their custom descriptions, parameter names, etc...
Finally, it calls cacheMBeanInfo() in order to cache the new MBeanInfo.
Specified by:
[getMBeanInfo](DynamicMBean.html#getMBeanInfo%28%29)
in interface[DynamicMBean](DynamicMBean.html "interface in javax.management")
Returns:
The cached MBeanInfo for that MBean, if not null, or a newly built MBeanInfo if none was cached.getClassName
Customization hook: Get the className that will be used in the MBeanInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom class name. The default implementation returnsinfo.getClassName().
Parameters:
info
- The default MBeanInfo derived by reflection.
Returns:
the class name for the new MBeanInfo.getDescription
Customization hook: Get the description that will be used in the MBeanInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom MBean description. The default implementation returnsinfo.getDescription().
Parameters:
info
- The default MBeanInfo derived by reflection.
Returns:
the description for the new MBeanInfo.getDescription
Customization hook: Get the description that will be used in the MBeanFeatureInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returnsinfo.getDescription().
This method is called bygetDescription(MBeanAttributeInfo),getDescription(MBeanOperationInfo),getDescription(MBeanConstructorInfo).
Parameters:
info
- The default MBeanFeatureInfo derived by reflection.
Returns:
the description for the given MBeanFeatureInfo.getDescription
Customization hook: Get the description that will be used in the MBeanAttributeInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returns getDescription((MBeanFeatureInfo) info).
Parameters:
info
- The default MBeanAttributeInfo derived by reflection.
Returns:
the description for the given MBeanAttributeInfo.getDescription
Customization hook: Get the description that will be used in the MBeanConstructorInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returns getDescription((MBeanFeatureInfo) info).
Parameters:
info
- The default MBeanConstructorInfo derived by reflection.
Returns:
the description for the given MBeanConstructorInfo.getDescription
Customization hook: Get the description that will be used for the sequence MBeanParameterInfo of the MBeanConstructorInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returnsparam.getDescription().
Parameters:
ctor
- The default MBeanConstructorInfo derived by reflection.
param
- The default MBeanParameterInfo derived by reflection.
sequence
- The sequence number of the parameter considered ("0" for the first parameter, "1" for the second parameter, etc...).
Returns:
the description for the given MBeanParameterInfo.getParameterName
Customization hook: Get the name that will be used for the sequence MBeanParameterInfo of the MBeanConstructorInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom parameter name. The default implementation returnsparam.getName().
Parameters:
ctor
- The default MBeanConstructorInfo derived by reflection.
param
- The default MBeanParameterInfo derived by reflection.
sequence
- The sequence number of the parameter considered ("0" for the first parameter, "1" for the second parameter, etc...).
Returns:
the name for the given MBeanParameterInfo.getDescription
Customization hook: Get the description that will be used in the MBeanOperationInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returnsgetDescription((MBeanFeatureInfo) info).
Parameters:
info
- The default MBeanOperationInfo derived by reflection.
Returns:
the description for the given MBeanOperationInfo.getImpact
Customization hook: Get the impact flag of the operation that will be used in the MBeanOperationInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom impact flag. The default implementation returnsinfo.getImpact().
Parameters:
info
- The default MBeanOperationInfo derived by reflection.
Returns:
the impact flag for the given MBeanOperationInfo.getParameterName
Customization hook: Get the name that will be used for the sequence MBeanParameterInfo of the MBeanOperationInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom parameter name. The default implementation returnsparam.getName().
Parameters:
op
- The default MBeanOperationInfo derived by reflection.
param
- The default MBeanParameterInfo derived by reflection.
sequence
- The sequence number of the parameter considered ("0" for the first parameter, "1" for the second parameter, etc...).
Returns:
the name to use for the given MBeanParameterInfo.getDescription
Customization hook: Get the description that will be used for the sequence MBeanParameterInfo of the MBeanOperationInfo returned by this MBean.
Subclasses may redefine this method in order to supply their custom description. The default implementation returnsparam.getDescription().
Parameters:
op
- The default MBeanOperationInfo derived by reflection.
param
- The default MBeanParameterInfo derived by reflection.
sequence
- The sequence number of the parameter considered ("0" for the first parameter, "1" for the second parameter, etc...).
Returns:
the description for the given MBeanParameterInfo.getConstructors
Customization hook: Get the MBeanConstructorInfo[] that will be used in the MBeanInfo returned by this MBean.
By default, this method returnsnull
if the wrapped implementation is not this. Indeed, if the wrapped implementation is not this object itself, it will not be possible to recreate a wrapped implementation by calling the implementation constructors throughMBeanServer.createMBean(...)
.
Otherwise, if the wrapped implementation is this,ctors is returned.
Subclasses may redefine this method in order to modify this behavior, if needed.
Parameters:
ctors
- The default MBeanConstructorInfo[] derived by reflection.
impl
- The wrapped implementation. Ifnull
is passed, the wrapped implementation is ignored andctors is returned.
Returns:
the MBeanConstructorInfo[] for the new MBeanInfo.getCachedMBeanInfo
protected MBeanInfo getCachedMBeanInfo()
Customization hook: Return the MBeanInfo cached for this object.
Subclasses may redefine this method in order to implement their own caching policy. The default implementation stores oneMBeanInfo object per instance.
Returns:
The cached MBeanInfo, or null if no MBeanInfo is cached.
See Also:
cacheMBeanInfo(MBeanInfo)cacheMBeanInfo
protected void cacheMBeanInfo(MBeanInfo info)
Customization hook: cache the MBeanInfo built for this object.
Subclasses may redefine this method in order to implement their own caching policy. The default implementation storesinfo
in this instance. A subclass can define other policies, such as not savinginfo
(so it is reconstructed every time getMBeanInfo() is called) or sharing a unique MBeanInfo object when severalStandardMBean
instances have equal MBeanInfo values.
Parameters:
info
- the newMBeanInfo
to cache. Any previously cached value is discarded. This parameter may be null, in which case there is no new cached value.preRegister
Allows the MBean to perform any operations it needs before being registered in the MBean server. If the name of the MBean is not specified, the MBean can provide a name for its registration. If any exception is raised, the MBean will not be registered in the MBean server.
The default implementation of this method returns thename
parameter. It does nothing else for Standard MBeans. For MXBeans, it records theMBeanServer
andObjectName
parameters so they can be used to translate inter-MXBean references.
It is good practice for a subclass that overrides this method to call the overridden method viasuper.preRegister(...)
. This is necessary if this object is an MXBean that is referenced by attributes or operations in other MXBeans.
Specified by:
[preRegister](MBeanRegistration.html#preRegister%28javax.management.MBeanServer,javax.management.ObjectName%29)
in interface[MBeanRegistration](MBeanRegistration.html "interface in javax.management")
Parameters:
server
- The MBean server in which the MBean will be registered.
name
- The object name of the MBean. This name is null if the name parameter to one of thecreateMBean
orregisterMBean
methods in the MBeanServer interface is null. In that case, this method must return a non-null ObjectName for the new MBean.
Returns:
The name under which the MBean is to be registered. This value must not be null. If thename
parameter is not null, it will usually but not necessarily be the returned value.
Throws:
[IllegalArgumentException](../../../java.base/java/lang/IllegalArgumentException.html "class in java.lang")
- if this is an MXBean andname
is null.
[InstanceAlreadyExistsException](InstanceAlreadyExistsException.html "class in javax.management")
- if this is an MXBean and it has already been registered under another name (in this MBean Server or another).
[Exception](../../../java.base/java/lang/Exception.html "class in java.lang")
- no other checked exceptions are thrown by this method butException
is declared so that subclasses can override the method and throw their own exceptions.
Since:
1.6postRegister
public void postRegister(Boolean registrationDone)
Allows the MBean to perform any operations needed after having been registered in the MBean server or after the registration has failed.
The default implementation of this method does nothing for Standard MBeans. For MXBeans, it undoes any work done bypreRegister if registration fails.
It is good practice for a subclass that overrides this method to call the overridden method viasuper.postRegister(...)
. This is necessary if this object is an MXBean that is referenced by attributes or operations in other MXBeans.
Specified by:
[postRegister](MBeanRegistration.html#postRegister%28java.lang.Boolean%29)
in interface[MBeanRegistration](MBeanRegistration.html "interface in javax.management")
Parameters:
registrationDone
- Indicates whether or not the MBean has been successfully registered in the MBean server. The value false means that the registration phase has failed.
Since:
1.6preDeregister
public void preDeregister() throws Exception
Allows the MBean to perform any operations it needs before being unregistered by the MBean server.
The default implementation of this method does nothing.
It is good practice for a subclass that overrides this method to call the overridden method viasuper.preDeregister(...)
.
Specified by:
[preDeregister](MBeanRegistration.html#preDeregister%28%29)
in interface[MBeanRegistration](MBeanRegistration.html "interface in javax.management")
Throws:
[Exception](../../../java.base/java/lang/Exception.html "class in java.lang")
- no checked exceptions are throw by this method butException
is declared so that subclasses can override this method and throw their own exceptions.
Since:
1.6postDeregister
public void postDeregister()
Allows the MBean to perform any operations needed after having been unregistered in the MBean server.
The default implementation of this method does nothing for Standard MBeans. For MXBeans, it removes any information that was recorded by the preRegister method.
It is good practice for a subclass that overrides this method to call the overridden method viasuper.postRegister(...)
. This is necessary if this object is an MXBean that is referenced by attributes or operations in other MXBeans.
Specified by:
[postDeregister](MBeanRegistration.html#postDeregister%28%29)
in interface[MBeanRegistration](MBeanRegistration.html "interface in javax.management")
Since:
1.6