0

I've been not able to use depends-list to know during runtime how many MBeans does the system administrator has defined for an specific topic.

My definition of the bean:

<mbean code="MyBean" 
      name="x:service=MyBean" xmbean-dd="">
    <xmbean>
    <class>x.MyBean</class>

    <depends-list optional-attribute-name="DynamicListBeans">
        <depends-list-element>y:service=DynamicBean,name=A</depends-list-element>
        <depends-list-element>y:service=DynamicBean,name=B</depends-list-element>
    </depends-list>
    <operation>
        <description>Refreshes dynamic beans that could be edited by the end user.
        </description>
        <name>refreshConfigurationFromJmxLists</name>
    </operation>
    </xmbean>
</mbean>

My class:

public class MyBean implements MyBeanMXBean {

private List<ObjectName> dynamicListBeans;

@Override
public List<ObjectName> getDynamicListBeans() {
    return dynamicListBeans;
}

@Override
public void setDynamicListBeans(List<ObjectName> dynamicListBeans) {
    this.dynamicListBeans = dynamicListBeans;
}

public void refreshConfigurationFromJmxLists() {
    System.out.println(dynamicListBeans.size());
}

}

MyBeanMXBean is defining both, getter and setter for dynamicListBeans, and the operation refreshConfigurationFromJmxLists.

During execution, refreshConfigurationFromJmxLists is pringing a size of zero for the list, so JBoss didn't set the names name=A and name=B

Does anybody know if there is anything I'm misunderstanding or missing?

Help or clues will be highly appreciated, kind regards.

1 Answers1

0

Current workaround is using a naming pattern and querying like next:

"y:service=DynamicBean,name=*"

Code example:

ObjectName objectName;
try {
    objectName = new ObjectName("y:service=DynamicBean,name=*");
} catch (MalformedObjectNameException e) {
    throw new IllegalArgumentException(e);
} catch (NullPointerException e) {
    throw new IllegalArgumentException(e);
}

Set<ObjectName> names = jmxProvider.queryNames(objectName,null);

Though it's not clear to me the use of depends-list, so the question is still open.