package org.opendaylight.controller.routing.dijkstra_implementation.internal;
import java.util.Dictionary;
+import java.util.HashSet;
import java.util.Hashtable;
+import java.util.Set;
+
import org.apache.felix.dm.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase;
import org.opendaylight.controller.sal.routing.IListenRoutingUpdates;
import org.opendaylight.controller.sal.routing.IRouting;
import org.opendaylight.controller.switchmanager.ISwitchManager;
-import org.opendaylight.controller.sal.reader.IReadService;
import org.opendaylight.controller.topologymanager.ITopologyManager;
-import org.opendaylight.controller.topologymanager.ITopologyManagerAware;
+import org.opendaylight.controller.topologymanager.ITopologyManagerClusterWideAware;
+import org.opendaylight.controller.clustering.services.IClusterContainerServices;
public class Activator extends ComponentActivatorAbstractBase {
protected static final Logger logger = LoggerFactory
* ComponentActivatorAbstractBase.
*
*/
+ @Override
public void init() {
}
* cleanup done by ComponentActivatorAbstractBase
*
*/
+ @Override
public void destroy() {
}
* instantiated in order to get an fully working implementation
* Object
*/
+ @Override
public Object[] getImplementations() {
Object[] res = { DijkstraImplementation.class };
return res;
* also optional per-container different behavior if needed, usually
* should not be the case though.
*/
- public void configureInstance(Component c, Object imp, String containerName) {
+ @Override
+ public void configureInstance(final Component c, final Object imp, final String containerName) {
if (imp.equals(DijkstraImplementation.class)) {
// export the service
- Dictionary<String, String> props = new Hashtable<String, String>();
+ final Dictionary<String, Object> props = new Hashtable<String, Object>();
props.put("topoListenerName", "routing.Dijkstra");
- c.setInterface(new String[] { ITopologyManagerAware.class.getName(),
- IRouting.class.getName() }, props);
+
+ c.setInterface(new String[] { ITopologyManagerClusterWideAware.class.getName(), IRouting.class.getName() },
+ props);
// Now lets add a service dependency to make sure the
// provider of service exists
- c.add(createContainerServiceDependency(containerName).setService(
- IListenRoutingUpdates.class).setCallbacks(
- "setListenRoutingUpdates", "unsetListenRoutingUpdates")
+ c.add(createContainerServiceDependency(containerName).setService(IListenRoutingUpdates.class)
+ .setCallbacks("setListenRoutingUpdates", "unsetListenRoutingUpdates")
.setRequired(false));
- c.add(createContainerServiceDependency(containerName).setService(
- ISwitchManager.class).setCallbacks("setSwitchManager",
- "unsetSwitchManager").setRequired(true));
+ c.add(createContainerServiceDependency(containerName).setService(ISwitchManager.class)
+ .setCallbacks("setSwitchManager", "unsetSwitchManager")
+ .setRequired(true));
- c.add(createContainerServiceDependency(containerName).setService(
- ITopologyManager.class).setCallbacks("setTopologyManager",
- "unsetTopologyManager").setRequired(true));
+ c.add(createContainerServiceDependency(containerName).setService(ITopologyManager.class)
+ .setCallbacks("setTopologyManager", "unsetTopologyManager")
+ .setRequired(true));
- c.add(createContainerServiceDependency(containerName).setService(
- IReadService.class).setCallbacks("setReadService",
- "unsetReadService").setRequired(true));
+ c.add(createContainerServiceDependency(containerName).setService(IClusterContainerServices.class)
+ .setCallbacks("setClusterContainerService", "unsetClusterContainerService")
+ .setRequired(true));
}
}
+
+ @Override
+ protected Object[] getGlobalImplementations() {
+ final Object[] res = { DijkstraImplementationCLI.class };
+ return res;
+ }
}