@Property
DataPacketAdapter dataPacket = new DataPacketAdapter;
+ @Property
+ org.opendaylight.controller.sal.utils.INodeFactory nodeFactory = new MDSalNodeFactory
+
override protected init() {
Node.NodeIDType.registerIDType(MD_SAL_TYPE, NodeKey);
NodeConnector.NodeConnectorIDType.registerIDType(MD_SAL_TYPE, NodeConnectorKey, MD_SAL_TYPE);
}
override protected getGlobalImplementations() {
- return Arrays.asList(this, flow, inventory, dataPacket)
+ return Arrays.asList(this, flow, inventory, dataPacket, nodeFactory)
}
override protected configureGlobalInstance(Component c, Object imp) {
configure(imp, c);
}
+ private def dispatch configure(MDSalNodeFactory imp, Component it) {
+ setInterface(org.opendaylight.controller.sal.utils.INodeFactory.name, properties);
+ }
+
private def dispatch configure(ComponentActivator imp, Component it) {
add(
createServiceDependency().setService(BindingAwareBroker) //
.setCallbacks("setBroker", "setBroker") //
.setRequired(true))
+
+
}
private def dispatch configure(DataPacketAdapter imp, Component it) {
private def Dictionary<String, Object> properties() {
val props = new Hashtable<String, Object>();
props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString, MD_SAL_TYPE)
+ props.put("protocolName", MD_SAL_TYPE);
return props;
}
}
--- /dev/null
+package org.opendaylight.controller.sal.compatibility;
+
+import org.opendaylight.controller.sal.core.ConstructionException;
+import org.opendaylight.controller.sal.core.Node;
+import org.opendaylight.controller.sal.utils.INodeFactory;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MDSalNodeFactory implements INodeFactory{
+ private Logger logger = LoggerFactory.getLogger(MDSalNodeFactory.class);
+
+ @Override
+ public Node fromString(String type, String id) {
+
+ try {
+ return new Node(type, new NodeKey(new NodeId(id)));
+ } catch (ConstructionException e) {
+ logger.error("Could not construct Node", e);
+ }
+ return null;
+ }
+}