Merge "Fix bug 171. EchoReply payload must be the same as the correspoding EchoReques...
[controller.git] / opendaylight / forwardingrulesmanager / implementation / src / main / java / org / opendaylight / controller / forwardingrulesmanager / internal / Activator.java
index f6fc0012ad4219f368373cb10284e1c401e96a0f..ec8112035f4c89805ff987cfd2cfd31643bdef39 100644 (file)
@@ -14,46 +14,28 @@ 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.configuration.IConfigurationContainerAware;
+import org.opendaylight.controller.connectionmanager.IConnectionManager;
+import org.opendaylight.controller.containermanager.IContainerManager;
 import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManager;
 import org.opendaylight.controller.forwardingrulesmanager.IForwardingRulesManagerAware;
 import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
 import org.opendaylight.controller.sal.core.IContainer;
-import org.opendaylight.controller.sal.core.IContainerListener;
+import org.opendaylight.controller.sal.core.IContainerLocalListener;
 import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerListener;
 import org.opendaylight.controller.sal.flowprogrammer.IFlowProgrammerService;
+import org.opendaylight.controller.sal.utils.GlobalConstants;
 import org.opendaylight.controller.switchmanager.IInventoryListener;
 import org.opendaylight.controller.switchmanager.ISwitchManager;
 import org.opendaylight.controller.switchmanager.ISwitchManagerAware;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.opendaylight.controller.clustering.services.ICacheUpdateAware;
-import org.opendaylight.controller.clustering.services.IClusterContainerServices;
-import org.opendaylight.controller.hosttracker.IfIptoHost;
-
 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.
-     *
-     */
-    @Override
-    public void init() {
-
-    }
-
-    /**
-     * Function called when the activator stops just before the cleanup done by
-     * ComponentActivatorAbstractBase
-     *
-     */
-    @Override
-    public void destroy() {
-
-    }
 
     /**
      * Function that is used to communicate to dependency manager the list of
@@ -66,7 +48,7 @@ public class Activator extends ComponentActivatorAbstractBase {
      */
     @Override
     public Object[] getImplementations() {
-        Object[] res = { ForwardingRulesManagerImpl.class };
+        Object[] res = { ForwardingRulesManager.class };
         return res;
     }
 
@@ -87,34 +69,45 @@ public class Activator extends ComponentActivatorAbstractBase {
      */
     @Override
     public void configureInstance(Component c, Object imp, String containerName) {
-        if (imp.equals(ForwardingRulesManagerImpl.class)) {
+        if (imp.equals(ForwardingRulesManager.class)) {
             String interfaces[] = null;
-            Dictionary<String, Set<String>> props = new Hashtable<String, Set<String>>();
+            Dictionary<String, Object> props = new Hashtable<String, Object>();
             Set<String> propSet = new HashSet<String>();
-            propSet.add("frm.flowsSaveEvent");
+            propSet.add(ForwardingRulesManager.WORK_STATUS_CACHE);
+            propSet.add(ForwardingRulesManager.WORK_ORDER_CACHE);
+            propSet.add(ForwardingRulesManager.INSTALLED_SW_VIEW_CACHE);
             props.put("cachenames", propSet);
 
             // export the service
-            interfaces = new String[] { IContainerListener.class.getName(), ISwitchManagerAware.class.getName(),
+            interfaces = new String[] { IContainerLocalListener.class.getName(), ISwitchManagerAware.class.getName(),
                     IForwardingRulesManager.class.getName(), IInventoryListener.class.getName(),
-                    ICacheUpdateAware.class.getName(), IConfigurationContainerAware.class.getName(),
+                    IConfigurationContainerAware.class.getName(), ICacheUpdateAware.class.getName(),
                     IFlowProgrammerListener.class.getName() };
 
             c.setInterface(interfaces, props);
 
             c.add(createContainerServiceDependency(containerName).setService(IFlowProgrammerService.class)
                     .setCallbacks("setFlowProgrammerService", "unsetFlowProgrammerService").setRequired(true));
-
             c.add(createContainerServiceDependency(containerName).setService(IClusterContainerServices.class)
                     .setCallbacks("setClusterContainerService", "unsetClusterContainerService").setRequired(true));
             c.add(createContainerServiceDependency(containerName).setService(ISwitchManager.class)
                     .setCallbacks("setSwitchManager", "unsetSwitchManager").setRequired(true));
             c.add(createContainerServiceDependency(containerName).setService(IForwardingRulesManagerAware.class)
                     .setCallbacks("setFrmAware", "unsetFrmAware").setRequired(false));
-            c.add(createContainerServiceDependency(containerName).setService(IfIptoHost.class)
-                    .setCallbacks("setHostFinder", "unsetHostFinder").setRequired(true));
             c.add(createContainerServiceDependency(containerName).setService(IContainer.class)
                     .setCallbacks("setIContainer", "unsetIContainer").setRequired(true));
+            c.add(createServiceDependency().setService(IConnectionManager.class)
+                    .setCallbacks("setIConnectionManager", "unsetIConnectionManager").setRequired(true));
+            if (GlobalConstants.DEFAULT.toString().equals(containerName)) {
+                c.add(createServiceDependency().setService(IContainerManager.class)
+                        .setCallbacks("setIContainerManager", "unsetIContainerManager").setRequired(true));
+            }
         }
     }
+
+    @Override
+    protected Object[] getGlobalImplementations() {
+        final Object[] res = { ForwardingRulesManagerCLI.class };
+        return res;
+    }
 }