Convert CursorAware APIs to FluentFuture 78/74478/6
authorTom Pantelis <tompantelis@gmail.com>
Wed, 25 Jul 2018 22:25:21 +0000 (18:25 -0400)
committerRobert Varga <nite@hq.sk>
Thu, 26 Jul 2018 17:26:14 +0000 (17:26 +0000)
Corresponding controller patch: https://git.opendaylight.org/gerrit/#/c/74478/

Change-Id: Ie7ff5318506c0d6dcb71fd5b2f205cce35c42593
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
15 files changed:
binding/mdsal-binding-api/src/main/java/org/opendaylight/mdsal/binding/api/CursorAwareWriteTransaction.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapter.java
binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMCursorAwareWriteTransactionAdapterTest.java
binding2/mdsal-binding2-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMCursorAwareWriteTransactionAdapter.java
binding2/mdsal-binding2-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/javav2/dom/adapter/impl/data/tree/BindingDOMCursorAwareWriteTransactionAdapterTest.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeCursorAwareTransaction.java
dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeReadCursor.java
dom/mdsal-dom-api/src/test/java/org/opendaylight/controller/md/sal/dom/api/AbstractDOMDataTreeServiceTestSuite.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducer.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeWriteTransaction.java
dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/ShardedDOMWriteTransactionAdapter.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeProducerSingleShardTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMDataTreeTest.java
dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/ShardedDOMTransactionChainAdapterTest.java
dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InmemoryDOMDataTreeShardWriteTransaction.java

index b47e3d46c7bb209da4c1b02af75276951f7f20a2..7c024a864b97b8201d2cf47626e8d2c9015f25af 100644 (file)
@@ -8,9 +8,11 @@
 
 package org.opendaylight.mdsal.binding.api;
 
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
@@ -36,14 +38,14 @@ public interface CursorAwareWriteTransaction extends DataTreeCursorProvider {
      * Cancels the transaction.
      *
      * <p>
-     * Transactions can only be cancelled if it was not yet submited.
+     * A transaction can only be cancelled if it has not yet been committed.
      *
      * <p>
      * Invoking cancel() on failed or already canceled will have no effect, and transaction is
      * considered cancelled.
      *
      * <p>
-     * Invoking cancel() on finished transaction (future returned by {@link #submit()} already
+     * Invoking cancel() on finished transaction (future returned by {@link #commit()} already
      * successfully completed) will always fail (return false).
      *
      * @return <tt>false</tt> if the task could not be cancelled, typically because it has already
@@ -53,11 +55,11 @@ public interface CursorAwareWriteTransaction extends DataTreeCursorProvider {
     boolean cancel();
 
     /**
-     * Submits this transaction to be asynchronously applied to update the logical data tree. The
+     * Commits this transaction to be asynchronously applied to update the logical data tree. The
      * returned CheckedFuture conveys the result of applying the data changes.
      *
      * <p>
-     * <b>Note:</b> It is strongly recommended to process the CheckedFuture result in an
+     * <b>Note:</b> It is strongly recommended to process the FluentFuture result in an
      * asynchronous manner rather than using the blocking get() method.
      *
      * <p>
@@ -69,6 +71,10 @@ public interface CursorAwareWriteTransaction extends DataTreeCursorProvider {
      * <p>
      * The transaction is marked as submitted and enqueued into the shard back-end for
      * processing.
+     *
+     * @return a FluentFuture containing the result of the commit information. The Future blocks until the commit
+     *         operation is complete. A successful commit returns nothing. On failure, the Future will fail with a
+     *         {@link TransactionCommitFailedException} or an exception derived from TransactionCommitFailedException.
      */
-    CheckedFuture<Void,TransactionCommitFailedException> submit();
+    FluentFuture<? extends @NonNull CommitInfo> commit();
 }
index c34d7456e43228b6cbce9375122aede53dfc2aa2..22ffdbff9211a9a1e0160748dfe99fadb88332c8 100644 (file)
@@ -7,12 +7,13 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.CursorAwareWriteTransaction;
 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
 import org.opendaylight.mdsal.binding.api.DataTreeWriteCursor;
-import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
@@ -41,7 +42,7 @@ public class BindingDOMCursorAwareWriteTransactionAdapter<T extends DOMDataTreeC
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> submit() {
-        return getDelegate().submit();
+    public FluentFuture<? extends @NonNull CommitInfo> commit() {
+        return getDelegate().commit();
     }
 }
index ce8be9114c963cc2a5eaff763a6d98dd0023d7c7..13f565c3b03f06597a4c98da6e01e03757e06c1d 100644 (file)
@@ -43,12 +43,12 @@ public class BindingDOMCursorAwareWriteTransactionAdapterTest {
         assertNotNull(adapter.createCursor(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
                 InstanceIdentifier.create(DataObject.class))));
 
-        doReturn(null).when(delegate).submit();
-        adapter.submit();
-        verify(delegate).submit();
+        doReturn(null).when(delegate).commit();
+        adapter.commit();
+        verify(delegate).commit();
 
         doReturn(true).when(delegate).cancel();
         assertTrue(adapter.cancel());
         verify(delegate).cancel();
     }
-}
\ No newline at end of file
+}
index 0bffaa5763b6b553fa72f36b2a54c0c22d62c8cc..e39cb5430fe48200d883c64a8a7799e8ce8eaec6 100644 (file)
@@ -56,7 +56,7 @@ public class BindingDOMCursorAwareWriteTransactionAdapter<T extends DOMDataTreeC
 
     @Override
     public <V extends TreeNode> void submit(final BiConsumer<TransactionCommitFailedException, V> callback) {
-        delegate.submit();
+        delegate.commit();
     }
 }
 
index 80aec4ea3d7646ba1dfb0c798eee3e4c9be97c3b..1aa258ce1a53b167efaca6e2782c74700fa56598 100644 (file)
@@ -55,13 +55,13 @@ public class BindingDOMCursorAwareWriteTransactionAdapterTest {
         final DataTreeWriteCursor cursor = adapter.createCursor(dti);
         assertNotNull(cursor);
 
-        doReturn(null).when(delegate).submit();
+        doReturn(null).when(delegate).commit();
         final BiConsumer callback = mock(BiConsumer.class);
         adapter.submit(callback);
-        verify(delegate).submit();
+        verify(delegate).commit();
 
         doReturn(true).when(delegate).cancel();
         assertTrue(adapter.cancel());
         verify(delegate).cancel();
     }
-}
\ No newline at end of file
+}
index 351dd7394e4d1bef565fe91c5d2a500497ff65d0..1c449fdecfb067c6ac71892945b8df0393b2e167 100644 (file)
@@ -7,9 +7,11 @@
  */
 package org.opendaylight.mdsal.dom.api;
 
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
 import org.opendaylight.yangtools.concepts.Identifiable;
 
@@ -31,11 +33,11 @@ public interface DOMDataTreeCursorAwareTransaction extends DOMDataTreeCursorProv
 
     /**
      * Cancels the transaction.
-     * Transactions can only be cancelled if it was not yet submited.
-     * Invoking cancel() on failed or already canceled will have no effect, and transaction is
+     * A transaction can only be cancelled if it was not yet committed.
+     * Invoking cancel() on failed or already canceled will have no effect, and transaction is
      * considered cancelled.
-     * Invoking cancel() on finished transaction (future returned by {@link #submit()} already
-     * successfully completed) will always fail (return false).
+     * Invoking cancel() on a finished transaction (future returned by {@link #commit()} already
+     * successfully completed will always fail (return false).
      *
      * @return <tt>false</tt> if the task could not be cancelled, typically because it has already
      *         completed normally; <tt>true</tt> otherwise
@@ -57,7 +59,9 @@ public interface DOMDataTreeCursorAwareTransaction extends DOMDataTreeCursorProv
      * The transaction is marked as submitted and enqueued into the shard back-end for
      * processing.
      *
-     * @return Checked future informing of success/failure
+     * @return a FluentFuture containing the result of the commit information. The Future blocks until the commit
+     *         operation is complete. A successful commit returns nothing. On failure, the Future will fail with a
+     *         {@link TransactionCommitFailedException} or an exception derived from TransactionCommitFailedException.
      */
-    CheckedFuture<Void, TransactionCommitFailedException> submit();
+    FluentFuture<? extends @NonNull CommitInfo> commit();
 }
index b675f719175f28f177bc0ad50659bd23c3f97628..3f625a859deb330447ed37bf650e9bb6fab954e5 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.mdsal.dom.api;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import org.opendaylight.mdsal.common.api.ReadFailedException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
@@ -20,10 +20,18 @@ public interface DOMDataTreeReadCursor extends DOMDataTreeCursor {
      * Read a particular node from the snapshot.
      *
      * @param child Child identifier
-     * @return Optional result encapsulating the presence and value of the node
+     * @return a FluentFuture containing the result of the read. Once complete:
+     *         <ul>
+     *         <li>If the data at the supplied path exists, the Future returns an Optional object
+     *         containing the data.</li>
+     *         <li>If the data at the supplied path does not exist, the Future returns
+     *         Optional#empty().</li>
+     *         <li>If the read of the data fails, the Future will fail with a
+     *         {@link ReadFailedException} or an exception derived from ReadFailedException.</li>
+     *         </ul>
      * @throws IllegalArgumentException when specified path does not identify a valid child.
      */
-    CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> readNode(@Nonnull PathArgument child);
+    FluentFuture<Optional<NormalizedNode<?, ?>>> readNode(@Nonnull PathArgument child);
 
     /**
      * Checks if data is available in the logical data store located at provided path.
@@ -36,13 +44,14 @@ public interface DOMDataTreeReadCursor extends DOMDataTreeCursor {
      * <code>readNode</code>
      *
      * @param child Child identifier
-     * @return a CheckFuture containing the result of the check.
+     * @return a FluentFuture containing the result of the read. Once complete:
      *         <ul>
      *         <li>If the data at the supplied path exists, the Future returns a Boolean whose value
-     *         is true, false otherwise</li> <li>If checking for the data fails, the Future will
+     *         is true, false otherwise</li>
+     *          <li>If checking for the data fails, the Future will
      *         fail with a {@link ReadFailedException} or an exception derived from
      *         ReadFailedException.</li>
      *         </ul>
      */
-    CheckedFuture<Boolean, ReadFailedException> exists(@Nonnull PathArgument child);
+    FluentFuture<Boolean> exists(@Nonnull PathArgument child);
 }
index 33c9efbec5afa63e1d7a9389f71d075720f4ea54..60631c78bc7dd4d0873293d1c757878a8cdc7def 100644 (file)
@@ -75,7 +75,7 @@ public abstract class AbstractDOMDataTreeServiceTestSuite {
             cursor.write(UNORDERED_CONTAINER_IID.getLastPathArgument(), ImmutableContainerNodeBuilder.create().build());
             cursor.close();
 
-            final ListenableFuture<Void> f = tx.submit();
+            final ListenableFuture<?> f = tx.commit();
             assertNotNull(f);
 
             f.get();
index a7f3f6d2b15c986026a9226b277dd16b31f6599a..e842e433fd2c1a9e43f9c8d57e0a060e53735a33 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 import javax.annotation.concurrent.GuardedBy;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeListener;
@@ -251,7 +252,7 @@ class ShardedDOMDataTreeProducer implements DOMDataTreeProducer {
     private void transactionSuccessful(final ShardedDOMDataTreeWriteTransaction tx) {
         LOG.debug("Transaction {} completed successfully", tx.getIdentifier());
 
-        tx.onTransactionSuccess(null);
+        tx.onTransactionSuccess(CommitInfo.empty());
         transactionCompleted(tx);
     }
 
index 2d95022888d0d476172d08d9c01bc799807fd6c1..ed338cf10cb52da67142fa68cb44e135ebf2faeb 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.mdsal.dom.broker;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -26,7 +26,8 @@ import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import javax.annotation.concurrent.GuardedBy;
 import javax.annotation.concurrent.NotThreadSafe;
-import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
@@ -39,8 +40,6 @@ import org.slf4j.LoggerFactory;
 @NotThreadSafe
 final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAwareTransaction {
     private static final Logger LOG = LoggerFactory.getLogger(ShardedDOMDataTreeWriteTransaction.class);
-    private static final TransactionCommitFailedExceptionMapper SUBMIT_FAILED_MAPPER =
-            TransactionCommitFailedExceptionMapper.create("submit");
     private static final AtomicLong COUNTER = new AtomicLong();
 
     private final Map<DOMDataTreeIdentifier, DOMDataTreeShardWriteTransaction> transactions;
@@ -48,9 +47,7 @@ final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAware
     private final ProducerLayout layout;
     private final String identifier;
 
-    private final SettableFuture<Void> future = SettableFuture.create();
-    private final CheckedFuture<Void, TransactionCommitFailedException> submitFuture =
-            Futures.makeChecked(future, SUBMIT_FAILED_MAPPER);
+    private final SettableFuture<CommitInfo> future = SettableFuture.create();
 
     @GuardedBy("this")
     private boolean closed =  false;
@@ -122,12 +119,12 @@ final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAware
     }
 
     @Override
-    public synchronized CheckedFuture<Void, TransactionCommitFailedException> submit() {
+    public synchronized FluentFuture<? extends @NonNull CommitInfo> commit() {
         Preconditions.checkState(!closed, "Transaction %s is already closed", identifier);
         Preconditions.checkState(openCursor == null, "Cannot submit transaction while there is a cursor open");
 
         producer.transactionSubmitted(this);
-        return submitFuture;
+        return future;
     }
 
     void doSubmit(final Consumer<ShardedDOMDataTreeWriteTransaction> success,
@@ -165,8 +162,8 @@ final class ShardedDOMDataTreeWriteTransaction implements DOMDataTreeCursorAware
         }, MoreExecutors.directExecutor());
     }
 
-    void onTransactionSuccess(final Void result) {
-        future.set(result);
+    void onTransactionSuccess(final CommitInfo commitInfo) {
+        future.set(commitInfo);
     }
 
     void onTransactionFailure(final Throwable throwable) {
index d4ec4c0e91c8f1288798f0853bf4287e9f66a94c..594de1565beb7c78d094ca1f64a653ed066be513 100644 (file)
@@ -81,9 +81,9 @@ public class ShardedDOMWriteTransactionAdapter implements DOMDataTreeWriteTransa
         }
         // First we need to close cursors
         cursorMap.values().forEach(DOMDataTreeWriteCursor::close);
-        final FluentFuture<List<Void>> aggregatedSubmit = FluentFuture.from(Futures.allAsList(
-                transactionMap.get(LogicalDatastoreType.CONFIGURATION).submit(),
-                transactionMap.get(LogicalDatastoreType.OPERATIONAL).submit()));
+        final FluentFuture<List<CommitInfo>> aggregatedSubmit = FluentFuture.from(Futures.allAsList(
+                transactionMap.get(LogicalDatastoreType.CONFIGURATION).commit(),
+                transactionMap.get(LogicalDatastoreType.OPERATIONAL).commit()));
 
         // Now we can close producers and mark transaction as finished
         closeProducers();
index 77e83b7b2ffa3e278bea6660bcdfc9fac694d857..54df5e99ab668ac8e6b8a88800be6fb289356ac5 100644 (file)
@@ -107,7 +107,7 @@ public class ShardedDOMDataTreeProducerSingleShardTest {
     @Test
     public void closeWithTxSubmitted() throws DOMDataTreeProducerException {
         final DOMDataTreeCursorAwareTransaction tx = producer.createTransaction(false);
-        tx.submit();
+        tx.commit();
         producer.close();
     }
 
@@ -126,7 +126,7 @@ public class ShardedDOMDataTreeProducerSingleShardTest {
 
     @Test
     public void allocateChildProducerWithTxSubmmited() {
-        producer.createTransaction(false).submit();
+        producer.createTransaction(false).commit();
         final DOMDataTreeProducer childProducer = producer.createProducer(SUBTREES_TEST);
         assertNotNull(childProducer);
     }
@@ -141,7 +141,7 @@ public class ShardedDOMDataTreeProducerSingleShardTest {
 
     @Test
     public void allocateTxWithTxSubmitted() {
-        producer.createTransaction(false).submit();
+        producer.createTransaction(false).commit();
         producer.createTransaction(false);
     }
 
index d6b4b8c3b4eb59c32038df0274d04346f5b01924..cc488636df5e34716cc93d2a5b6e278011cbdc89 100644 (file)
@@ -168,14 +168,14 @@ public class ShardedDOMDataTreeTest {
         cursor.write(TEST_ID.getRootIdentifier().getLastPathArgument(), crossShardContainer);
 
         try {
-            tx.submit().checkedGet();
+            tx.commit().get();
             fail("There's still an open cursor");
         } catch (final IllegalStateException e) {
             assertTrue(e.getMessage().contains("cursor open"));
         }
 
         cursor.close();
-        tx.submit().get();
+        tx.commit().get();
 
         tx = producer.createTransaction(false);
         cursor = tx.createCursor(TEST_ID);
@@ -183,7 +183,7 @@ public class ShardedDOMDataTreeTest {
 
         cursor.delete(TestModel.INNER_CONTAINER_PATH.getLastPathArgument());
         cursor.close();
-        tx.submit().get();
+        tx.commit().get();
 
         verify(mockedDataTreeListener, timeout(1000).times(3)).onDataTreeChanged(captorForChanges.capture(),
                 captorForSubtrees.capture());
@@ -224,7 +224,7 @@ public class ShardedDOMDataTreeTest {
         cursor.write(TEST_ID.getRootIdentifier().getLastPathArgument(), crossShardContainer);
 
         cursor.close();
-        tx.submit().get();
+        tx.commit().get();
 
         tx = producer.createTransaction(false);
         cursor = tx.createCursor(TEST_ID);
@@ -232,7 +232,7 @@ public class ShardedDOMDataTreeTest {
 
         cursor.delete(TestModel.INNER_CONTAINER_PATH.getLastPathArgument());
         cursor.close();
-        tx.submit().get();
+        tx.commit().get();
 
         verify(mockedDataTreeListener, timeout(5000).times(3)).onDataTreeChanged(captorForChanges.capture(),
                 captorForSubtrees.capture());
@@ -271,9 +271,9 @@ public class ShardedDOMDataTreeTest {
 
         cursor.write(new NodeIdentifier(TestModel.INNER_LIST_QNAME), innerList);
         cursor.close();
-        tx.submit().get();
+        tx.commit().get();
 
-        final ArrayList<ListenableFuture<Void>> futures = new ArrayList<>();
+        final ArrayList<ListenableFuture<?>> futures = new ArrayList<>();
         for (int i = 0; i < 1000; i++) {
             final Collection<MapEntryNode> innerListMapEntries = createInnerListMapEntries(1000, "run-" + i);
             for (final MapEntryNode innerListMapEntry : innerListMapEntries) {
@@ -283,7 +283,7 @@ public class ShardedDOMDataTreeTest {
                                 oid1.node(new NodeIdentifier(TestModel.INNER_LIST_QNAME))));
                 cursor1.write(innerListMapEntry.getIdentifier(), innerListMapEntry);
                 cursor1.close();
-                futures.add(tx1.submit());
+                futures.add(tx1.commit());
             }
         }
 
@@ -414,7 +414,7 @@ public class ShardedDOMDataTreeTest {
         cursor.write(TestModel.TEST_PATH.getLastPathArgument(), createCrossShardContainer2());
         cursor.close();
 
-        tx.submit().get();
+        tx.commit().get();
 
         final DOMDataTreeListener listener = mock(DOMDataTreeListener.class);
         doNothing().when(listener).onDataTreeChanged(any(), any());
index 96640a7d4b60d347284611073399f90e0c2ddbcd..3b3e7da7afc2229c6071b2eb73b91b64da238aa0 100644 (file)
@@ -66,7 +66,7 @@ public class ShardedDOMTransactionChainAdapterTest {
         verify(cursor).delete(any());
 
         doNothing().when(cursor).close();
-        doReturn(Futures.immediateCheckedFuture(null)).when(transaction).submit();
+        doReturn(Futures.immediateCheckedFuture(null)).when(transaction).commit();
         doReturn(true).when(transaction).cancel();
         assertTrue(writeTransaction.cancel());
         transactionChainAdapter.closeWriteTransaction(FluentFutures.immediateNullFluentFuture());
index 1849dc317f32265a7c6aa8ca908104f46b299681..8b3eddaaacc24c0a796a0304ef3ef40f37e1c0fa 100644 (file)
@@ -9,7 +9,6 @@
 package org.opendaylight.mdsal.dom.store.inmemory;
 
 import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import java.util.ArrayList;
@@ -17,7 +16,6 @@ import java.util.Iterator;
 import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteCursor;
 import org.opendaylight.mdsal.dom.spi.shard.DOMDataTreeShardWriteTransaction;
@@ -145,14 +143,6 @@ class InmemoryDOMDataTreeShardWriteTransaction implements DOMDataTreeShardWriteT
         return relative.get();
     }
 
-    public CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> read(final YangInstanceIdentifier path) {
-        throw new UnsupportedOperationException("Not implemented yet");
-    }
-
-    public CheckedFuture<Boolean, ReadFailedException> exists(final YangInstanceIdentifier path) {
-        throw new UnsupportedOperationException("Not implemented yet");
-    }
-
     @Override
     public void close() {
         Preconditions.checkState(!finished, "Attempting to close an already finished transaction.");