Convert users from submit() to commit() 54/73754/6
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 4 Jul 2018 15:06:27 +0000 (17:06 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 4 Jul 2018 19:34:45 +0000 (21:34 +0200)
This gets rid of CheckedFutures and allows us to use FluentFuture
features.

Change-Id: Ie95bb9ce0d0bb6195f9c6355e644a8563165a953
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
14 files changed:
netconf/mdsal-netconf-monitoring/src/main/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriter.java
netconf/mdsal-netconf-monitoring/src/test/java/org/opendaylight/controller/config/yang/netconf/mdsal/monitoring/MonitoringToMdsalWriterTest.java
netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java
netconf/mdsal-netconf-yang-library/src/test/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriterTest.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/impl/NetconfCommandsImpl.java
netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteAdapter.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTestAdapter.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/impl/NetconfConnectorFactoryImpl.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java
netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java
netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java

index 66079b9ed8c807c3bd44e4982068d13c69551ab7..27d0280d2629134dedcc32c4f7c89371d4d3e503 100644 (file)
@@ -10,14 +10,13 @@ package org.opendaylight.controller.config.yang.netconf.mdsal.monitoring;
 
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Collection;
 import java.util.function.Consumer;
-import javax.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
@@ -103,9 +102,9 @@ public final class MonitoringToMdsalWriter implements AutoCloseable, NetconfMoni
         Preconditions.checkState(dataBroker != null);
         final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
         txUser.accept(tx);
-        Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+        tx.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(@Nullable final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 LOG.debug("Netconf state updated successfully");
             }
 
index 5304743c8c8a5cfb054e4d697b05f248368015ed..a200940d7442e46f677c75a4d8fd32cc6ed192a1 100644 (file)
@@ -15,7 +15,6 @@ import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.inOrder;
 import static org.mockito.Mockito.verify;
 
-import com.google.common.util.concurrent.Futures;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.Before;
@@ -26,6 +25,7 @@ import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.NetconfState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Capabilities;
@@ -35,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.mon
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.Sessions;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.Session;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.rev101004.netconf.state.sessions.SessionBuilder;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 public class MonitoringToMdsalWriterTest {
@@ -42,6 +43,9 @@ public class MonitoringToMdsalWriterTest {
     private static final InstanceIdentifier<NetconfState> INSTANCE_IDENTIFIER =
             InstanceIdentifier.create(NetconfState.class);
 
+    @Mock
+    private CommitInfo info;
+
     @Mock
     private NetconfMonitoringService monitoring;
     @Mock
@@ -62,7 +66,7 @@ public class MonitoringToMdsalWriterTest {
 
         doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
         doNothing().when(writeTransaction).delete(eq(LogicalDatastoreType.OPERATIONAL), any());
-        doReturn(Futures.immediateCheckedFuture(null)).when(writeTransaction).submit();
+        doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit();
 
         writer = new MonitoringToMdsalWriter(monitoring, dataBroker);
     }
@@ -73,7 +77,7 @@ public class MonitoringToMdsalWriterTest {
         writer.close();
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).delete(LogicalDatastoreType.OPERATIONAL, INSTANCE_IDENTIFIER);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
@@ -85,7 +89,7 @@ public class MonitoringToMdsalWriterTest {
         writer.onCapabilitiesChanged(capabilities);
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, capabilitiesId, capabilities);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
@@ -97,7 +101,7 @@ public class MonitoringToMdsalWriterTest {
         writer.onSchemasChanged(schemas);
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, schemasId, schemas);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
@@ -113,7 +117,7 @@ public class MonitoringToMdsalWriterTest {
         writer.onSessionStarted(session);
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id, session);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
@@ -129,7 +133,7 @@ public class MonitoringToMdsalWriterTest {
         writer.onSessionEnded(session);
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).delete(LogicalDatastoreType.OPERATIONAL, id);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
@@ -156,7 +160,7 @@ public class MonitoringToMdsalWriterTest {
         InOrder inOrder = inOrder(writeTransaction);
         inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id1, session1);
         inOrder.verify(writeTransaction).put(LogicalDatastoreType.OPERATIONAL, id2, session2);
-        inOrder.verify(writeTransaction).submit();
+        inOrder.verify(writeTransaction).commit();
     }
 
     @Test
index b3fc2abfb0f5cbf4e989296685e3482def04d5bf..7fa35c7365a81b631370b52adffc71ba4edcee34 100644 (file)
@@ -9,17 +9,16 @@
 package org.opendaylight.netconf.mdsal.yang.library;
 
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
-import javax.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder;
@@ -80,9 +79,9 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl
                 MODULES_STATE_INSTANCE_IDENTIFIER, newModuleState);
 
         LOG.debug("Trying to write new module-state: {}", newModuleState);
-        Futures.addCallback(tx.submit(), new FutureCallback<Void>() {
+        tx.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(@Nullable final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 LOG.debug("Modules state updated successfully");
             }
 
index ce303751bd5d9f1f2e2e0ba20251713e8214bded..296cd3b231df69e4341af59fc172d33bdec77bb4 100644 (file)
@@ -5,17 +5,16 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.mdsal.yang.library;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import com.google.common.collect.ImmutableList;
-import com.google.common.util.concurrent.Futures;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -24,6 +23,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.ModulesStateBuilder;
@@ -36,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.module.SubmoduleBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
@@ -52,6 +53,8 @@ public class SchemaServiceToMdsalWriterTest {
     private DataBroker dataBroker;
     @Mock
     private WriteTransaction writeTransaction;
+    @Mock
+    private CommitInfo info;
 
     private SchemaServiceToMdsalWriter schemaServiceToMdsalWriter;
 
@@ -61,7 +64,7 @@ public class SchemaServiceToMdsalWriterTest {
 
         when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
         doNothing().when(writeTransaction).put(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
-        when(writeTransaction.submit()).thenReturn(Futures.immediateCheckedFuture(null));
+        doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTransaction).commit();
         when(schemaService.registerSchemaContextListener(any())).thenReturn(
                 new ListenerRegistration<SchemaContextListener>() {
                     @Override
index 21d1697659ceec75c2bd7d9824e8f91efafe357b..6c330dc40ddcdea19736524daf19ae682fd5709c 100644 (file)
@@ -11,7 +11,6 @@ package org.opendaylight.netconf.console.impl;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -20,11 +19,12 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.UUID;
+import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.console.api.NetconfCommands;
 import org.opendaylight.netconf.console.utils.NetconfConsoleConstants;
 import org.opendaylight.netconf.console.utils.NetconfConsoleUtils;
@@ -162,36 +162,33 @@ public class NetconfCommandsImpl implements NetconfCommands {
         final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
         transaction.put(LogicalDatastoreType.CONFIGURATION, NetconfIidFactory.netconfNodeIid(nodeId.getValue()), node);
 
-        Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
-
+        transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 LOG.debug("NetconfNode={} created successfully", netconfNode);
             }
 
             @Override
             public void onFailure(final Throwable throwable) {
-                LOG.error("Failed to created NetconfNode={}", netconfNode);
-                throw new RuntimeException(throwable);
+                LOG.error("Failed to created NetconfNode={}", netconfNode, throwable);
             }
         }, MoreExecutors.directExecutor());
     }
 
     @Override
     public boolean disconnectDevice(final String netconfNodeId) {
-        boolean result = false;
         final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
-        InstanceIdentifier<Node> iid = NetconfIidFactory.netconfNodeIid(netconfNodeId);
+        final InstanceIdentifier<Node> iid = NetconfIidFactory.netconfNodeIid(netconfNodeId);
         transaction.delete(LogicalDatastoreType.CONFIGURATION, iid);
 
         try {
             LOG.debug("Deleting netconf node: {}", netconfNodeId);
-            transaction.submit().checkedGet();
-            result = true;
-        } catch (final TransactionCommitFailedException e) {
+            transaction.commit().get();
+            return true;
+        } catch (final InterruptedException | ExecutionException e) {
             LOG.error("Unable to remove node with Iid {}", iid, e);
+            return false;
         }
-        return result;
     }
 
     @Override
@@ -244,17 +241,15 @@ public class NetconfCommandsImpl implements NetconfCommands {
             transaction.put(LogicalDatastoreType.CONFIGURATION,
                     NetconfIidFactory.netconfNodeIid(updatedNode.getNodeId().getValue()), updatedNode);
 
-            Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
-
+            transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
                 @Override
-                public void onSuccess(final Void result) {
+                public void onSuccess(final CommitInfo result) {
                     LOG.debug("NetconfNode={} updated successfully", netconfNode);
                 }
 
                 @Override
                 public void onFailure(final Throwable throwable) {
-                    LOG.error("Failed to updated NetconfNode={}", netconfNode);
-                    throw new RuntimeException(throwable);
+                    LOG.error("Failed to updated NetconfNode={}", netconfNode, throwable);
                 }
             }, MoreExecutors.directExecutor());
 
index 0b5e6083fecbb68a59e72b6bd702b93155322dc0..8b1381e22ca89d68f1ebcfd0ee396c3933b9a1da 100644 (file)
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import javassist.ClassPool;
@@ -32,7 +33,6 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
 import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStoreFactory;
@@ -121,7 +121,7 @@ public class NetconfCommandsImplTest {
     }
 
     @Test
-    public void testListDevice() throws TimeoutException, TransactionCommitFailedException {
+    public void testListDevice() throws TimeoutException, InterruptedException, ExecutionException {
         createTopology(LogicalDatastoreType.OPERATIONAL);
 
         final Map<?, ?> map = netconfCommands.listDevices();
@@ -133,7 +133,7 @@ public class NetconfCommandsImplTest {
     }
 
     @Test
-    public void testShowDevice() throws TimeoutException, TransactionCommitFailedException {
+    public void testShowDevice() throws TimeoutException, InterruptedException, ExecutionException {
         createTopology(LogicalDatastoreType.OPERATIONAL);
 
         final Map<?, ?> mapCorrect = netconfCommands.showDevice(IP, String.valueOf(PORT));
@@ -150,12 +150,11 @@ public class NetconfCommandsImplTest {
 
         final Map<?, ?> mapId = netconfCommands.showDevice(NODE_ID);
         assertTrue(mapId.containsKey(NODE_ID));
-        assertBaseNodeAttributesImmutableList((Map) mapId.get(NODE_ID));
+        assertBaseNodeAttributesImmutableList((Map<?, ?>) mapId.get(NODE_ID));
     }
 
     @Test
-    public void testConnectDisconnectDevice()
-            throws InterruptedException, TimeoutException, TransactionCommitFailedException {
+    public void testConnectDisconnectDevice() throws InterruptedException, TimeoutException, ExecutionException {
         final NetconfNode netconfNode = new NetconfNodeBuilder()
                 .setPort(new PortNumber(7777)).setHost(HostBuilder.getDefaultInstance("10.10.1.1")).build();
 
@@ -191,7 +190,7 @@ public class NetconfCommandsImplTest {
     }
 
     @Test
-    public void testUpdateDevice() throws TimeoutException, TransactionCommitFailedException {
+    public void testUpdateDevice() throws TimeoutException, InterruptedException, ExecutionException {
         //We need both, read data from OPERATIONAL DS and update data in CONFIGURATIONAL DS
         createTopology(LogicalDatastoreType.OPERATIONAL);
         createTopology(LogicalDatastoreType.CONFIGURATION);
@@ -218,7 +217,7 @@ public class NetconfCommandsImplTest {
     }
 
     @Test
-    public void testNetconfNodeFromIp() throws TimeoutException, TransactionCommitFailedException {
+    public void testNetconfNodeFromIp() throws TimeoutException, InterruptedException, ExecutionException {
         final List<Node> nodesNotExist = NetconfConsoleUtils.getNetconfNodeFromIp(IP, dataBroker);
         assertNull(nodesNotExist);
         createTopology(LogicalDatastoreType.OPERATIONAL);
@@ -228,7 +227,7 @@ public class NetconfCommandsImplTest {
     }
 
     private void createTopology(final LogicalDatastoreType dataStoreType)
-            throws TransactionCommitFailedException, TimeoutException {
+            throws TimeoutException, InterruptedException, ExecutionException {
         final List<Node> nodes = new ArrayList<>();
         final Node node = getNetconfNode(NODE_ID, IP, PORT, CONN_STATUS, CAP_PREFIX);
         nodes.add(node);
@@ -239,7 +238,7 @@ public class NetconfCommandsImplTest {
 
         final WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
         writeTransaction.put(dataStoreType, NetconfIidFactory.NETCONF_TOPOLOGY_IID, topology);
-        writeTransaction.submit().checkedGet(2, TimeUnit.SECONDS);
+        writeTransaction.commit().get(2, TimeUnit.SECONDS);
     }
 
     private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber,
index 6fe65a21f49eb38343b53d8e9a5d194647ae08e3..a87f77c2e9da1b2dc4bc805e5a10239dcbf38818 100644 (file)
@@ -13,7 +13,6 @@ import akka.util.Timeout;
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import io.netty.util.concurrent.EventExecutor;
 import java.util.Collection;
@@ -34,6 +33,7 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
 import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
@@ -245,9 +245,9 @@ public class NetconfTopologyManager
         final WriteTransaction wtx = dataBroker.newWriteOnlyTransaction();
         initTopology(wtx, LogicalDatastoreType.CONFIGURATION);
         initTopology(wtx, LogicalDatastoreType.OPERATIONAL);
-        Futures.addCallback(wtx.submit(), new FutureCallback<Void>() {
+        wtx.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 LOG.debug("topology initialization successful");
             }
 
index 250b893099cde703440be130d0058c16b969a658..c798673eefcd310e86d4cd971d60a71056a164ad 100644 (file)
@@ -5,20 +5,18 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.topology.singleton.impl.actors;
 
 import akka.actor.ActorContext;
 import akka.actor.ActorRef;
 import akka.actor.Status.Failure;
 import akka.actor.Status.Success;
-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.MoreExecutors;
 import javax.annotation.Nonnull;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.CancelRequest;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.DeleteRequest;
@@ -45,11 +43,11 @@ class WriteAdapter {
     }
 
     private void submit(final ActorRef requester, final ActorRef self, final ActorContext context) {
-        final CheckedFuture<Void, TransactionCommitFailedException> submitFuture = tx.submit();
+        final FluentFuture<? extends CommitInfo> submitFuture = tx.commit();
         context.stop(self);
-        Futures.addCallback(submitFuture, new FutureCallback<Void>() {
+        submitFuture.addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 requester.tell(new Success(null), self);
             }
 
index 5249788b4d85dae7330afc5eab3d0f551704965a..382fa98ef94f035f1e97e464eb51b95512338632 100644 (file)
@@ -23,7 +23,6 @@ import static org.mockito.MockitoAnnotations.initMocks;
 import akka.actor.ActorSystem;
 import akka.util.Timeout;
 import com.google.common.net.InetAddresses;
-import com.google.common.util.concurrent.Futures;
 import io.netty.util.concurrent.EventExecutor;
 import java.net.InetSocketAddress;
 import java.util.concurrent.ExecutorService;
@@ -39,6 +38,7 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
 import org.opendaylight.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.netconf.client.NetconfClientSessionListener;
@@ -63,6 +63,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import scala.concurrent.duration.Duration;
 
 public class RemoteDeviceConnectorImplTest {
@@ -71,6 +72,9 @@ public class RemoteDeviceConnectorImplTest {
     private static final String TOPOLOGY_ID = "testing-topology";
     private static final Timeout TIMEOUT = new Timeout(Duration.create(5, "seconds"));
 
+    @Mock
+    private CommitInfo info;
+
     @Mock
     private DataBroker dataBroker;
 
@@ -118,7 +122,7 @@ public class RemoteDeviceConnectorImplTest {
         doReturn(writeTx).when(txChain).newWriteOnlyTransaction();
         doNothing().when(writeTx).merge(eq(LogicalDatastoreType.OPERATIONAL), any(), any());
         doReturn("Some object").when(writeTx).getIdentifier();
-        doReturn(Futures.immediateCheckedFuture(null)).when(writeTx).submit();
+        doReturn(FluentFutures.immediateFluentFuture(info)).when(writeTx).commit();
         builder = new NetconfTopologySetup.NetconfTopologySetupBuilder();
         builder.setDataBroker(dataBroker);
         builder.setRpcProviderRegistry(rpcProviderRegistry);
index 14fc1d7b42d95535568aa372cf0c296fc95c1a92..363ae63e4a37532fda97e1986322e1c1fa1cc12c 100644 (file)
@@ -8,6 +8,8 @@
 package org.opendaylight.netconf.topology.singleton.impl.actors;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -21,16 +23,17 @@ import akka.actor.ActorSystem;
 import akka.actor.Status.Failure;
 import akka.actor.Status.Success;
 import akka.testkit.TestProbe;
-import com.google.common.util.concurrent.Futures;
 import org.junit.Test;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.topology.singleton.messages.NormalizedNodeMessage;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.CancelRequest;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.DeleteRequest;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.MergeRequest;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.PutRequest;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.SubmitRequest;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
@@ -73,7 +76,7 @@ public abstract class WriteTransactionActorTestAdapter {
     }
 
     @Test
-    public void testCancel() throws Exception {
+    public void testCancel() {
         when(mockWriteTx.cancel()).thenReturn(true);
         actorRef.tell(new CancelRequest(), probe.ref());
 
@@ -82,29 +85,29 @@ public abstract class WriteTransactionActorTestAdapter {
     }
 
     @Test
-    public void testSubmit() throws Exception {
-        when(mockWriteTx.submit()).thenReturn(Futures.immediateCheckedFuture(null));
+    public void testSubmit() {
+        doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(mockWriteTx).commit();
         actorRef.tell(new SubmitRequest(), probe.ref());
 
-        verify(mockWriteTx).submit();
+        verify(mockWriteTx).commit();
         probe.expectMsgClass(Success.class);
     }
 
     @Test
-    public void testSubmitFail() throws Exception {
+    public void testSubmitFail() {
         final RpcError rpcError =
                 RpcResultBuilder.newError(RpcError.ErrorType.APPLICATION, "fail", "fail");
         final TransactionCommitFailedException cause = new TransactionCommitFailedException("fail", rpcError);
-        when(mockWriteTx.submit()).thenReturn(Futures.immediateFailedCheckedFuture(cause));
+        when(mockWriteTx.commit()).thenReturn(FluentFutures.immediateFailedFluentFuture(cause));
         actorRef.tell(new SubmitRequest(), probe.ref());
 
-        verify(mockWriteTx).submit();
+        verify(mockWriteTx).commit();
         final Failure response = probe.expectMsgClass(Failure.class);
         assertEquals(cause, response.cause());
     }
 
     @Test
-    public void testIdleTimeout() throws Exception {
+    public void testIdleTimeout() {
         final TestProbe testProbe = new TestProbe(system);
         testProbe.watch(actorRef);
         verify(mockWriteTx, timeout(3000)).cancel();
index f27f09eb7ec3391a3516a020b86a4805af3473c1..781eb2aff1bcdb6240f98e21965bd6479744a76e 100644 (file)
@@ -8,12 +8,12 @@
 package org.opendaylight.netconf.topology.impl;
 
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import javax.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.topology.api.NetconfConnectorFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
@@ -82,9 +82,9 @@ public class NetconfConnectorFactoryImpl implements NetconfConnectorFactory {
         final InstanceIdentifier<Node> nodePath = TOPOLOGY_PATH.child(Node.class, nodeKey);
         final WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
         transaction.put(LogicalDatastoreType.CONFIGURATION, nodePath, node);
-        Futures.addCallback(transaction.submit(), new FutureCallback<Void>() {
+        transaction.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(@Nullable final Void result) {
+            public void onSuccess(@Nullable final CommitInfo result) {
                 LOG.debug("Node {} was successfully added to the topology", instanceName);
             }
 
index a17369f144accdd5b3e9f89ead6910a7d0162d8a..86f08cd5323a461a83e5111081869e43b0de2382 100644 (file)
@@ -9,7 +9,6 @@
 package org.opendaylight.netconf.topology.impl;
 
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import io.netty.util.concurrent.EventExecutor;
 import java.util.Collection;
@@ -25,6 +24,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
@@ -87,9 +87,9 @@ public class NetconfTopologyImpl extends AbstractNetconfTopology
         final WriteTransaction wtx = dataBroker.newWriteOnlyTransaction();
         initTopology(wtx, LogicalDatastoreType.CONFIGURATION);
         initTopology(wtx, LogicalDatastoreType.OPERATIONAL);
-        Futures.addCallback(wtx.submit(), new FutureCallback<Void>() {
+        wtx.commit().addCallback(new FutureCallback<CommitInfo>() {
             @Override
-            public void onSuccess(final Void result) {
+            public void onSuccess(final CommitInfo result) {
                 LOG.debug("topology initialization successful");
             }
 
index e083b5446b059be9474d002c09ff2dc103f68d39..149d727f83d2f481dac6941cf4b0f44d7c2fb188 100644 (file)
@@ -5,11 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.topology.impl;
 
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
@@ -38,8 +38,8 @@ import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
+import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.netconf.client.NetconfClientDispatcher;
 import org.opendaylight.netconf.client.NetconfClientSessionListener;
 import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
@@ -65,6 +65,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository;
@@ -125,7 +126,7 @@ public class NetconfTopologyImplTest {
         when(dataBroker.newWriteOnlyTransaction()).thenReturn(wtx);
         doNothing().when(wtx)
                 .merge(any(LogicalDatastoreType.class), any(InstanceIdentifier.class), any(DataObject.class));
-        when(wtx.submit()).thenReturn(Futures.<Void, TransactionCommitFailedException>immediateCheckedFuture(null));
+        doReturn(FluentFutures.immediateFluentFuture(mock(CommitInfo.class))).when(wtx).commit();
         topology.init();
 
         //verify initialization of topology
index 268e705e7c35fe5735099e3fed6e3e87219f63ad..86941020eea97323f938033252edc8f62d4e1d13 100644 (file)
@@ -15,9 +15,9 @@ import java.util.Collections;
 import java.util.EnumMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
 import org.opendaylight.controller.md.sal.dom.broker.impl.SerializedDOMDataBroker;
@@ -136,9 +136,9 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory {
             tx.put(LogicalDatastoreType.OPERATIONAL, yangInstanceIdentifier, netconf);
 
             try {
-                tx.submit().checkedGet();
+                tx.commit().get();
                 LOG.debug("Netconf state updated successfully");
-            } catch (TransactionCommitFailedException e) {
+            } catch (InterruptedException | ExecutionException e) {
                 LOG.warn("Unable to update netconf state", e);
             }