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=248623cce8326e93288498d9af9ec15d92b100a2;hb=c5630f2945eb5370f9829514ef72de41d41eb2be;hp=705ffbfa632d94237ee8c55d4f8eec753969d935;hpb=aac53049e732da24dde4c1571f5df3f20238b9a2;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..248623cce8 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,20 +9,25 @@ 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.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 @@ -77,10 +82,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 +107,16 @@ 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)); + // the Host Listener is optional c.add(createContainerServiceDependency(containerName).setService( IfHostListener.class).setCallbacks("setHostListener",