Merge "Use FluentFuture in DOMDataTransactionValidator"
authorJakub Morvay <jmorvay@frinx.io>
Wed, 5 Dec 2018 12:38:46 +0000 (12:38 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 5 Dec 2018 12:38:46 +0000 (12:38 +0000)
netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/DOMDataTransactionValidator.java
netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/TransactionProvider.java
netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/ValidateTest.java

index db84128c2b5bd2c03052d92d5523ca9b0e8866d8..6cc5422d3b7a5d0a1753d57f8d6a4bbd4bcbaee4 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.netconf.mdsal.connector;
 
 import com.google.common.annotations.Beta;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.FluentFuture;
 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMDataBrokerExtension;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
@@ -35,11 +35,11 @@ public interface DOMDataTransactionValidator extends DOMDataBrokerExtension {
      * @param transaction
      *     transaction to be validated
      * @return
-     *     a CheckedFuture containing the result of the validate operation. The future blocks until the validation
+     *     a FluentFuture containing the result of the validate operation. The future blocks until the validation
      *     operation is complete. A successful validate returns nothing. On failure, the Future will fail
      *     with a {@link ValidationFailedException} or an exception derived from ValidationFailedException.
      */
-    CheckedFuture<Void, ValidationFailedException> validate(DOMDataTreeWriteTransaction transaction);
+    FluentFuture<Void> validate(DOMDataTreeWriteTransaction transaction);
 
     /**
      * Failed validation of asynchronous transaction. This exception is raised and returned when transaction validation
index 32ac2cd4d81140afe7f0a066a903412c41685ec1..88840f053d3f320fb7d4e549d0f217c8773671f6 100644 (file)
@@ -20,7 +20,6 @@ import org.opendaylight.netconf.api.DocumentedException;
 import org.opendaylight.netconf.api.DocumentedException.ErrorSeverity;
 import org.opendaylight.netconf.api.DocumentedException.ErrorTag;
 import org.opendaylight.netconf.api.DocumentedException.ErrorType;
-import org.opendaylight.netconf.mdsal.connector.DOMDataTransactionValidator.ValidationFailedException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -85,8 +84,8 @@ public class TransactionProvider implements AutoCloseable {
         }
 
         try {
-            transactionValidator.validate(candidateTransaction).checkedGet();
-        } catch (final ValidationFailedException e) {
+            transactionValidator.validate(candidateTransaction).get();
+        } catch (final InterruptedException | ExecutionException e) {
             LOG.debug("Candidate transaction validation {} failed on session {}", candidateTransaction,
                 netconfSessionIdForReporting, e);
             final String cause = e.getCause() != null ? " Cause: " + e.getCause().getMessage() : "";
index a426c76b7856ed1eb8d09d1b1fd4dc3bed70f6ff..1ec8d2e2ebdd90f649cba250d48f86e250c43774 100644 (file)
@@ -20,7 +20,6 @@ import static org.opendaylight.netconf.mdsal.connector.ops.AbstractNetconfOperat
 import static org.opendaylight.netconf.mdsal.connector.ops.AbstractNetconfOperationTest.verifyResponse;
 
 import com.google.common.collect.ImmutableClassToInstanceMap;
-import com.google.common.util.concurrent.Futures;
 import org.custommonkey.xmlunit.XMLUnit;
 import org.junit.Before;
 import org.junit.Test;
@@ -31,6 +30,7 @@ import org.opendaylight.netconf.api.DocumentedException;
 import org.opendaylight.netconf.mdsal.connector.DOMDataTransactionValidator;
 import org.opendaylight.netconf.mdsal.connector.DOMDataTransactionValidator.ValidationFailedException;
 import org.opendaylight.netconf.mdsal.connector.TransactionProvider;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.w3c.dom.Document;
 
 public class ValidateTest {
@@ -46,8 +46,8 @@ public class ValidateTest {
     @Before
     public void setUp() throws Exception {
         initMocks(this);
-        doReturn(Futures.immediateCheckedFuture(null)).when(noopValidator).validate(any());
-        doReturn(Futures.immediateFailedCheckedFuture(new ValidationFailedException("invalid data")))
+        doReturn(FluentFutures.immediateNullFluentFuture()).when(noopValidator).validate(any());
+        doReturn(FluentFutures.immediateFailedFluentFuture(new ValidationFailedException("invalid data")))
             .when(failingValidator).validate(any());
         doReturn(readWriteTx).when(dataBroker).newReadWriteTransaction();
         XMLUnit.setIgnoreWhitespace(true);