bind missing Routed RPC PacketProcessingService (see OPNFLWPLUG-1059)
authorMichael Vorburger <mike@vorburger.ch>
Wed, 23 Jan 2019 21:40:42 +0000 (22:40 +0100)
committerMichael Vorburger <mike@vorburger.ch>
Wed, 1 Jul 2020 23:38:19 +0000 (01:38 +0200)
https://jira.opendaylight.org/browse/OPNFLWPLUG-1059
Signed-off-by: Michael Vorburger <mike@vorburger.ch>
src/main/java/org/opendaylight/controller/simple/InMemoryControllerModule.java
src/main/java/org/opendaylight/mdsal/simple/MdsalModule.java
src/main/java/org/opendaylight/openflowplugin/simple/OpenFlowPluginModule.java
src/test/java/org/opendaylight/mdsal/simple/test/InMemoryMdsalModuleTest.java

index f580e2f174bcedbb4d9b9249e4fb30c15cdb9e57..145fe4ae04fa87d90d70444e7adc69631721e354 100644 (file)
@@ -81,6 +81,8 @@ public class InMemoryControllerModule extends AbstractCloseableModule {
         bind(DOMMountPointService.class).to(DOMMountPointServiceImpl.class);
 
         DOMRpcRouter domRpcRouter = DOMRpcRouter.newInstance(domSchemaService);
+        bind(DOMRpcRouter.class).toInstance(domRpcRouter);
+
         DOMRpcService rpcService = domRpcRouter.getRpcService();
         bind(DOMRpcService.class).toInstance(rpcService);
 
index df7363f8fba9169ea68e3325e62bdb54a9ed421c..b8d911f490e5730a3616959b82b1f45bdce74923 100644 (file)
@@ -13,13 +13,20 @@ import javax.inject.Singleton;
 import org.opendaylight.controller.sal.core.compat.DOMDataBrokerAdapter;
 import org.opendaylight.controller.sal.core.compat.DOMNotificationServiceAdapter;
 import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcProviderServiceAdapter;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMRpcServiceAdapter;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMMountPointService;
 import org.opendaylight.mdsal.dom.api.DOMNotificationService;
+import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
+import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import org.opendaylight.mdsal.dom.broker.DOMMountPointServiceImpl;
+import org.opendaylight.mdsal.dom.broker.DOMRpcRouter;
 import org.opendaylight.mdsal.dom.broker.pingpong.PingPongDataBroker;
 import org.opendaylight.mdsal.eos.binding.api.EntityOwnershipService;
 import org.opendaylight.mdsal.eos.binding.dom.adapter.BindingDOMEntityOwnershipServiceAdapter;
@@ -96,11 +103,26 @@ public class MdsalModule extends AbstractModule {
     @Singleton ClusterSingletonServiceProvider getClusterSingletonServiceProvider(DOMEntityOwnershipService eos) {
         return new DOMClusterSingletonServiceProviderImpl(eos);
     }
-/*
+
+//    @Provides
+//    @Singleton DOMRpcService getDOMService(org.opendaylight.controller.md.sal.dom.api.DOMRpcService controllerDRSA) {
+//        return new DOMRpcServiceAdapter(controllerDRSA);
+//    }
+
+    @Provides
+    @Singleton
+    RpcConsumerRegistry getRpcConsumerRegistry(DOMRpcService domService, BindingToNormalizedNodeCodec codec) {
+        return new BindingDOMRpcServiceAdapter(domService, codec);
+    }
+
     @Provides
     @Singleton
     RpcProviderService getRpcProviderService(DOMRpcProviderService domRpcRegistry, BindingToNormalizedNodeCodec codec) {
         return new BindingDOMRpcProviderServiceAdapter(domRpcRegistry, codec);
     }
-*/
+
+    @Provides
+    @Singleton DOMRpcProviderService getDOMRpcProviderService(DOMRpcRouter domRpcRouter) {
+        return domRpcRouter.getRpcProviderService();
+    }
 }
index 3f40e3666d88a338821e20de6541c09f4a658a1d..c284f0bc65d35744662a74d2c4a949425eee3308 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.simple.ConfigReader;
 import org.opendaylight.infrautils.inject.guice.AutoWiringModule;
 import org.opendaylight.infrautils.inject.guice.GuiceClassPathBinder;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
 import org.opendaylight.mdsal.simple.PingPong;
 import org.opendaylight.openflowjava.protocol.impl.core.SwitchConnectionProviderFactoryImpl;
 import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProviderFactory;
@@ -22,6 +23,7 @@ import org.opendaylight.openflowplugin.api.openflow.configuration.ConfigurationS
 import org.opendaylight.openflowplugin.impl.ForwardingPingPongDataBroker;
 import org.opendaylight.openflowplugin.impl.PingPongDataBroker;
 import org.opendaylight.openflowplugin.impl.configuration.ConfigurationServiceFactoryImpl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.app.forwardingrules.manager.config.rev160511.ForwardingRulesManagerConfig;
 
@@ -37,6 +39,11 @@ public class OpenFlowPluginModule extends AutoWiringModule {
         bind(SwitchConnectionProviderFactory.class).to(SwitchConnectionProviderFactoryImpl.class);
     }
 
+    @Provides
+    @Singleton PacketProcessingService getPacketProcessingService(RpcConsumerRegistry rpcConsumerRegistry) {
+        return rpcConsumerRegistry.getRpcService(PacketProcessingService.class);
+    }
+
     @Provides
     @Singleton PingPongDataBroker getPingPongDataBroker(@PingPong DataBroker pingPongDataBroker) {
         return new ForwardingPingPongDataBroker(pingPongDataBroker);
index 61db4ff8b0f31efd4f3d2d67dab15bb044cb6e4f..b67a4e65f7c68a5f56d00cb213eed85838eb2677 100644 (file)
@@ -16,6 +16,8 @@ import org.opendaylight.infrautils.inject.guice.testutils.AnnotationsModule;
 import org.opendaylight.infrautils.inject.guice.testutils.GuiceRule2;
 import org.opendaylight.infrautils.simple.testutils.AbstractSimpleDistributionTest;
 import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.simple.PingPong;
 
 public class InMemoryMdsalModuleTest extends AbstractSimpleDistributionTest {
@@ -25,7 +27,11 @@ public class InMemoryMdsalModuleTest extends AbstractSimpleDistributionTest {
     @Inject @PingPong DataBroker pingPongDataBroker;
     @Inject DataBroker dataBroker;
 
+    @Inject RpcProviderService rpcProviderService;
+    @Inject RpcConsumerRegistry rpcConsumerRegistry;
+
     @Test public void testDataBroker() throws InterruptedException, ExecutionException {
         dataBroker.newReadWriteTransaction().commit().get();
     }
+
 }