bind mdsal.DataBroker
authorMichael Vorburger <mike@vorburger.ch>
Sat, 22 Dec 2018 00:09:06 +0000 (01:09 +0100)
committerMichael Vorburger <mike@vorburger.ch>
Wed, 1 Jul 2020 23:38:08 +0000 (01:38 +0200)
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/test/java/org/opendaylight/mdsal/simple/test/InMemoryMdsalModuleTest.java

index 8f7ef98b0880dad5ad5b9f06212c69a8879e35a6..f580e2f174bcedbb4d9b9249e4fb30c15cdb9e57 100644 (file)
@@ -61,6 +61,8 @@ public class InMemoryControllerModule extends AbstractCloseableModule {
         bind(DataBroker.class).toInstance(dataBroker);
 
         bindingToNormalizedNodeCodec = dataBrokerTestModule.getBindingToNormalizedNodeCodec();
+        bind(BindingToNormalizedNodeCodec.class).toInstance(bindingToNormalizedNodeCodec);
+
         PingPongDataBroker domPingPongDataBroker = new PingPongDataBroker(domDefaultDataBroker);
         bind(DOMDataBroker.class).annotatedWith(PingPong.class).toInstance(domPingPongDataBroker);
         bind(DataBroker.class).annotatedWith(PingPong.class)
index 692f615e2beaa85a804913e8a3fb79619a99ef67..83a585b47528794eb7230ddf824bfb890ec849a5 100644 (file)
@@ -12,6 +12,9 @@ import com.google.inject.Provides;
 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.dom.adapter.BindingDOMDataBrokerAdapter;
+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;
@@ -32,12 +35,12 @@ public class MdsalModule extends AbstractModule {
         // TODO This is WRONG; later need to use the DistributedEntityOwnershipService instead here!
         bind(DOMEntityOwnershipService.class).to(SimpleDOMEntityOwnershipService.class);
     }
-/*
+
     @Provides
-    @Singleton DataBroker getDataBroker(org.opendaylight.controller.md.sal.binding.api.DataBroker controllerDB) {
-        return new DataBrokerAdapter(controllerDB);
+    @Singleton DataBroker getDataBroker(DOMDataBroker domDataBroker, BindingToNormalizedNodeCodec codec) {
+        return new BindingDOMDataBrokerAdapter(domDataBroker, codec);
     }
-
+/*
     @Provides
     @Singleton
     @PingPong DataBroker getPingPongDataBroker(
@@ -45,6 +48,7 @@ public class MdsalModule extends AbstractModule {
         return new DataBrokerAdapter(controllerDB);
     }
 */
+
     @Provides
     @Singleton DOMDataBroker getDOMDataBroker(org.opendaylight.controller.md.sal.dom.api.DOMDataBroker controllerDDB) {
         return new DOMDataBrokerAdapter(controllerDDB);
@@ -57,6 +61,13 @@ public class MdsalModule extends AbstractModule {
         return new DOMDataBrokerAdapter(controllerDDB);
     }
 
+    @Provides
+    @Singleton
+    BindingToNormalizedNodeCodec getBindingToNormalizedNodeCodec(
+            org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec controllerCodec) {
+        return controllerCodec;
+    }
+
     @Provides
     @Singleton DOMNotificationService getDOMNotificationService(
             org.opendaylight.controller.md.sal.dom.api.DOMNotificationService controllerDNS) {
index 93e6dc1e688264327438e0fd3dd91526d423bd49..76946f9022b5492b3a30d0f60cc7b6ab2d3eff6e 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.mdsal.simple.test;
 
 import java.util.concurrent.ExecutionException;
-import org.junit.Ignore;
+import javax.inject.Inject;
 import org.junit.Rule;
 import org.junit.Test;
 import org.opendaylight.controller.simple.InMemoryControllerModule;
@@ -21,11 +21,9 @@ public class InMemoryMdsalModuleTest extends AbstractSimpleDistributionTest {
 
     public @Rule GuiceRule2 guice = new GuiceRule2(InMemoryControllerModule.class, AnnotationsModule.class);
 
-    // TODO @Inject
-    DataBroker dataBroker;
+    @Inject DataBroker dataBroker;
 
-    @Ignore // TODO sort out DataBrokerAdapter in MdsalModule
     @Test public void testDataBroker() throws InterruptedException, ExecutionException {
-        // dataBroker.newReadWriteTransaction().commit().get();
+        dataBroker.newReadWriteTransaction().commit().get();
     }
 }