Класс StandardMBean

Все реализованные интерфейсы:
DynamicMBean, MBeanRegistration
Прямые известные подклассы:
StandardEmitterMBean
public class StandardMBean
extends Object
implements DynamicMBean, MBeanRegistration

MBean, чьи методы управления определяются с помощью рефлексии над Java-интерфейсом.

Этот класс добавляет больше гибкости в понятие интерфейса управления при использовании Standard MBean. Прямое использование шаблонов для Standard MBean, описанных в спецификации JMX, означает, что существует фиксированная связь между реализующим классом MBean и его интерфейсом управления (т.е., если реализующий класс — Thing, то интерфейс управления должен быть ThingMBean). Этот класс позволяет сохранить удобство указания интерфейса управления с помощью Java-интерфейса, без необходимости соблюдения каких-либо правил именования между реализующим и интерфейсным классами.

Превращая MBean в DynamicMBean, этот класс позволяет выбрать любой интерфейс, реализованный MBean, в качестве его интерфейса управления, при условии соблюдения шаблонов JMX (т.е., атрибуты определены с помощью методов get/set и т. д.).

Этот класс также предоставляет крючки, позволяющие указывать пользовательские описания и имена для MBeanInfo, возвращаемых интерфейсом DynamicMBean.

Используя этот класс, MBean можно создать с любым реализующим классом Impl и с интерфейсом управления, определённым (как для текущих Standard MBean) любым интерфейсом Intf, одним из двух основных способов:

  • Используя публичный конструктор StandardMBean(impl,interface):
    MBeanServer mbs;
         ...
         Impl impl = new Impl(...);
         StandardMBean mbean = new StandardMBean(impl, Intf.class, false);
         mbs.registerMBean(mbean, objectName);
  • Наследование от 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);

В любом случае, класс Impl должен реализовывать интерфейс Intf.

Конечно, Standard MBeans, основанные на взаимосвязи имён между реализующим и интерфейсным классами, по-прежнему доступны.

Этот класс также может быть использован для создания MXBean. Использование точно такое же, как для Standard MBean, за исключением того, что в примерах выше, параметр false конструктора или вызова super(...) заменяется на true.

С:
1.5

Конструкторы

Модификатор Конструктор Описание
protected StandardMBean​(Class<?> mbeanInterface)

Преобразует this в DynamicMBean, используя указанный класс mbeanInterface.

protected StandardMBean​(Class<?> mbeanInterface, boolean isMXBean)

Преобразует this в DynamicMBean, используя указанный класс mbeanInterface и выбирая, будет ли результирующий MBean MXBean.

StandardMBean​(T implementation, Class<T> mbeanInterface)

Преобразует объект implementation в DynamicMBean, используя указанный класс mbeanInterface.

StandardMBean​(T implementation, Class<T> mbeanInterface, boolean isMXBean)

Преобразует объект implementation в DynamicMBean, используя указанный класс mbeanInterface и выбирая, будет ли результирующий MBean MXBean.

Методы

Модификатор и тип Метод Описание
protected void cacheMBeanInfo​(MBeanInfo info)

Крючок кастомизации: кэширует MBeanInfo, созданный для этого объекта.

protected MBeanInfo getCachedMBeanInfo()

Крючок кастомизации: Возвращает кэшированную MBeanInfo для этого объекта.

protected String getClassName​(MBeanInfo info)

Крючок кастомизации: Получить имя класса, которое будет использоваться в MBeanInfo, возвращаемом этим MBean.

protected MBeanConstructorInfo[] getConstructors​(MBeanConstructorInfo[] ctors, Object impl)

Крючок кастомизации: Получить MBeanConstructorInfo[], которые будут использоваться в MBeanInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanAttributeInfo info)

Крючок кастомизации: Получить описание, которое будет использоваться в MBeanAttributeInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanConstructorInfo info)

Крючок кастомизации: Получить описание, которое будет использоваться в MBeanConstructorInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)

Крючок кастомизации: Получить описание, которое будет использоваться для sequence MBeanParameterInfo в MBeanConstructorInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanFeatureInfo info)

Крючок кастомизации: Получить описание, которое будет использоваться в MBeanFeatureInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanInfo info)

Крючок кастомизации: Получить описание, которое будет использоваться в MBeanInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanOperationInfo info)

Крючок кастомизации: Получить описание, которое будет использоваться в MBeanOperationInfo, возвращаемом этим MBean.

protected String getDescription​(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)

Крючок кастомизации: Получить описание, которое будет использоваться для sequence MBeanParameterInfo в MBeanOperationInfo, возвращаемом этим MBean.

protected int getImpact​(MBeanOperationInfo info)

Крючок кастомизации: Получить флаг impact операции, который будет использоваться в MBeanOperationInfo, возвращаемом этим MBean.

Object getImplementation()

Получить реализацию этого Standard MBean (или MXBean).

Class<?> getImplementationClass()

Получить класс реализации этого Standard MBean (или MXBean).

MBeanInfo getMBeanInfo()

Получить MBeanInfo для данного MBean.

Class<?> getMBeanInterface()

Получить интерфейс управления данного Standard MBean (или MXBean).

protected String getParameterName​(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)

Крючок кастомизации: Получить имя, которое будет использоваться для sequence MBeanParameterInfo в MBeanConstructorInfo, возвращаемом этим MBean.

protected String getParameterName​(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)

Крючок кастомизации: Получить имя, которое будет использоваться для sequence MBeanParameterInfo в MBeanOperationInfo, возвращаемом этим MBean.

void postDeregister()

Позволяет MBean выполнить все необходимые операции после того, как он был дерегистрирован в сервере MBean.

void postRegister​(Boolean registrationDone)

Позволяет MBean выполнить все необходимые операции после того, как он был зарегистрирован в сервере MBean или после того, как регистрация завершилась неудачей.

void preDeregister()

Позволяет MBean выполнить все необходимые операции перед дерегистрацией в сервере MBean.

ObjectName preRegister​(MBeanServer server, ObjectName name)

Позволяет MBean выполнить все необходимые операции перед регистрацией в сервере MBean.

void setImplementation​(Object implementation)

Заменить объект реализации, обернутый в этом объекте.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе javax.management.DynamicMBean

getAttribute, getAttributes, invoke, setAttribute, setAttributes

Конструкторы

StandardMBean

public StandardMBean(T implementation,
                     Class<T> mbeanInterface)
              throws NotCompliantMBeanException

Создать DynamicMBean из объекта implementation, используя указанный класс mbeanInterface.

Параметры типа:
T - Позволяет компилятору проверить, что implementation действительно реализует класс, описанный в mbeanInterface. Компилятор может проверить это только если mbeanInterface является литералом класса, например MyMBean.class.
Параметры:
implementation - Реализация данного MBean.
mbeanInterface - Менеджмент-интерфейс, экспортируемый реализацией данного MBean. Если null, этот объект будет использовать стандартную схему проектирования JMX для определения менеджмент-интерфейса, связанного с данной реализацией.
Исключения:
IllegalArgumentException - если заданный implementation равен null.
NotCompliantMBeanException - если mbeanInterface не соответствует шаблонам проектирования JMX для менеджмент-интерфейсов или если заданный implementation не реализует указанный интерфейс.

StandardMBean

protected StandardMBean(Class<?> mbeanInterface)
                 throws NotCompliantMBeanException

Создать DynamicMBean из this, используя указанный класс mbeanInterface.

Вызывает this(this,mbeanInterface). Этот конструктор предназначен для подклассов.

Параметры:
mbeanInterface - Менеджмент-интерфейс, экспортируемый данным MBean.
Исключения:
NotCompliantMBeanException - если mbeanInterface не соответствует шаблонам проектирования JMX для менеджмент-интерфейсов или если this не реализует указанный интерфейс.

StandardMBean

public StandardMBean(T implementation,
                     Class<T> mbeanInterface,
                     boolean isMXBean)

Создать DynamicMBean из объекта implementation, используя указанный класс mbeanInterface и выбор, является ли результирующий MBean объектом MXBean. Этот конструктор можно использовать для создания как Standard MBean, так и MXBean. В отличие от конструктора StandardMBean(Object, Class), он не выбрасывает NotCompliantMBeanException.

Параметры типа:
T - Позволяет компилятору проверить, что implementation действительно реализует класс, описанный в mbeanInterface. Компилятор может проверить это только если mbeanInterface является литералом класса, например MyMBean.class.
Параметры:
implementation - Реализация данного MBean.
mbeanInterface - Менеджмент-интерфейс, экспортируемый реализацией данного MBean. Если null, этот объект будет использовать стандартную схему проектирования JMX для определения менеджмент-интерфейса, связанного с данной реализацией.
isMXBean - Если true, mbeanInterface параметр обозначает интерфейс MXBean, и результирующий MBean является MXBean.
Исключения:
IllegalArgumentException - если заданный implementation равен null, или если mbeanInterface не соответствует шаблонам проектирования JMX для менеджмент-интерфейсов, или если заданный implementation не реализует указанный интерфейс.
С:
1.6

StandardMBean

protected StandardMBean(Class<?> mbeanInterface,
                        boolean isMXBean)

Создать DynamicMBean из this, используя указанный класс mbeanInterface и выбор, является ли результирующий MBean объектом MXBean. Этот конструктор можно использовать для создания как Standard MBean, так и MXBean. В отличие от конструктора StandardMBean(Object, Class), он не выбрасывает NotCompliantMBeanException.

Вызывает this(this, mbeanInterface, isMXBean). Этот конструктор предназначен для подклассов.

Параметры:
mbeanInterface - Менеджмент-интерфейс, экспортируемый данным MBean.
isMXBean - Если true, mbeanInterface параметр обозначает интерфейс MXBean, и результирующий MBean является MXBean.
Исключения:
IllegalArgumentException - если mbeanInterface не соответствует шаблонам проектирования JMX для менеджмент-интерфейсов или если this не реализует указанный интерфейс.
С:
1.6

Методы

setImplementation

public void setImplementation(Object implementation)
                       throws NotCompliantMBeanException

Замените объект реализации, обернутый в этом объекте.

Параметры:
implementation - Новая реализация этого стандартного MBean (или MXBean). Объект implementation должен реализовывать интерфейс стандартного MBean (или MXBean), который был предоставлен при создании этого StandardMBean.
Исключение:
IllegalArgumentException - если заданный implementation равен null.
NotCompliantMBeanException - если заданный implementation не реализует интерфейс стандартного MBean (или MXBean), предоставленный при создании.
См. также:
getImplementation()

getImplementation

public Object getImplementation()

Получить реализацию этого стандартного MBean (или MXBean).

Возвращает:
Реализация этого стандартного MBean (или MXBean).
См. также:
setImplementation(java.lang.Object)

getMBeanInterface

public final Class<?> getMBeanInterface()

Получить интерфейс управления этим стандартным MBean (или MXBean).

Возвращает:
Интерфейс управления этим стандартным MBean (или MXBean).

getImplementationClass

public Class<?> getImplementationClass()

Получить класс реализации этого стандартного MBean (или MXBean).

Возвращает:
Класс реализации этого стандартного MBean (или MXBean).

getMBeanInfo

public MBeanInfo getMBeanInfo()

Получить MBeanInfo для этого MBean.

Этот метод реализует DynamicMBean.getMBeanInfo().

Этот метод сначала вызывает getCachedMBeanInfo() для получения кэшированного MBeanInfo для этого MBean, если таковой имеется. Если MBeanInfo, возвращаемый getCachedMBeanInfo(), не равен null, то он возвращается.
В противном случае этот метод создаёт MBeanInfo по умолчанию для этого MBean, используя интерфейс управления, указанный для этого MBean.

При построении MBeanInfo этот метод вызывает методы настройки, которые позволяют подклассам предоставлять свои пользовательские описания, имена параметров и т.д...
Наконец, он вызывает cacheMBeanInfo() для кэширования нового MBeanInfo.

Определено в:
getMBeanInfo в интерфейсе DynamicMBean
Возвращает:
Кэшированный MBeanInfo для этого MBean, если он не равен null, или новый MBeanInfo, если кэшированный отсутствует.

getClassName

protected String getClassName(MBeanInfo info)

Метод-хук настройки: получить имя класса, которое будет использоваться в MBeanInfo, возвращаемом этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское имя класса. По умолчанию метод возвращает info.getClassName().

Параметры:
info - MBeanInfo по умолчанию, полученный путем рефлексии.
Возвращает:
имя класса для нового MBeanInfo.

getDescription

protected String getDescription(MBeanInfo info)

Метод-хук настройки: получить описание, которое будет использоваться в MBeanInfo, возвращаемом этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание MBean. По умолчанию метод возвращает info.getDescription().

Параметры:
info - MBeanInfo по умолчанию, полученный путем рефлексии.
Возвращает:
описание для нового MBeanInfo.

getDescription

protected String getDescription(MBeanFeatureInfo info)

Метод-хук настройки: получить описание, которое будет использоваться в MBeanFeatureInfo, возвращаемом этим MBean.

Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает info.getDescription().

Этот метод вызывается методами getDescription(MBeanAttributeInfo), getDescription(MBeanOperationInfo), getDescription(MBeanConstructorInfo).

Параметры:
info - MBeanFeatureInfo по умолчанию, полученный путем рефлексии.
Возвращает:
описание для данного MBeanFeatureInfo.

getDescription

protected String getDescription(MBeanAttributeInfo info)

Метод-хук настройки: получить описание, которое будет использоваться в MBeanAttributeInfo, возвращаемом этим MBean.

Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает getDescription((MBeanFeatureInfo) info).

Параметры:
info - MBeanAttributeInfo по умолчанию, полученный путем рефлексии.
Возвращает:
описание для данного MBeanAttributeInfo.

getDescription

protected String getDescription(MBeanConstructorInfo info)

Метод-хук настройки: получить описание, которое будет использоваться в MBeanConstructorInfo, возвращаемом этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает getDescription((MBeanFeatureInfo) info).

Параметры:
info - MBeanConstructorInfo по умолчанию, полученный путем рефлексии.
Возвращает:
описание для данного MBeanConstructorInfo.

getDescription

protected String getDescription(MBeanConstructorInfo ctor,
                                MBeanParameterInfo param,
                                int sequence)

Метод-хук настройки: получить описание, которое будет использоваться для MBeanParameterInfo sequence MBeanConstructorInfo, возвращаемого этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает param.getDescription().

Параметры:
ctor - MBeanConstructorInfo по умолчанию, полученный путем рефлексии.
param - MBeanParameterInfo по умолчанию, полученный путем рефлексии.
sequence - Номер последовательности рассматриваемого параметра ("0" для первого параметра, "1" для второго и т.д.).
Возвращает:
описание для данного MBeanParameterInfo.

getParameterName

protected String getParameterName(MBeanConstructorInfo ctor,
                                  MBeanParameterInfo param,
                                  int sequence)

Метод-хук настройки: получить имя, которое будет использоваться для sequence MBeanParameterInfo MBeanConstructorInfo, возвращаемого этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское имя параметра. По умолчанию метод возвращает param.getName().

Параметры:
ctor - MBeanConstructorInfo по умолчанию, полученный путем рефлексии.
param - MBeanParameterInfo по умолчанию, полученный путем рефлексии.
sequence - Номер последовательности рассматриваемого параметра ("0" для первого параметра, "1" для второго и т.д.).
Возвращает:
имя для данного MBeanParameterInfo.

getDescription

protected String getDescription(MBeanOperationInfo info)

Метод-хук настройки: получить описание, которое будет использоваться в MBeanOperationInfo, возвращаемом этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает getDescription((MBeanFeatureInfo) info).

Параметры:
info - MBeanOperationInfo по умолчанию, полученный путем рефлексии.
Возвращает:
описание для данного MBeanOperationInfo.

getImpact

protected int getImpact(MBeanOperationInfo info)

Метод-хук настройки: получить флаг impact операции, который будет использоваться в MBeanOperationInfo, возвращаемом этим MBean.
Подклассы могут переопределить этот метод, чтобы указать свой пользовательский флаг воздействия. По умолчанию метод возвращает info.getImpact().

Параметры:
info - MBeanOperationInfo по умолчанию, полученный путем рефлексии.
Возвращает:
флаг воздействия для данного MBeanOperationInfo.

getParameterName

protected String getParameterName(MBeanOperationInfo op,
                                  MBeanParameterInfo param,
                                  int sequence)

Метод-хук настройки: получить имя, которое будет использоваться для sequence MBeanParameterInfo MBeanOperationInfo, возвращаемого этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское имя параметра. По умолчанию метод возвращает param.getName().

Параметры:
op - MBeanOperationInfo по умолчанию, полученный путем рефлексии.
param - MBeanParameterInfo по умолчанию, полученный путем рефлексии.
sequence - Номер последовательности рассматриваемого параметра ("0" для первого параметра, "1" для второго и т.д.).
Возвращает:
имя для данного MBeanParameterInfo.

getDescription

protected String getDescription(MBeanOperationInfo op,
                                MBeanParameterInfo param,
                                int sequence)

Метод-хук настройки: получить описание, которое будет использоваться для sequence MBeanParameterInfo MBeanOperationInfo, возвращаемого этим MBean.
Подклассы могут переопределить этот метод, чтобы указать своё пользовательское описание. По умолчанию метод возвращает param.getDescription().

Параметры:
op - MBeanOperationInfo по умолчанию, полученный путем рефлексии.
param - MBeanParameterInfo по умолчанию, полученный путем рефлексии.
sequence - Номер последовательности рассматриваемого параметра ("0" для первого параметра, "1" для второго и т.д.).
Возвращает:
описание для данного MBeanParameterInfo.

getConstructors

protected MBeanConstructorInfo[] getConstructors(MBeanConstructorInfo[] ctors,
                                                 Object impl)

Обработчик пользовательской настройки: Получение массива MBeanConstructorInfo[], который будет использован в MBeanInfo, возвращаемом этим MBean.
По умолчанию этот метод возвращает null, если обернутая реализация не this. Действительно, если обернутая реализация не сам этот объект, то будет невозможно воссоздать обернутую реализацию, вызвав конструкторы реализации через MBeanServer.createMBean(...).
В противном случае, если обернутая реализация равна this, возвращается ctors.
Подклассы могут переопределить этот метод, чтобы изменить это поведение, если необходимо.

Параметры:
ctors - Значение MBeanConstructorInfo[] по умолчанию, полученное по отражению.
impl - Обёрнутая реализация. Если null передано, обернутая реализация игнорируется, и возвращается ctors.
Возвращает:
массив MBeanConstructorInfo[] для нового MBeanInfo.

getCachedMBeanInfo

protected MBeanInfo getCachedMBeanInfo()

Обработчик пользовательской настройки: Возвращает MBeanInfo, кэшированный для этого объекта.

Подклассы могут переопределить этот метод, чтобы реализовать свою собственную политику кэширования. По умолчанию реализация хранит один объект MBeanInfo на каждый экземпляр.

Возвращает:
Кэшированный MBeanInfo или null, если MBeanInfo не кэширован.
См. также:
cacheMBeanInfo(MBeanInfo)

cacheMBeanInfo

protected void cacheMBeanInfo(MBeanInfo info)

Обработчик пользовательской настройки: кэширует MBeanInfo, построенный для этого объекта.

Подклассы могут переопределить этот метод, чтобы реализовать свою собственную политику кэширования. По умолчанию реализация хранит info в этом экземпляре. Подкласс может определить другие политики, например, не сохранять info (так что он воссоздаётся каждый раз, когда вызывается getMBeanInfo()) или использовать единственный объект MBeanInfo, когда несколько экземпляров StandardMBean имеют одинаковые значения MBeanInfo.

Параметры:
info - новый MBeanInfo для кэширования. Любое ранее кэшированное значение удаляется. Этот параметр может быть null, в этом случае нет нового кэшированного значения.

preRegister

public ObjectName preRegister(MBeanServer server,
                              ObjectName name)
                       throws Exception

Позволяет MBean выполнять любые операции, необходимые перед регистрацией в сервере MBean. Если имя MBean не указано, MBean может предоставить имя для его регистрации. Если возникает какое-либо исключение, MBean не будет зарегистрирован в сервере MBean.

Реализация этого метода по умолчанию возвращает параметр name. Для стандартных MBean ничего более не выполняется. Для MXBeans записываются параметры MBeanServer и ObjectName, чтобы их можно было использовать для перевода ссылок между MXBean.

Для подкласса, переопределяющего этот метод, хорошей практикой является вызов переопределённого метода через super.preRegister(...). Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в других MXBeans.

Задано:
preRegister в интерфейсе MBeanRegistration
Параметры:
server - Сервер MBean, в котором будет зарегистрирован MBean.
name - Имя объекта MBean. Это имя null, если параметр name одного из методов createMBean или registerMBean в интерфейсе MBeanServer равен null. В этом случае этот метод должен вернуть непустое имя ObjectName для нового MBean.
Возвращает:
Имя, под которым MBean должен быть зарегистрирован. Это значение не должно быть null. Если параметр name не равен null, он обычно, но не обязательно, будет возвращаемым значением.
Исключения:
IllegalArgumentException - если это MXBean и name равно null.
InstanceAlreadyExistsException - если этот MXBean уже зарегистрирован под другим именем (в этом сервере MBean или другом).
Exception - другие проверенные исключения не выбрасываются этим методом, но Exception объявлен, чтобы подклассы могли переопределить метод и выбросить свои собственные исключения.
С:
1.6

postRegister

public void postRegister(Boolean registrationDone)

Позволяет MBean выполнять любые операции после регистрации в сервере MBean или после неудачной регистрации.

Реализация этого метода по умолчанию ничего не делает для стандартных MBean. Для MXBeans он отменяет любую работу, проделанную методом preRegister, если регистрация не удалась.

Для подкласса, переопределяющего этот метод, хорошей практикой является вызов переопределённого метода через super.postRegister(...). Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в других MXBeans.

Задано:
postRegister в интерфейсе MBeanRegistration
Параметры:
registrationDone - Указывает, была ли MBean успешно зарегистрирована в сервере MBean. Значение false означает, что этап регистрации не удался.
С:
1.6

preDeregister

public void preDeregister()
                   throws Exception

Позволяет MBean выполнить любые операции, необходимые перед удалением из сервера MBean.

Реализация этого метода по умолчанию ничего не делает.

Для подкласса, переопределяющего этот метод, хорошей практикой является вызов переопределённого метода через super.preDeregister(...).

Задано:
preDeregister в интерфейсе MBeanRegistration
Исключения:
Exception - не проверяемые исключения не выбрасываются этим методом, но Exception объявлен, чтобы подклассы могли переопределить этот метод и выбросить свои собственные исключения.
С:
1.6

postDeregister

public void postDeregister()

Позволяет MBean выполнить любые операции, необходимые после удаления из сервера MBean.

Реализация этого метода по умолчанию ничего не делает для стандартных MBean. Для MXBeans он удаляет любую информацию, записанную методом preRegister.

Для подкласса, переопределяющего этот метод, хорошей практикой является вызов переопределённого метода через super.postRegister(...). Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в других MXBeans.

Задано:
postDeregister в интерфейсе MBeanRegistration
С:
1.6

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/StandardMBean.html

Spec-Zone .ru
спецификации, руководства, описания, API