Spec-Zone .ru
спецификации, руководства, описания, API
|
public class StandardMBean extends Object implements DynamicMBean, MBeanRegistration
MBean, интерфейс управления которого определяется отражением об интерфейсе Java.
Этот класс приносит больше гибкости к понятию Интерфейса управления в использовании Стандартного MBeans. Прямое использование образцов для Стандартного MBeans, описанного в Спецификации JMX, означает, что есть фиксированное отношение между классом реализации MBean и его интерфейсом управления (то есть, если классом реализации является Вещь, интерфейсом управления должен быть ThingMBean). Этот класс позволяет сохранить удобство определения интерфейса управления с интерфейсом Java, не требуя что там быть любым отношением именования между реализацией и интерфейсными классами.
Делая DynamicMBean из MBean, этот класс позволяет выбрать любой интерфейс, реализованный MBean как его интерфейс управления, при условии, что это выполняет образцы JMX (то есть, атрибуты, определенные методом get/методом set и т.д...).
Этот класс также обеспечивает рычаги, которые позволяют предоставить пользовательские описания и имена для MBeanInfo
возвращенный интерфейсом DynamicMBean.
Используя этот класс, MBean может быть создан с любым именем класса реализации Impl и с определенным интерфейсом управления (что касается текущего Стандартного MBeans) любым интерфейсным Intf одним из двух общих способов:
StandardMBean(impl,interface)
: MBeanServer mbs; ... Impl impl = new Impl(...); StandardMBean mbean = new StandardMBean(impl, Intf.class, false); mbs.registerMBean(mbean, objectName);
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.
Стандартные MBeans, основанные на отношении именования между реализацией и интерфейсными классами, конечно, все еще доступны.
Этот класс может также использоваться, чтобы создать MXBeans. Использование является точно тем же самым что касается Стандартного MBeans за исключением того, что в примерах выше, false
параметр конструктору или super(...)
вызов вместо этого true
.
Модификатор | Конструктор и Описание |
---|---|
protected |
StandardMBean(Class<?> mbeanInterface)
Сделайте DynamicMBean из this, используя указанный класс mbeanInterface.
|
protected |
StandardMBean(Class<?> mbeanInterface, boolean isMXBean)
Сделайте DynamicMBean из this, используя указанный класс mbeanInterface, и выбирая, является ли получающийся MBean MXBean.
|
|
StandardMBean(T implementation, Class<T> mbeanInterface)
Сделайте DynamicMBean из объектного implementation, используя указанный класс mbeanInterface.
|
|
StandardMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean)
Сделайте DynamicMBean из объектного implementation, используя указанный класс mbeanInterface, и выбирая, является ли результирующий MBean MXBean.
|
Модификатор и Тип | Метод и Описание |
---|---|
protected void |
cacheMBeanInfo(MBeanInfo info)
Рычаг настройки: кэшируйте MBeanInfo, созданный для этого объекта.
|
Объект |
getAttribute(String attribute)
Получите значение определенного атрибута Динамического MBean.
|
AttributeList |
getAttributes(String[] attributes)
Получите значения нескольких атрибутов Динамического MBean.
|
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.
|
Объект |
getImplementation()
Получите реализацию этого Стандартного MBean (или MXBean).
|
Class<?> |
getImplementationClass()
Получите класс реализации этого Стандартного MBean (или MXBean).
|
MBeanInfo |
getMBeanInfo()
Доберитесь
MBeanInfo для этого MBean. |
Class<?> |
getMBeanInterface()
Получите Интерфейс управления этого Стандартного 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.
|
Объект |
invoke(String actionName, Object[] params, String[] signature)
Позволяет действию быть вызванным на Динамический MBean.
|
void |
postDeregister()
Позволяет MBean выполнять любые операции, необходимые будучи незарегистрированным в сервере MBean.
|
void |
postRegister(Boolean registrationDone)
Позволяет MBean выполнять любые операции, необходимые, будучи зарегистрированным в сервере MBean или после того, как регистрация перестала работать.
|
void |
preDeregister()
Позволяет MBean выполнять любые операции, в которых он нуждается перед стать незарегистрированным сервером MBean.
|
ObjectName |
preRegister(MBeanServer server, ObjectName name)
Позволяет MBean выполнять любые операции, в которых он нуждается прежде, чем быть зарегистрированным в сервере MBean.
|
void |
setAttribute(Attribute attribute)
Установите значение определенного атрибута Динамического MBean.
|
AttributeList |
setAttributes(AttributeList attributes)
Устанавливает значения нескольких атрибутов Динамического MBean.
|
void |
setImplementation(Object implementation)
Замените объект реализации, обернутый в этот объект.
|
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 является нулем.NotCompliantMBeanException
- если mbeanInterface не следует за шаблонами разработки JMX для Интерфейсов управления, или если данный implementation не реализует указанный интерфейс.protected StandardMBean(Class<?> mbeanInterface) throws NotCompliantMBeanException
Сделайте DynamicMBean из this, используя указанный класс mbeanInterface.
Вызовы this(this,mbeanInterface)
. Этот конструктор резервируется к подклассам.
mbeanInterface
- Интерфейс управления экспортируется этим MBean.NotCompliantMBeanException
- если mbeanInterface не следует за шаблонами разработки JMX для Интерфейсов управления, или если this не реализует указанный интерфейс.public StandardMBean(T implementation, Class<T> mbeanInterface, boolean isMXBean)
Сделайте DynamicMBean из объектного implementation, используя указанный класс mbeanInterface, и выбирая, является ли результирующий MBean MXBean. Этот конструктор может использоваться, чтобы сделать или Стандартный MBeans или MXBeans. В отличие от конструктора StandardMBean(Object, Class)
, это не бросает NotCompliantMBeanException.
T
- Позволяет компилятору проверять это implementation
действительно реализует класс, описанный mbeanInterface
. Компилятор может только проверить это если mbeanInterface
литерал класса такой как MyMBean.class
.implementation
- Реализация этого MBean.mbeanInterface
- Интерфейс управления экспортируется реализацией этого MBEAN. Если null
, тогда этот объект будет использовать стандартный шаблон разработки JMX, чтобы определить интерфейс управления, связанный с данной реализацией.isMXBean
- Если это правда, mbeanInterface
названия параметра интерфейс MXBean и результирующий MBean являются MXBean.IllegalArgumentException
- если данный implementation является нулем, или если mbeanInterface не следует за шаблонами разработки JMX для Интерфейсов управления, или если данный implementation не реализует указанный интерфейс.protected StandardMBean(Class<?> mbeanInterface, boolean isMXBean)
Сделайте DynamicMBean из this, используя указанный класс mbeanInterface, и выбирая, является ли получающийся MBean MXBean. Этот конструктор может использоваться, чтобы сделать или Стандартный MBeans или MXBeans. В отличие от конструктора StandardMBean(Object, Class)
, это не бросает NotCompliantMBeanException.
Вызовы this(this, mbeanInterface, isMXBean)
. Этот конструктор резервируется к подклассам.
mbeanInterface
- Интерфейс управления экспортируется этим MBean.isMXBean
- Если это правда, mbeanInterface
названия параметра интерфейс MXBean и результирующий MBean являются MXBean.IllegalArgumentException
- если mbeanInterface не следует за шаблонами разработки JMX для Интерфейсов управления, или если this не реализует указанный интерфейс.public void setImplementation(Object implementation) throws NotCompliantMBeanException
Замените объект реализации, обернутый в этот объект.
implementation
- Новая реализация этого Стандартного MBean (или MXBean). implementation
объект должен реализовать Стандартный MBean (или MXBean) интерфейс, который был предоставлен когда это StandardMBean
был создан.IllegalArgumentException
- если данный implementation является нулем.NotCompliantMBeanException
- если данный implementation не реализует Стандартный MBean (или MXBean) интерфейс, который был предоставлен в конструкции.getImplementation()
public Object getImplementation()
setImplementation(java.lang.Object)
public final Class<?> getMBeanInterface()
public Class<?> getImplementationClass()
public Object getAttribute(String attribute) throws AttributeNotFoundException, MBeanException, ReflectionException
DynamicMBean
getAttribute
в интерфейсе DynamicMBean
attribute
- Имя атрибута, который будет полученAttributeNotFoundException
MBeanException
- Обертки a java.lang.Exception
брошенный методом get MBEAN.ReflectionException
- Обертки a java.lang.Exception
брошенный, пытаясь вызвать метода get.DynamicMBean.setAttribute(javax.management.Attribute)
public void setAttribute(Attribute attribute) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException, ReflectionException
DynamicMBean
setAttribute
в интерфейсе DynamicMBean
attribute
- Идентификация атрибута, который будет установлен и значение, это должно быть установлено в.AttributeNotFoundException
InvalidAttributeValueException
MBeanException
- Обертки a java.lang.Exception
брошенный методом set MBEAN.ReflectionException
- Обертки a java.lang.Exception
брошенный, пытаясь вызвать метод set MBEAN.DynamicMBean.getAttribute(java.lang.String)
public AttributeList getAttributes(String[] attributes)
DynamicMBean
getAttributes
в интерфейсе DynamicMBean
attributes
- Список атрибутов, которые будут получены.DynamicMBean.setAttributes(javax.management.AttributeList)
public AttributeList setAttributes(AttributeList attributes)
DynamicMBean
setAttributes
в интерфейсе DynamicMBean
attributes
- Список атрибутов: идентификация атрибутов, которые будут установлены и значения, они должны быть установлены в.DynamicMBean.getAttributes(java.lang.String[])
public Object invoke(String actionName, Object[] params, String[] signature) throws MBeanException, ReflectionException
DynamicMBean
invoke
в интерфейсе DynamicMBean
actionName
- Имя действия, которое будет вызвано.params
- Массив, содержащий параметры, которые будут установлены, когда действие вызывается.signature
- Массив, содержащий подпись действия. Объекты класса будут загружены через тот же самый загрузчик класса как тот, используемый для того, чтобы загрузить MBean, на который вызывается действие.MBeanException
- Обертки a java.lang.Exception
брошенный вызванным методом MBEAN.ReflectionException
- Обертки a java.lang.Exception
брошенный, пытаясь вызвать методpublic MBeanInfo getMBeanInfo()
MBeanInfo
для этого MBean. Этот метод реализации DynamicMBean.getMBeanInfo()
.
Этот метод сначала вызывает getCachedMBeanInfo()
чтобы получить кэшируемый MBeanInfo для этого MBean, если любой. Если MBeanInfo, возвращенный getCachedMBeanInfo()
не нуль, тогда он возвращается.
Иначе, этот метод создает MBeanInfo по умолчанию для этого MBean, используя Интерфейс управления, определенный для этого MBean.
Создавая MBeanInfo, это вызовы метода рычаги настройки, которые позволяют подклассам предоставить их пользовательские описания, названия параметра, и т.д...
Наконец, это вызывает cacheMBeanInfo()
чтобы кэшировать новый MBeanInfo.
getMBeanInfo
в интерфейсе DynamicMBean
protected String getClassName(MBeanInfo info)
info.getClassName()
.info
- MBeanInfo по умолчанию произошел отражением.protected String getDescription(MBeanInfo info)
info.getDescription()
.info
- MBeanInfo по умолчанию произошел отражением.protected String getDescription(MBeanFeatureInfo info)
Рычаг настройки: Получите описание, которое будет использоваться в MBeanFeatureInfo, возвращенном этим MBean.
Подклассы могут пересмотреть этот метод, чтобы предоставить их пользовательское описание. Возвраты реализации по умолчанию info.getDescription()
.
Этим методом вызывают getDescription(MBeanAttributeInfo)
, getDescription(MBeanOperationInfo)
, getDescription(MBeanConstructorInfo)
.
info
- MBeanFeatureInfo по умолчанию произошел отражением.protected String getDescription(MBeanAttributeInfo info)
Подклассы могут пересмотреть этот метод, чтобы предоставить их пользовательское описание. Возвраты реализации по умолчанию getDescription((MBeanFeatureInfo) info)
.
info
- MBeanAttributeInfo по умолчанию произошел отражением.protected String getDescription(MBeanConstructorInfo info)
getDescription((MBeanFeatureInfo) info)
.info
- MBeanConstructorInfo по умолчанию произошел отражением.protected String getDescription(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)
param.getDescription()
.ctor
- MBeanConstructorInfo по умолчанию произошел отражением.param
- MBeanParameterInfo по умолчанию произошел отражением.sequence
- Порядковый номер параметра, который рассматривают ("0" для первого параметра, "1" для второго параметра, и т.д...).protected String getParameterName(MBeanConstructorInfo ctor, MBeanParameterInfo param, int sequence)
param.getName()
.ctor
- MBeanConstructorInfo по умолчанию произошел отражением.param
- MBeanParameterInfo по умолчанию произошел отражением.sequence
- Порядковый номер параметра, который рассматривают ("0" для первого параметра, "1" для второго параметра, и т.д...).protected String getDescription(MBeanOperationInfo info)
getDescription((MBeanFeatureInfo) info)
.info
- MBeanOperationInfo по умолчанию произошел отражением.protected int getImpact(MBeanOperationInfo info)
info.getImpact()
.info
- MBeanOperationInfo по умолчанию произошел отражением.protected String getParameterName(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)
param.getName()
.op
- MBeanOperationInfo по умолчанию произошел отражением.param
- MBeanParameterInfo по умолчанию произошел отражением.sequence
- Порядковый номер параметра, который рассматривают ("0" для первого параметра, "1" для второго параметра, и т.д...).protected String getDescription(MBeanOperationInfo op, MBeanParameterInfo param, int sequence)
param.getDescription()
.op
- MBeanOperationInfo по умолчанию произошел отражением.param
- MBeanParameterInfo по умолчанию произошел отражением.sequence
- Порядковый номер параметра, который рассматривают ("0" для первого параметра, "1" для второго параметра, и т.д...).protected MBeanConstructorInfo[] getConstructors(MBeanConstructorInfo[] ctors, Object impl)
null
если обернутой реализацией не является this. Действительно, если обернутая реализация не будет этим объектом непосредственно, то не будет возможно воссоздать обернутую реализацию, вызывая конструкторов реализации через MBeanServer.createMBean(...)
.ctors
- MBeanConstructorInfo по умолчанию [] полученный отражением.impl
- Обернутая реализация. Если null
передается, обернутая реализация игнорируется, и ctors возвращается.protected MBeanInfo getCachedMBeanInfo()
Подклассы могут пересмотреть этот метод, чтобы реализовать их собственную политику кэширования. Реализация по умолчанию хранит тот MBeanInfo
объект на экземпляр.
cacheMBeanInfo(MBeanInfo)
protected void cacheMBeanInfo(MBeanInfo info)
Подклассы могут пересмотреть этот метод, чтобы реализовать их собственную политику кэширования. Хранилища реализации по умолчанию info
в этом экземпляре. Подкласс может определить другие политики, такие как не сохранение info
(таким образом, это восстанавливается каждый раз getMBeanInfo()
вызывается), или совместное использование уникального MBeanInfo
возразите когда несколько StandardMBean
экземпляры имеют равный MBeanInfo
значения.
info
- новое MBeanInfo
кэшироваться. Любое ранее кэшируемое значение отбрасывается. Этот параметр может быть нулем, когда нет никакого нового кэшируемого значения.public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception
Позволяет MBean выполнять любые операции, в которых он нуждается прежде, чем быть зарегистрированным в сервере MBean. Если имя MBean не определяется, MBean может обеспечить имя для своей регистрации. Если какое-либо исключение будет повышено, то MBean не будет зарегистрирован в сервере MBean.
Реализация по умолчанию этого метода возвращается name
параметр. Это не делает ничего иного для Стандартного MBeans. Для MXBeans это записывает MBeanServer
и ObjectName
параметры, таким образом, они могут использоваться, чтобы преобразовать inter-MXBean ссылки.
Это - хорошая практика для подкласса, который переопределяет этот метод, чтобы вызвать переопределенный метод через super.preRegister(...)
. Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в другом MXBeans.
preRegister
в интерфейсе MBeanRegistration
server
- Сервер MBean, в котором будет зарегистрирован MBean.name
- Имя объекта MBean. Это имя является нулем если параметр имени к одному из createMBean
или registerMBean
методы в MBeanServer
интерфейс является нулем. В этом случае этот метод должен возвратить ненулевой ObjectName для нового MBean.name
параметр не является нулем, он обычно будет, но не обязательно быть возвращенным значением.IllegalArgumentException
- если это - MXBean и name
нуль.InstanceAlreadyExistsException
- если это - MXBean, и он был уже зарегистрирован под другим именем (в этом Сервере MBean или другом).Exception
- никакие другие проверенные исключения не выдаются этим методом, но Exception
объявляется так, чтобы подклассы могли переопределить метод и выдать их собственные исключения.public void postRegister(Boolean registrationDone)
Позволяет MBean выполнять любые операции, необходимые, будучи зарегистрированным в сервере MBean или после того, как регистрация перестала работать.
Реализация по умолчанию этого метода ничего не делает для Стандартного MBeans. Для MXBeans это отменяет любую работу, сделанную preRegister
если регистрация перестала работать.
Это - хорошая практика для подкласса, который переопределяет этот метод, чтобы вызвать переопределенный метод через super.postRegister(...)
. Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в другом MXBeans.
postRegister
в интерфейсе MBeanRegistration
registrationDone
- Указывает, был ли MBean успешно зарегистрирован в сервере MBean. Ложь значения означает, что регистрационная фаза перестала работать.public void preDeregister() throws Exception
Позволяет MBean выполнять любые операции, в которых он нуждается перед стать незарегистрированным сервером MBean.
Реализация по умолчанию этого метода ничего не делает.
Это - хорошая практика для подкласса, который переопределяет этот метод, чтобы вызвать переопределенный метод через super.preDeregister(...)
.
preDeregister
в интерфейсе MBeanRegistration
Exception
- никакие проверенные исключения не являются броском этим методом, но Exception
объявляется так, чтобы подклассы могли переопределить этот метод и выдать их собственные исключения.public void postDeregister()
Позволяет MBean выполнять любые операции, необходимые будучи незарегистрированным в сервере MBean.
Реализация по умолчанию этого метода ничего не делает для Стандартного MBeans. Для MXBeans это удаляет любую информацию, которая была записана preRegister
метод.
Это - хорошая практика для подкласса, который переопределяет этот метод, чтобы вызвать переопределенный метод через super.postRegister(...)
. Это необходимо, если этот объект является MXBean, на который ссылаются атрибуты или операции в другом MXBeans.
postDeregister
в интерфейсе MBeanRegistration
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.