X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Farphandler%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Farphandler%2Finternal%2FActivator.java;h=b253179c87185d50834240f654a524409a0fa392;hb=e1658face07c354aa8fd5b12da700401ce1efc37;hp=705ffbfa632d94237ee8c55d4f8eec753969d935;hpb=261f59df395a0b8e2ebb1259837526f60f64baa4;p=controller.git diff --git a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java index 705ffbfa63..b253179c87 100644 --- a/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java +++ b/opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java @@ -9,43 +9,31 @@ package org.opendaylight.controller.arphandler.internal; -import java.util.Hashtable; import java.util.Dictionary; -import org.apache.felix.dm.Component; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.util.HashSet; +import java.util.Hashtable; +import java.util.Set; +import org.apache.felix.dm.Component; +import org.opendaylight.controller.clustering.services.ICacheUpdateAware; +import org.opendaylight.controller.clustering.services.IClusterContainerServices; +import org.opendaylight.controller.connectionmanager.IConnectionManager; import org.opendaylight.controller.hosttracker.IfHostListener; import org.opendaylight.controller.hosttracker.IfIptoHost; import org.opendaylight.controller.hosttracker.hostAware.IHostFinder; import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase; -import org.opendaylight.controller.sal.packet.IListenDataPacket; import org.opendaylight.controller.sal.packet.IDataPacketService; +import org.opendaylight.controller.sal.packet.IListenDataPacket; +import org.opendaylight.controller.sal.routing.IRouting; import org.opendaylight.controller.switchmanager.ISwitchManager; import org.opendaylight.controller.topologymanager.ITopologyManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Activator extends ComponentActivatorAbstractBase { protected static final Logger logger = LoggerFactory .getLogger(Activator.class); - /** - * Function called when the activator starts just after some - * initializations are done by the - * ComponentActivatorAbstractBase. - * - */ - public void init() { - - } - - /** - * Function called when the activator stops just before the - * cleanup done by ComponentActivatorAbstractBase - * - */ - public void destroy() { - - } /** * Function that is used to communicate to dependency manager the @@ -77,10 +65,22 @@ public class Activator extends ComponentActivatorAbstractBase { public void configureInstance(Component c, Object imp, String containerName) { if (imp.equals(ArpHandler.class)) { // export the service - Dictionary props = new Hashtable(); + Dictionary props = new Hashtable(); props.put("salListenerName", "arphandler"); - c.setInterface(new String[] { IHostFinder.class.getName(), - IListenDataPacket.class.getName() }, props); + Set propSet = new HashSet(); + propSet.add(ArpHandler.ARP_EVENT_CACHE_NAME); + props.put("cachenames", propSet); + + c.setInterface(new String[] { + IHostFinder.class.getName(), + IListenDataPacket.class.getName(), + ICacheUpdateAware.class.getName()}, props); + + // We need connection mgr to distribute packet out across the cluster + c.add(createServiceDependency().setService( + IConnectionManager.class).setCallbacks("setConnectionManager", + "unsetConnectionManager").setRequired(true)); + c.add(createContainerServiceDependency(containerName).setService( ISwitchManager.class).setCallbacks("setSwitchManager", @@ -90,11 +90,20 @@ public class Activator extends ComponentActivatorAbstractBase { ITopologyManager.class).setCallbacks("setTopologyManager", "unsetTopologyMananger").setRequired(true)); - c.add(createContainerServiceDependency(containerName).setService( + c.add(createContainerServiceDependency(containerName).setService( IDataPacketService.class).setCallbacks( "setDataPacketService", "unsetDataPacketService") .setRequired(true)); + c.add(createContainerServiceDependency(containerName).setService( + IClusterContainerServices.class).setCallbacks( + "setClusterContainerService", "unsetClusterContainerService") + .setRequired(true)); + + c.add(createContainerServiceDependency(containerName).setService( + IRouting.class).setCallbacks("setRouting","unsetRouting") + .setRequired(false)); + // the Host Listener is optional c.add(createContainerServiceDependency(containerName).setService( IfHostListener.class).setCallbacks("setHostListener",