import org.opendaylight.controller.config.api.jmx.ConfigRegistryMXBean;
import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
import org.opendaylight.controller.config.api.jmx.ServiceReferenceMXBean;
+import org.opendaylight.controller.config.api.jmx.constants.ConfigRegistryConstants;
public class ConfigRegistryJMXClient implements ConfigRegistryClient {
private final ConfigRegistryMXBean configRegistryMXBeanProxy;
private final MBeanServer configMBeanServer;
public ConfigRegistryJMXClient(MBeanServer configMBeanServer) {
+ this(configMBeanServer, OBJECT_NAME);
+ }
+
+ private ConfigRegistryJMXClient(MBeanServer configMBeanServer, ObjectName configRegistryON) {
this.configMBeanServer = configMBeanServer;
- configRegistryON = OBJECT_NAME;
- Set<ObjectInstance> searchResult = configMBeanServer.queryMBeans(
- configRegistryON, null);
- if (!(searchResult.size() == 1)) {
+ this.configRegistryON = configRegistryON;
+ Set<ObjectInstance> searchResult = configMBeanServer.queryMBeans(configRegistryON, null);
+ if (searchResult.size() != 1) {
throw new IllegalStateException("Config registry not found");
}
configRegistryMXBeanProxy = JMX.newMXBeanProxy(configMBeanServer, configRegistryON, ConfigRegistryMXBean.class,
false);
}
+ public static ConfigRegistryJMXClient createWithoutNotifications(MBeanServer configMBeanServer) {
+ return new ConfigRegistryJMXClient(configMBeanServer, ConfigRegistryConstants.OBJECT_NAME_NO_NOTIFICATIONS);
+ }
+
@Override
public ConfigTransactionJMXClient createTransaction() {
ObjectName configTransactionControllerON = beginConfig();
static ObjectName translateServiceRefIfPossible(ObjectName on, Class<?> clazz, MBeanServer configMBeanServer) {
ObjectName onObj = on;
- if (ObjectNameUtil.isServiceReference(onObj) && clazz.equals(ServiceReferenceMXBean.class) == false) {
+ if (ObjectNameUtil.isServiceReference(onObj) && !clazz.equals(ServiceReferenceMXBean.class)) {
ServiceReferenceMXBean proxy = JMX.newMXBeanProxy(configMBeanServer, onObj, ServiceReferenceMXBean.class);
onObj = proxy.getCurrentImplementation();
}
} catch (AttributeNotFoundException | InstanceNotFoundException
| MBeanException | ReflectionException e) {
throw new RuntimeException("Unable to get attribute "
- + attributeName + " for " + on, e);
+ + attributeName + " for " + on + ". Available beans: " + lookupConfigBeans(), e);
}
}