X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fprotocol_plugins%2Fstub%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugins%2Fstub%2Finternal%2FActivator.java;h=614e70b1b859b0e23c7500549f776dd961558d53;hb=541d0a36997f292bb037a2199463431eee538358;hp=cf93fb0a37fb1381716934da2220d6df7eba456c;hpb=39ddf30f33622bc91e407e528d455d9ed006b417;p=controller.git diff --git a/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java b/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java index cf93fb0a37..614e70b1b8 100644 --- a/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java +++ b/opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java @@ -7,7 +7,10 @@ import org.apache.felix.dm.Component; import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase; import org.opendaylight.controller.sal.core.IContainerListener; +import org.opendaylight.controller.sal.utils.INodeConnectorFactory; +import org.opendaylight.controller.sal.utils.INodeFactory; import org.opendaylight.controller.sal.core.Node; +import org.opendaylight.controller.sal.core.NodeConnector; import org.opendaylight.controller.sal.discovery.IDiscoveryService; import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService; import org.opendaylight.controller.sal.inventory.IPluginInInventoryService; @@ -25,8 +28,8 @@ import org.slf4j.LoggerFactory; /** * stub protocol plugin Activator - * - * + * + * */ public class Activator extends ComponentActivatorAbstractBase { protected static final Logger logger = LoggerFactory @@ -35,24 +38,28 @@ public class Activator extends ComponentActivatorAbstractBase { /** * Function called when the activator starts just after some initializations * are done by the ComponentActivatorAbstractBase. - * + * */ public void init() { + Node.NodeIDType.registerIDType("STUB", Integer.class); + NodeConnector.NodeConnectorIDType.registerIDType("STUB", Integer.class, "STUB"); } /** * Function called when the activator stops just before the cleanup done by * ComponentActivatorAbstractBase - * + * */ public void destroy() { + Node.NodeIDType.unRegisterIDType("STUB"); + NodeConnector.NodeConnectorIDType.unRegisterIDType("STUB"); } /** * Function that is used to communicate to dependency manager the list of * known implementations for services inside a container - * - * + * + * * @return An array containing all the CLASS objects that will be * instantiated in order to get an fully working implementation * Object @@ -65,7 +72,7 @@ public class Activator extends ComponentActivatorAbstractBase { /** * Function that is called when configuration of the dependencies is * required. - * + * * @param c * dependency manager Component object, used for configuring the * dependencies exported and imported @@ -83,7 +90,7 @@ public class Activator extends ComponentActivatorAbstractBase { Dictionary props = new Hashtable(); // Set the protocolPluginType property which will be used // by SAL - props.put("protocolPluginType", Node.NodeIDType.OPENFLOW); + props.put("protocolPluginType", "STUB"); c.setInterface(IPluginInReadService.class.getName(), props); } @@ -92,8 +99,43 @@ public class Activator extends ComponentActivatorAbstractBase { Dictionary props = new Hashtable(); // Set the protocolPluginType property which will be used // by SAL - props.put("protocolPluginType", Node.NodeIDType.OPENFLOW); + props.put("protocolPluginType", "STUB"); c.setInterface(IPluginInInventoryService.class.getName(), props); } } + + public Object[] getGlobalImplementations() { + Object[] res = { FlowProgrammerService.class, StubNodeFactory.class, StubNodeConnectorFactory.class }; + return res; + } + + public void configureGlobalInstance(Component c, Object imp){ + if (imp.equals(FlowProgrammerService.class)) { + // export the service to be used by SAL + Dictionary props = new Hashtable(); + // Set the protocolPluginType property which will be used + // by SAL + props.put("protocolPluginType", "STUB"); + c.setInterface(IPluginInFlowProgrammerService.class.getName(), props); + } + if (imp.equals(StubNodeFactory.class)) { + // export the service to be used by SAL + Dictionary props = new Hashtable(); + // Set the protocolPluginType property which will be used + // by SAL + props.put("protocolPluginType", "STUB"); + props.put("protocolName", "STUB"); + c.setInterface(INodeFactory.class.getName(), props); + } + if (imp.equals(StubNodeConnectorFactory.class)) { + // export the service to be used by SAL + Dictionary props = new Hashtable(); + // Set the protocolPluginType property which will be used + // by SAL + props.put("protocolPluginType", "STUB"); + props.put("protocolName", "STUB"); + c.setInterface(INodeConnectorFactory.class.getName(), props); + } + + } }