+package class SalCompatibilityProvider implements BindingAwareProvider {
+
+ private val ComponentActivator activator;
+
+ new(ComponentActivator cmpAct) {
+ activator = cmpAct;
+ }
+
+ override getFunctionality() {
+ // Noop
+ }
+
+ override getImplementations() {
+ // Noop
+ }
+
+
+ override onSessionInitialized(ConsumerContext session) {
+ // Noop
+ }
+
+
+ override onSessionInitiated(ProviderContext session) {
+ val it = activator
+ val subscribe = session.getSALService(NotificationService)
+
+ // Registration of Flow Service
+ flow.delegate = session.getRpcService(SalFlowService)
+ flow.dataBrokerService = session.getSALService(DataBrokerService);
+ subscribe.registerNotificationListener(flow);
+
+ // Data Packet Service
+ subscribe.registerNotificationListener(inventory);
+ dataPacketService.delegate = session.getRpcService(PacketProcessingService)
+
+ // Inventory Service
+ inventory.dataService = session.getSALService(DataBrokerService);
+ inventory.flowStatisticsService = session.getRpcService(OpendaylightFlowStatisticsService);
+ inventory.flowTableStatisticsService = session.getRpcService(OpendaylightFlowTableStatisticsService);
+ 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)
+ }
+}