Remove AsyncWriteTransaction.submit() impls 81/71581/2
authorTom Pantelis <tompantelis@gmail.com>
Mon, 30 Apr 2018 14:12:35 +0000 (10:12 -0400)
committerTom Pantelis <tompantelis@gmail.com>
Wed, 16 May 2018 16:27:08 +0000 (12:27 -0400)
The submit() method is now defaulted in the interface
so implementations don't need to implement it.

Change-Id: I15916f53797552d165c61b9f5b637017f863011c
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/NonSubmitCancelableReadWriteTransaction.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/infra/NonSubmitCancelableWriteTransaction.java
mdsalutil/mdsalutil-testutils/src/main/java/org/opendaylight/genius/datastoreutils/testutils/DataBrokerFailuresImpl.java
mdsalutil/mdsalutil-testutils/src/test/java/org/opendaylight/genius/datastoreutils/testutils/tests/DataBrokerFailuresTest.java

index 2fc781a842e0fe77de99f217b31c115bec141069..fe3d07ab7edf55b67a32a61b62c1d120051b9e91 100644 (file)
@@ -7,11 +7,9 @@
  */
 package org.opendaylight.genius.infra;
 
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FluentFuture;
 import org.opendaylight.controller.md.sal.binding.api.ForwardingReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 
 /**
@@ -31,11 +29,6 @@ class NonSubmitCancelableReadWriteTransaction extends ForwardingReadWriteTransac
         throw new UnsupportedOperationException("cancel() cannot be used inside a Managed[New]TransactionRunner");
     }
 
-    @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-        throw new UnsupportedOperationException("submit() cannot be used inside a Managed[New]TransactionRunner");
-    }
-
     @Override
     public FluentFuture<? extends CommitInfo> commit() {
         throw new UnsupportedOperationException("commit() cannot be used inside a Managed[New]TransactionRunner");
index 24b4efab2a81ce2e107ad451c80d0c3876249947..a3d4e0d65f0d4bb926e05b7b465ec11ba353c86a 100644 (file)
@@ -7,11 +7,9 @@
  */
 package org.opendaylight.genius.infra;
 
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FluentFuture;
 import org.opendaylight.controller.md.sal.binding.api.ForwardingWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 
 /**
@@ -36,11 +34,6 @@ class NonSubmitCancelableWriteTransaction extends ForwardingWriteTransaction {
         throw new UnsupportedOperationException("cancel() cannot be used inside a Managed[New]TransactionRunner");
     }
 
-    @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-        throw new UnsupportedOperationException("submit() cannot be used inside a Managed[New]TransactionRunner");
-    }
-
     @Override
     public FluentFuture<? extends CommitInfo> commit() {
         throw new UnsupportedOperationException("commit() cannot be used inside a Managed[New]TransactionRunner");
index 9ece34a28593d1c0d0b581616b36b3328f970ede..264295e9bc08ec9f9d8dd0099889f5391444f5bc 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.datastoreutils.testutils;
 
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
 import java.util.Objects;
@@ -33,7 +32,6 @@ import org.slf4j.LoggerFactory;
  *
  * @author Michael Vorburger.ch
  */
-@SuppressWarnings("deprecation")
 public class DataBrokerFailuresImpl extends ForwardingDataBroker implements DataBrokerFailures {
 
     private static final Logger LOG = LoggerFactory.getLogger(DataBrokerFailuresImpl.class);
@@ -87,23 +85,6 @@ public class DataBrokerFailuresImpl extends ForwardingDataBroker implements Data
     @Override
     public ReadWriteTransaction newReadWriteTransaction() {
         return new ForwardingReadWriteTransaction(delegate.newReadWriteTransaction()) {
-            @Override
-            public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-                update();
-                if (submitException == null) {
-                    return super.submit();
-                } else {
-                    if (submitAndThrowException) {
-                        try {
-                            super.submit().get();
-                        } catch (InterruptedException | ExecutionException e) {
-                            LOG.warn("Exception while waiting for submitted transaction", e);
-                        }
-                    }
-                    return Futures.immediateFailedCheckedFuture(submitException);
-                }
-            }
-
             @Override
             public FluentFuture<? extends CommitInfo> commit() {
                 update();
@@ -126,23 +107,6 @@ public class DataBrokerFailuresImpl extends ForwardingDataBroker implements Data
     @Override
     public WriteTransaction newWriteOnlyTransaction() {
         return new ForwardingWriteTransaction(delegate.newWriteOnlyTransaction()) {
-            @Override
-            public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-                update();
-                if (submitException == null) {
-                    return super.submit();
-                } else {
-                    if (submitAndThrowException) {
-                        try {
-                            super.submit().get();
-                        } catch (InterruptedException | ExecutionException e) {
-                            LOG.warn("Exception while waiting for submitted transaction", e);
-                        }
-                    }
-                    return Futures.immediateFailedCheckedFuture(submitException);
-                }
-            }
-
             @Override
             public FluentFuture<? extends CommitInfo> commit() {
                 update();
index be1fdfb0477bfa3e1e8970193d72a107fba9da68..49d43260dbf578e9d180d6675883f9b9d6eff151 100644 (file)
@@ -7,11 +7,16 @@
  */
 package org.opendaylight.genius.datastoreutils.testutils.tests;
 
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.junit.runners.MethodSorters.NAME_ASCENDING;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 import javax.inject.Inject;
+import org.junit.Before;
 import org.junit.FixMethodOrder;
 import org.junit.Rule;
 import org.junit.Test;
@@ -41,8 +46,13 @@ public class DataBrokerFailuresTest {
     @Inject DataBrokerFailures dbFailures;
     @Inject DataBroker dataBroker;
 
+    @Before
+    public void setup() {
+
+    }
+
     @Test
-    public void testFailReadWriteTransactionSubmit() throws TransactionCommitFailedException {
+    public void testFailReadWriteTransactionSubmit() throws TimeoutException, InterruptedException {
         dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
         checkSubmitFails();
         // Now make sure that it still fails, and not just once:
@@ -51,52 +61,63 @@ public class DataBrokerFailuresTest {
         checkSubmitFails();
     }
 
-    private void checkSubmitFails() {
+    private void checkSubmitFails() throws TimeoutException, InterruptedException {
         try {
-            dataBroker.newReadWriteTransaction().submit().checkedGet();
+            dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
             fail("This should have lead to a TransactionCommitFailedException!");
-        } catch (TransactionCommitFailedException e) {
-            // as expected!
+        } catch (ExecutionException e) {
+            assertTrue("Expected TransactionCommitFailedException",
+                    e.getCause() instanceof TransactionCommitFailedException);
         }
     }
 
     @Test
-    public void testFailReadWriteTransactionSubmitNext() throws TransactionCommitFailedException {
+    public void testFailReadWriteTransactionSubmitNext()
+            throws TimeoutException, InterruptedException, ExecutionException {
         // This must pass (the failSubmits from previous test cannot affect this)
         // (It's a completely new instance of DataBroker & DataBrokerFailures anyways, but just to be to sure.)
-        dataBroker.newReadWriteTransaction().submit().checkedGet();
+        dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
     }
 
     @Test
-    public void testFailTwoReadWriteTransactionSubmit() throws TransactionCommitFailedException {
+    public void testFailTwoReadWriteTransactionSubmit()
+            throws TimeoutException, InterruptedException, ExecutionException {
         dbFailures.failSubmits(2, new OptimisticLockFailedException("bada boum bam!"));
         checkSubmitFails();
         // Now make sure that it still fails again a 2nd time, and not just once:
         checkSubmitFails();
         // But now it should pass.. because we specified howManyTimes = 2 above
-        dataBroker.newReadWriteTransaction().submit().checkedGet();
-        dataBroker.newWriteOnlyTransaction().submit().checkedGet();
-        dataBroker.newReadWriteTransaction().submit().checkedGet();
+        dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
+        dataBroker.newWriteOnlyTransaction().commit().get(5, TimeUnit.SECONDS);
+        dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
     }
 
     @Test(expected = OptimisticLockFailedException.class)
-    public void testFailWriteTransactionSubmit() throws TransactionCommitFailedException {
+    @SuppressWarnings("checkstyle:AvoidHidingCauseException")
+    public void testFailWriteTransactionSubmit()
+            throws TimeoutException, InterruptedException, TransactionCommitFailedException {
         dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
-        dataBroker.newWriteOnlyTransaction().submit().checkedGet();
+        try {
+            dataBroker.newWriteOnlyTransaction().commit().get(5, TimeUnit.SECONDS);
+        } catch (ExecutionException e) {
+            assertTrue("Expected TransactionCommitFailedException",
+                    e.getCause() instanceof TransactionCommitFailedException);
+            throw (TransactionCommitFailedException)e.getCause();
+        }
     }
 
     @Test
-    public void testUnfailSubmits() throws TransactionCommitFailedException {
+    public void testUnfailSubmits() throws TimeoutException, InterruptedException, ExecutionException {
         dbFailures.failSubmits(new OptimisticLockFailedException("bada boum bam!"));
         checkSubmitFails();
         dbFailures.unfailSubmits();
-        dataBroker.newReadWriteTransaction().submit().checkedGet();
-        dataBroker.newWriteOnlyTransaction().submit().checkedGet();
-        dataBroker.newReadWriteTransaction().submit().checkedGet();
+        dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
+        dataBroker.newWriteOnlyTransaction().commit().get(5, TimeUnit.SECONDS);
+        dataBroker.newReadWriteTransaction().commit().get(5, TimeUnit.SECONDS);
     }
 
     @Test
-    public void testFailButSubmitsAnywaysReadWriteTransaction() {
+    public void testFailButSubmitsAnywaysReadWriteTransaction() throws TimeoutException, InterruptedException {
         dbFailures.failButSubmitsAnyways();
         checkSubmitFails();
     }