X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fconfig%2Fconfig-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Futil%2FConfigRegistryJMXClient.java;h=71adea8a2f1198dbc0ee7669795a3af4bed463c3;hp=099d010642ee510052a43ade62b77e2e20f2a884;hb=f336ffef3aaf674ba23133cb5c5201105e5d8637;hpb=d70f418d19fa09b1efc8fa4ce4ed35f0cf59b73b diff --git a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigRegistryJMXClient.java b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigRegistryJMXClient.java index 099d010642..71adea8a2f 100644 --- a/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigRegistryJMXClient.java +++ b/opendaylight/config/config-util/src/main/java/org/opendaylight/controller/config/util/ConfigRegistryJMXClient.java @@ -26,6 +26,7 @@ import org.opendaylight.controller.config.api.jmx.CommitStatus; 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; @@ -33,17 +34,24 @@ public class ConfigRegistryJMXClient implements ConfigRegistryClient { 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 searchResult = configMBeanServer.queryMBeans( - configRegistryON, null); - if (!(searchResult.size() == 1)) { + this.configRegistryON = configRegistryON; + Set 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(); @@ -79,7 +87,7 @@ public class ConfigRegistryJMXClient implements ConfigRegistryClient { 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(); } @@ -211,7 +219,7 @@ public class ConfigRegistryJMXClient implements ConfigRegistryClient { } catch (AttributeNotFoundException | InstanceNotFoundException | MBeanException | ReflectionException e) { throw new RuntimeException("Unable to get attribute " - + attributeName + " for " + on, e); + + attributeName + " for " + on + ". Available beans: " + lookupConfigBeans(), e); } }