X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcompatibility%2Fsal-compatibility%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcompatibility%2FComponentActivator.xtend;h=2156a81787b9906b46cdcd4f83138d33feb67de1;hb=f4af9d60d50ef6be66290641263dbebe95e2894c;hp=95acbcdb1338e10827d76c4d5d19718094db83d0;hpb=4e1b60eacdc220e00a4333bad53ce188a527a18a;p=controller.git diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend index 95acbcdb13..2156a81787 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend @@ -1,37 +1,43 @@ package org.opendaylight.controller.sal.compatibility -import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey -import org.opendaylight.controller.sal.core.Node -import org.opendaylight.controller.sal.core.NodeConnector -import static org.opendaylight.controller.sal.compatibility.NodeMapping.* -import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey -import org.apache.felix.dm.Component import java.util.Arrays import java.util.Dictionary import java.util.Hashtable -import org.opendaylight.controller.sal.utils.GlobalConstants +import org.apache.felix.dm.Component import org.opendaylight.controller.sal.binding.api.BindingAwareBroker -import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService -import org.opendaylight.controller.sal.inventory.IPluginInInventoryService -import org.opendaylight.controller.sal.reader.IPluginInReadService -import org.opendaylight.controller.sal.flowprogrammer.IPluginOutFlowProgrammerService -import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService +import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer import org.opendaylight.controller.sal.binding.api.NotificationService import org.opendaylight.controller.sal.binding.api.data.DataBrokerService -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService +import org.opendaylight.controller.sal.binding.api.data.DataProviderService +import org.opendaylight.controller.sal.compatibility.topology.TopologyAdapter +import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase +import org.opendaylight.controller.sal.core.Node +import org.opendaylight.controller.sal.core.NodeConnector +import org.opendaylight.controller.sal.discovery.IDiscoveryService +import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerService +import org.opendaylight.controller.sal.flowprogrammer.IPluginOutFlowProgrammerService +import org.opendaylight.controller.sal.inventory.IPluginInInventoryService +import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService import org.opendaylight.controller.sal.packet.IPluginOutDataPacketService -import org.osgi.framework.BundleContext +import org.opendaylight.controller.sal.reader.IPluginInReadService import org.opendaylight.controller.sal.reader.IPluginOutReadService -import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService -import org.opendaylight.controller.sal.discovery.IDiscoveryService +import org.opendaylight.controller.sal.topology.IPluginInTopologyService import org.opendaylight.controller.sal.topology.IPluginOutTopologyService -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryService +import org.opendaylight.controller.sal.utils.GlobalConstants +import org.opendaylight.controller.sal.utils.INodeConnectorFactory +import org.opendaylight.controller.sal.utils.INodeFactory +import org.opendaylight.controller.clustering.services.IClusterGlobalServices + +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsService +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryService import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService -import org.opendaylight.controller.sal.binding.api.data.DataProviderService +import org.osgi.framework.BundleContext + +import static org.opendaylight.controller.sal.compatibility.NodeMapping.* +import org.opendaylight.controller.sal.compatibility.topology.TopologyProvider class ComponentActivator extends ComponentActivatorAbstractBase implements BindingAwareConsumer { @@ -47,10 +53,16 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi DataPacketAdapter dataPacket = new DataPacketAdapter; @Property - org.opendaylight.controller.sal.utils.INodeFactory nodeFactory = new MDSalNodeFactory + INodeFactory nodeFactory = new MDSalNodeFactory @Property - org.opendaylight.controller.sal.utils.INodeConnectorFactory nodeConnectorFactory = new MDSalNodeConnectorFactory + INodeConnectorFactory nodeConnectorFactory = new MDSalNodeConnectorFactory + + @Property + TopologyAdapter topology = new TopologyAdapter + + @Property + TopologyProvider tpProvider = new TopologyProvider() override protected init() { @@ -72,6 +84,7 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi // Registration of Flow Service flow.delegate = session.getRpcService(SalFlowService) + flow.dataBrokerService = session.getSALService(DataBrokerService); subscribe.registerNotificationListener(flow); // Data Packet Service @@ -84,13 +97,16 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi inventory.nodeConnectorStatisticsService = session.getRpcService(OpendaylightPortStatisticsService); inventory.topologyDiscovery = session.getRpcService(FlowTopologyDiscoveryService); inventory.dataProviderService = session.getSALService(DataProviderService) + topology.dataService = session.getSALService(DataProviderService) + tpProvider.dataService = session.getSALService(DataProviderService) + tpProvider.start(); subscribe.registerNotificationListener(dataPacket) } override protected getGlobalImplementations() { - return Arrays.asList(this, flow, inventory, dataPacket, nodeFactory, nodeConnectorFactory) + return Arrays.asList(this, flow, inventory, dataPacket, nodeFactory, nodeConnectorFactory,topology,tpProvider) } override protected configureGlobalInstance(Component c, Object imp) { @@ -98,11 +114,11 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi } private def dispatch configure(MDSalNodeFactory imp, Component it) { - setInterface(org.opendaylight.controller.sal.utils.INodeFactory.name, properties); + setInterface(INodeFactory.name, properties); } private def dispatch configure(MDSalNodeConnectorFactory imp, Component it) { - setInterface(org.opendaylight.controller.sal.utils.INodeConnectorFactory.name, properties); + setInterface(INodeConnectorFactory.name, properties); } private def dispatch configure(ComponentActivator imp, Component it) { @@ -129,6 +145,13 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi .setService(IPluginOutFlowProgrammerService) // .setCallbacks("setFlowProgrammerPublisher", "setFlowProgrammerPublisher") // .setRequired(false)) + + add( + createServiceDependency() // + .setService(IClusterGlobalServices) // + .setCallbacks("setClusterGlobalServices", "unsetClusterGlobalServices") // + .setRequired(false)) + } private def dispatch configure(InventoryAndReadAdapter imp, Component it) { @@ -143,17 +166,30 @@ class ComponentActivator extends ComponentActivatorAbstractBase implements Bindi .setService(IPluginOutInventoryService) // .setCallbacks("setInventoryPublisher", "setInventoryPublisher") // .setRequired(false)) + add( + createServiceDependency() // + .setService(IDiscoveryService) // + .setCallbacks("setDiscoveryPublisher", "setDiscoveryPublisher") // + .setRequired(false)) + + + } + + private def dispatch configure (TopologyAdapter imp, Component it) { + setInterface(Arrays.asList(IPluginInTopologyService.name), properties) add( createServiceDependency() // .setService(IPluginOutTopologyService) // .setCallbacks("setTopologyPublisher", "setTopologyPublisher") // .setRequired(false)) + } + + private def dispatch configure (TopologyProvider imp, Component it) { add( createServiceDependency() // - .setService(IDiscoveryService) // - .setCallbacks("setDiscoveryPublisher", "setDiscoveryPublisher") // + .setService(IPluginOutTopologyService) // + .setCallbacks("setTopologyPublisher", "setTopologyPublisher") // .setRequired(false)) - } private def Dictionary properties() {