X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Fmapping%2Fconfig%2FServiceRegistryWrapper.java;h=8c2c74f2ac58d1c2144a1e8194cb46e15eb279b9;hp=f86d641112585515198e9cbad18cce3c62a89389;hb=531621aac4cff9d39cbd8668a53bdeba8a0e6d81;hpb=8720a3f3498bbc6fab675431f4200d26641a8ec8 diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java index f86d641112..8c2c74f2ac 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/config/ServiceRegistryWrapper.java @@ -13,17 +13,17 @@ import java.util.Map; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; import org.opendaylight.controller.config.api.ServiceReferenceReadableRegistry; +import org.opendaylight.controller.config.api.jmx.ObjectNameUtil; import org.opendaylight.yangtools.yang.common.QName; public class ServiceRegistryWrapper { - private ServiceReferenceReadableRegistry configServiceRefRegistry; + private final ServiceReferenceReadableRegistry configServiceRefRegistry; public ServiceRegistryWrapper(ServiceReferenceReadableRegistry configServiceRefRegistry) { this.configServiceRefRegistry = configServiceRefRegistry; } - public ObjectName getByServiceAndRefName(String namespace, String serviceName, String refName) { Map> serviceNameToRefNameToInstance = getMappedServices().get(namespace); @@ -43,7 +43,12 @@ public class ServiceRegistryWrapper { String qNameOfService = configServiceRefRegistry.getServiceInterfaceName(namespace, serviceName); try { - return configServiceRefRegistry.getServiceReference(qNameOfService, refName); + /* + Remove transaction name as this is redundant - will be stripped in DynamicWritableWrapper, + and makes it hard to compare with service references got from MXBean attributes + */ + return ObjectNameUtil.withoutTransactionName( + configServiceRefRegistry.getServiceReference(qNameOfService, refName)); } catch (InstanceNotFoundException e) { throw new IllegalArgumentException("No serviceInstance mapped to " + refName + " under service name " + serviceName + " , " + refNameToInstance.keySet(), e); @@ -55,13 +60,13 @@ public class ServiceRegistryWrapper { Map>> retVal = Maps.newHashMap(); Map> serviceMapping = configServiceRefRegistry.getServiceMapping(); - for (String serviceQName : serviceMapping.keySet()){ - for (String refName : serviceMapping.get(serviceQName).keySet()) { + for (Map.Entry> qNameToRefNameEntry : serviceMapping.entrySet()){ + for (String refName : qNameToRefNameEntry.getValue().keySet()) { - ObjectName on = serviceMapping.get(serviceQName).get(refName); + ObjectName on = qNameToRefNameEntry.getValue().get(refName); Services.ServiceInstance si = Services.ServiceInstance.fromObjectName(on); - QName qname = QName.create(serviceQName); + QName qname = QName.create(qNameToRefNameEntry.getKey()); String namespace = qname.getNamespace().toString(); Map> serviceToRefs = retVal.get(namespace); if(serviceToRefs==null) {