2013-02-12 2 views
0

Можно динамически добавлять и зарегистрировать новые атрибуты MBeanКак динамически добавлять и зарегистрировать новые атрибуты MBean

например:

<server> 

<mbean code="org.jboss.example.MyMbean" name="jboss:service=myMbean,name=MyMbeanExample"> 

<attribute name="attribute1">value1</attribute> 

<attribute name="attribute2">value2</attribute> 

<attribute name="attribute3">value3</attribute> 

<attribute name="attribute4">value5</attribute> 

<attribute name="attribute5">value5</attribute>... 

</mbean> 
</server> 

Новый атрибут добавлен в JBoss-service.xml должно быть зарегистрирован в MyMbean динамически с внесением любого изменения кода в Mbean, можно ли это сделать?

Спасибо заранее.

ответ

0

Трудно ответить на ваш вопрос, не видя кода вашего DynamicMBean, но я подозреваю, что ответ на ваш вопрос, при условии, что изменений в MBean нет, нет. Тем не менее, здесь общий подход (принимая некоторые либеральные предположения о вашем коде):

  • DynamicMBean, как это обычно имеет какую-то карту, индивидуальный ключ от имени атрибута, а и содержит либо значение атрибута (легко), или значение объекта, содержащий некоторые или все из следующих предназначены для приобретения/установить значение атрибута:
    • объект целевого вызова,
    • method
    • массив аргументов метода
  • Когда запрашивается MBeanInfo MBean, прилагаемые MBeanAttributeInfo s должны ссылаться на ключи на этой карте (а также тип данных, изменчивость и т. Д.). Вы можете генерировать их «на лету» каждый раз, когда запрашивается MBeanInfo, или сохранить обновленную коллекцию MBeanAttributeInfo, которая обновляется всякий раз, когда вы добавляете новый атрибут.
  • Методы setAttribute и setAttributes должны создать новый атрибут (путем вставки нового ключа и значения в карту атрибутов), если набор ссылается на атрибут, который еще не существует.

Поскольку вы используете JBoss, если вы чувствуете, что можете реализовать что-то подобное, рассмотрите возможность расширения JBoss ServiceDynamicMBeanSupport. Это делает некоторые, но не все, ножки для вас.

Смежные вопросы