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=b7639bed2b2b41db2c5459cd0b8babe976b92bfb;hb=57f507d105b1daa9aa9663ca5ec6d258251fca2e;hp=705ffbfa632d94237ee8c55d4f8eec753969d935;hpb=35ba67e73cf9fea55535c1aef8303e7d12c982e7;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..b7639bed2b 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,30 @@ 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 .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 @@ -56,6 +43,7 @@ public class Activator extends ComponentActivatorAbstractBase { * instantiated in order to get an fully working implementation * Object */ + @Override public Object[] getImplementations() { Object[] res = { ArpHandler.class }; return res; @@ -74,13 +62,26 @@ public class Activator extends ComponentActivatorAbstractBase { * also optional 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(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 +91,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",