X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fprotocol_plugins%2Fopenflow%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugin%2Fopenflow%2Finternal%2FActivator.java;h=d92c57bd8a59d9852326e2f2238af9dac2784971;hp=05736f779e6111f2a7619dc7734aeca0362717ef;hb=315a10ec8b79abec3f4d718359ebb4202bffcb11;hpb=97d2f10bea5bdd773453bc7202b9dd04f4b70c3b diff --git a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java index 05736f779e..d92c57bd8a 100644 --- a/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java +++ b/opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013-2014 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -31,6 +31,7 @@ import org.opendaylight.controller.protocol_plugin.openflow.core.internal.Contro import org.opendaylight.controller.sal.connection.IPluginInConnectionService; import org.opendaylight.controller.sal.connection.IPluginOutConnectionService; import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase; +import org.opendaylight.controller.sal.core.IContainerAware; import org.opendaylight.controller.sal.core.IContainerListener; import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService; @@ -57,22 +58,9 @@ public class Activator extends ComponentActivatorAbstractBase { .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 - * + * Priority to determine whether to override existing protocol service. */ - @Override - public void destroy() { - } + private static final int PLUGIN_PRIORITY = 10; /** * Function that is used to communicate to dependency manager the list of @@ -152,6 +140,8 @@ public class Activator extends ComponentActivatorAbstractBase { // Set the protocolPluginType property which will be used // by SAL props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), Node.NodeIDType.OPENFLOW); + props.put(GlobalConstants.PROTOCOLPLUGINPRIORITY.toString(), + Integer.valueOf(PLUGIN_PRIORITY)); c.setInterface(IPluginInDataPacketService.class.getName(), props); // Hook the services coming in from SAL, as optional in // case SAL is not yet there, could happen @@ -181,6 +171,8 @@ public class Activator extends ComponentActivatorAbstractBase { // Set the protocolPluginType property which will be used // by SAL props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), Node.NodeIDType.OPENFLOW); + props.put(GlobalConstants.PROTOCOLPLUGINPRIORITY.toString(), + Integer.valueOf(PLUGIN_PRIORITY)); c.setInterface(new String[] { IReadFilterInternalListener.class.getName(), IPluginInReadService.class.getName() }, props); @@ -272,13 +264,12 @@ public class Activator extends ComponentActivatorAbstractBase { // Set the protocolPluginType property which will be used // by SAL props.put(GlobalConstants.PROTOCOLPLUGINTYPE.toString(), Node.NodeIDType.OPENFLOW); + props.put(GlobalConstants.PROTOCOLPLUGINPRIORITY.toString(), + Integer.valueOf(PLUGIN_PRIORITY)); c.setInterface( - new String[] { - IPluginInFlowProgrammerService.class.getName(), - IMessageListener.class.getName(), - IContainerListener.class.getName(), - IInventoryShimExternalListener.class.getName() }, - props); + new String[] { IPluginInFlowProgrammerService.class.getName(), IMessageListener.class.getName(), + IContainerListener.class.getName(), IInventoryShimExternalListener.class.getName(), + IContainerAware.class.getName() }, props); c.add(createServiceDependency() .setService(IController.class, "(name=Controller)") @@ -288,7 +279,7 @@ public class Activator extends ComponentActivatorAbstractBase { c.add(createServiceDependency() .setService(IFlowProgrammerNotifier.class) .setCallbacks("setFlowProgrammerNotifier", - "unsetsetFlowProgrammerNotifier") + "unsetFlowProgrammerNotifier") .setRequired(false)); c.add(createServiceDependency() @@ -300,10 +291,8 @@ public class Activator extends ComponentActivatorAbstractBase { if (imp.equals(ReadServiceFilter.class)) { - c.setInterface(new String[] { - IReadServiceFilter.class.getName(), - IContainerListener.class.getName(), - IOFStatisticsListener.class.getName() }, null); + c.setInterface(new String[] { IReadServiceFilter.class.getName(), IContainerListener.class.getName(), + IOFStatisticsListener.class.getName(), IContainerAware.class.getName() }, null); c.add(createServiceDependency() .setService(IController.class, "(name=Controller)") @@ -338,9 +327,7 @@ public class Activator extends ComponentActivatorAbstractBase { if (imp.equals(DiscoveryService.class)) { // export the service c.setInterface( - new String[] { - IInventoryShimExternalListener.class.getName(), - IDataPacketListen.class.getName(), + new String[] { IInventoryShimExternalListener.class.getName(), IDataPacketListen.class.getName(), IContainerListener.class.getName() }, null); c.add(createServiceDependency() @@ -369,9 +356,8 @@ public class Activator extends ComponentActivatorAbstractBase { // DataPacket mux/demux services, which is teh actual engine // doing the packet switching if (imp.equals(DataPacketMuxDemux.class)) { - c.setInterface(new String[] { IDataPacketMux.class.getName(), - IContainerListener.class.getName(), - IInventoryShimExternalListener.class.getName() }, null); + c.setInterface(new String[] { IDataPacketMux.class.getName(), IContainerListener.class.getName(), + IInventoryShimExternalListener.class.getName(), IContainerAware.class.getName() }, null); c.add(createServiceDependency() .setService(IController.class, "(name=Controller)") @@ -419,7 +405,7 @@ public class Activator extends ComponentActivatorAbstractBase { if (imp.equals(InventoryServiceShim.class)) { c.setInterface(new String[] { IContainerListener.class.getName(), - IOFStatisticsListener.class.getName()}, null); + IOFStatisticsListener.class.getName(), IContainerAware.class.getName() }, null); c.add(createServiceDependency() .setService(IController.class, "(name=Controller)") @@ -448,10 +434,9 @@ public class Activator extends ComponentActivatorAbstractBase { } if (imp.equals(TopologyServiceShim.class)) { - c.setInterface(new String[] { IDiscoveryListener.class.getName(), - IContainerListener.class.getName(), - IRefreshInternalProvider.class.getName(), - IInventoryShimExternalListener.class.getName() }, null); + c.setInterface(new String[] { IDiscoveryListener.class.getName(), IContainerListener.class.getName(), + IRefreshInternalProvider.class.getName(), IInventoryShimExternalListener.class.getName(), + IContainerAware.class.getName() }, null); c.add(createServiceDependency() .setService(ITopologyServiceShimListener.class) .setCallbacks("setTopologyServiceShimListener",