Bug 1062 - Disallow implicit serviceref creation.
[controller.git] / opendaylight / netconf / config-netconf-connector / src / main / java / org / opendaylight / controller / netconf / confignetconfconnector / mapping / attributes / resolving / ObjectNameAttributeResolvingStrategy.java
index af6e3db8e9406827868cfe214ee498bc2ac0c08c..57a44d8af0ec2d11cb30f3a86393ac015bac814c 100644 (file)
@@ -9,10 +9,8 @@
 package org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.resolving;
 
 import com.google.common.base.Optional;
-import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
 import org.opendaylight.controller.netconf.confignetconfconnector.mapping.attributes.mapping.ObjectNameAttributeMappingStrategy;
-import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services;
-import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.Services.ServiceInstance;
+import org.opendaylight.controller.netconf.confignetconfconnector.mapping.config.ServiceRegistryWrapper;
 import org.opendaylight.controller.netconf.confignetconfconnector.util.Util;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -22,10 +20,10 @@ import javax.management.openmbean.SimpleType;
 
 public class ObjectNameAttributeResolvingStrategy extends AbstractAttributeResolvingStrategy<ObjectName, SimpleType<?>> {
 
-    private final Services serviceTracker;
+    private final ServiceRegistryWrapper serviceTracker;
     private static final Logger logger = LoggerFactory.getLogger(ObjectNameAttributeResolvingStrategy.class);
 
-    ObjectNameAttributeResolvingStrategy(Services serviceTracker) {
+    ObjectNameAttributeResolvingStrategy(ServiceRegistryWrapper serviceTracker) {
         super(SimpleType.OBJECTNAME);
         this.serviceTracker = serviceTracker;
     }
@@ -40,14 +38,12 @@ public class ObjectNameAttributeResolvingStrategy extends AbstractAttributeResol
 
         ObjectNameAttributeMappingStrategy.MappedDependency mappedDep = (ObjectNameAttributeMappingStrategy.MappedDependency) value;
         String serviceName = mappedDep.getServiceName();
-        if (serviceName.contains(":")) {
-            // hack for yuma
-            serviceName = serviceName.substring(serviceName.indexOf(":") + 1);
-        }
         String refName = mappedDep.getRefName();
-        logger.trace("Getting service instance by service name {} and ref name {}", serviceName, refName);
-        ServiceInstance byRefName = serviceTracker.getByServiceAndRefName(serviceName, refName);
-        ObjectName on = ObjectNameUtil.createReadOnlyModuleON(byRefName.getModuleName(), byRefName.getInstanceName());
+        String namespace = mappedDep.getNamespace();
+        logger.trace("Getting service instance by service name {} : {} and ref name {}", namespace, serviceName, refName);
+
+        ObjectName on = serviceTracker.getByServiceAndRefName(namespace, serviceName, refName);
+
         logger.debug("Attribute {} : {} parsed to type {}", attrName, value, getOpenType());
         return Optional.of(on);
     }