X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fprotocol_plugins%2Fstub%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugins%2Fstub%2Finternal%2FActivator.java;h=843e60ec36fba1218b0aa61eac75a019d5e96067;hb=edf5bfcee83c750853253ccfd991ba7000f5f65b;hp=76c38664d4d44adde2e799d1f5ff595702aa0c67;hpb=e830ca8fc7550bddb87dc3d1141a53e9b20c53f7;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 76c38664d4..843e60ec36 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 @@ -1,31 +1,35 @@ -package org.opendaylight.controller.protocol_plugins.stub.internal; +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ -import java.util.Dictionary; -import java.util.Hashtable; -import org.apache.felix.dm.Component; + +package org.opendaylight.controller.protocol_plugins.stub.internal; + +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; import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService; -import org.opendaylight.controller.sal.packet.IPluginInDataPacketService; -import org.opendaylight.controller.sal.packet.IPluginOutDataPacketService; import org.opendaylight.controller.sal.reader.IPluginInReadService; -import org.opendaylight.controller.sal.reader.IReadService; import org.opendaylight.controller.sal.topology.IPluginInTopologyService; import org.opendaylight.controller.sal.topology.IPluginOutTopologyService; import org.opendaylight.controller.sal.utils.GlobalConstants; - +import org.opendaylight.controller.sal.utils.INodeConnectorFactory; +import org.opendaylight.controller.sal.utils.INodeFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Dictionary; +import java.util.Hashtable; + /** * stub protocol plugin Activator * @@ -40,6 +44,7 @@ public class Activator extends ComponentActivatorAbstractBase { * are done by the ComponentActivatorAbstractBase. * */ + @Override public void init() { Node.NodeIDType.registerIDType("STUB", Integer.class); NodeConnector.NodeConnectorIDType.registerIDType("STUB", Integer.class, "STUB"); @@ -50,6 +55,7 @@ public class Activator extends ComponentActivatorAbstractBase { * ComponentActivatorAbstractBase * */ + @Override public void destroy() { Node.NodeIDType.unRegisterIDType("STUB"); NodeConnector.NodeConnectorIDType.unRegisterIDType("STUB"); @@ -64,8 +70,9 @@ public class Activator extends ComponentActivatorAbstractBase { * instantiated in order to get an fully working implementation * Object */ + @Override public Object[] getImplementations() { - Object[] res = { ReadService.class, InventoryService.class }; + Object[] res = { ReadService.class, InventoryService.class, TopologyServices.class }; return res; } @@ -84,6 +91,7 @@ public class Activator extends ComponentActivatorAbstractBase { * per-container different behavior if needed, usually should not * be the case though. */ + @Override public void configureInstance(Component c, Object imp, String containerName) { if (imp.equals(ReadService.class)) { // export the service to be used by SAL @@ -102,13 +110,32 @@ public class Activator extends ComponentActivatorAbstractBase { props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), "STUB"); c.setInterface(IPluginInInventoryService.class.getName(), props); } + + if(imp.equals(TopologyServices.class)){ + Dictionary props = new Hashtable(); + props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), "STUB"); + c.setInterface(IPluginInTopologyService.class.getName(), props); + c.add(createServiceDependency().setService(IPluginOutTopologyService.class, "") + .setCallbacks("setPluginOutTopologyService", "unsetPluginOutTopologyService") + .setRequired(true)); + + } + } + @Override public Object[] getGlobalImplementations() { - Object[] res = { FlowProgrammerService.class, StubNodeFactory.class, StubNodeConnectorFactory.class }; + Object[] res = + { + FlowProgrammerService.class, + StubNodeFactory.class, + StubNodeConnectorFactory.class, + InventoryService.class + }; return res; } + @Override public void configureGlobalInstance(Component c, Object imp){ if (imp.equals(FlowProgrammerService.class)) { // export the service to be used by SAL @@ -136,6 +163,18 @@ public class Activator extends ComponentActivatorAbstractBase { props.put("protocolName", "STUB"); c.setInterface(INodeConnectorFactory.class.getName(), props); } + if (imp.equals(InventoryService.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(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), "STUB"); + props.put("scope", "Global"); + c.setInterface(IPluginInInventoryService.class.getName(), props); + c.add(createServiceDependency().setService(IPluginOutInventoryService.class, "(scope=Global)") + .setCallbacks("setPluginOutInventoryServices", "unsetPluginOutInventoryServices") + .setRequired(true)); + } } }