X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2FNode.java;h=ef0c0667aa22eeff199ea83ad3769adfaba7cfb9;hb=1e9531138e44cd757ca27b0d86e98eccb22ccd82;hp=ea9d93bdb6f0774b2d5c72128648f4431c72b2a8;hpb=771dea2b9c38cd8bd74ef56ecbdbe6143b60cecf;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java index ea9d93bdb6..ef0c0667aa 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java @@ -30,6 +30,8 @@ import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; import org.opendaylight.controller.sal.utils.HexEncode; +import org.opendaylight.controller.sal.utils.INodeFactory; +import org.opendaylight.controller.sal.utils.ServiceHelper; /** * Describe a generic network element in multiple SDNs technologies. A @@ -437,9 +439,13 @@ public class Node implements Serializable { return null; } } else { - // We need to lookup via OSGi service registry for an - // handler for this + //Use INodeFactory to create a Node of registered Node type. + //The protocol plugin being used depends on typeStr. + INodeFactory f = (INodeFactory) ServiceHelper + .getGlobalInstance(INodeFactory.class, new Node(), "(protocolName="+typeStr+")"); + if(f==null) + return null; + return f.fromString(typeStr, IDStr); } - return null; } }