*/
package org.opendaylight.controller.config.util;
-import org.opendaylight.controller.config.api.ConflictingVersionException;
-import org.opendaylight.controller.config.api.ValidationException;
-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 java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.JMException;
import javax.management.ObjectInstance;
import javax.management.ObjectName;
import javax.management.ReflectionException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import org.opendaylight.controller.config.api.ConflictingVersionException;
+import org.opendaylight.controller.config.api.ValidationException;
+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;
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);
+ this.configRegistryON = configRegistryON;
+ Set<ObjectInstance> searchResult = configMBeanServer.queryMBeans(configRegistryON, null);
if (!(searchResult.size() == 1)) {
throw new IllegalStateException("Config registry not found");
}
false);
}
+ public static ConfigRegistryJMXClient createWithoutNotifications(MBeanServer configMBeanServer) {
+ return new ConfigRegistryJMXClient(configMBeanServer, ConfigRegistryConstants.OBJECT_NAME_NO_NOTIFICATIONS);
+ }
+
@Override
public ConfigTransactionJMXClient createTransaction() {
ObjectName configTransactionControllerON = beginConfig();
} catch (AttributeNotFoundException | InstanceNotFoundException
| MBeanException | ReflectionException e) {
throw new RuntimeException("Unable to get attribute "
- + attributeName + " for " + on, e);
+ + attributeName + " for " + on + ". Available beans: " + lookupConfigBeans(), e);
}
}