Prefer java.time.Duration 73/101173/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 17 May 2022 09:11:48 +0000 (11:11 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 17 May 2022 09:11:48 +0000 (11:11 +0200)
Use Java 8 Duration instead of Scala's version. Actors then convert
to Scala as needed.

Change-Id: Id1301c9c67a8a301aa20aafafdbd387865c2cf3b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
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/NetconfDataTreeServiceActor.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActor.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActor.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologySetup.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActorTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActorTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTest.java

index 86dfa25e9d9327cb70664dec9f9f7d6526f59b5d..64faa511459e89bbc030efb5f87f70b7ab85a91e 100644 (file)
@@ -16,11 +16,11 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
 import io.netty.util.concurrent.EventExecutor;
+import java.time.Duration;
 import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
 import org.opendaylight.aaa.encrypt.AAAEncryptionService;
 import org.opendaylight.controller.cluster.ActorSystemProvider;
 import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
@@ -66,7 +66,6 @@ import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
 
 public class NetconfTopologyManager
         implements ClusteredDataTreeChangeListener<Node>, NetconfTopologySingletonService, AutoCloseable {
@@ -124,7 +123,7 @@ public class NetconfTopologyManager
         this.eventExecutor = requireNonNull(eventExecutor);
         this.clientDispatcher = requireNonNull(clientDispatcher);
         this.topologyId = requireNonNull(topologyId);
-        this.writeTxIdleTimeout = Duration.apply(config.getWriteTransactionIdleTimeout().toJava(), TimeUnit.SECONDS);
+        this.writeTxIdleTimeout = Duration.ofSeconds(config.getWriteTransactionIdleTimeout().toJava());
         this.mountPointService = mountPointService;
         this.encryptionService = requireNonNull(encryptionService);
         this.rpcProviderService = requireNonNull(rpcProviderService);
@@ -185,8 +184,8 @@ public class NetconfTopologyManager
         requireNonNull(netconfNode.getHost());
         requireNonNull(netconfNode.getHost().getIpAddress());
 
-        final Timeout actorResponseWaitTime = new Timeout(
-                Duration.create(netconfNode.getActorResponseWaitTime().toJava(), "seconds"));
+        final Timeout actorResponseWaitTime = Timeout.create(
+                Duration.ofSeconds(netconfNode.getActorResponseWaitTime().toJava()));
 
         final ServiceGroupIdentifier serviceGroupIdent =
                 ServiceGroupIdentifier.create(instanceIdentifier.toString());
index 7c91756b2dd5a06abfaa857e0eab75ed217723d7..923fe599c45019cee734f3fc7a219e8197cf8029 100644 (file)
@@ -12,10 +12,12 @@ import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
 import akka.actor.Status;
 import akka.actor.UntypedAbstractActor;
+import akka.util.JavaDurationConverters;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
+import java.time.Duration;
 import java.util.Optional;
 import java.util.function.Supplier;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
@@ -41,7 +43,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
 
 public final class NetconfDataTreeServiceActor extends UntypedAbstractActor {
     private static final Logger LOG = LoggerFactory.getLogger(NetconfDataTreeServiceActor.class);
@@ -53,7 +54,7 @@ public final class NetconfDataTreeServiceActor extends UntypedAbstractActor {
         this.netconfService = netconfService;
         this.idleTimeout = idleTimeout.toSeconds();
         if (this.idleTimeout > 0) {
-            context().setReceiveTimeout(idleTimeout);
+            context().setReceiveTimeout(JavaDurationConverters.asFiniteDuration(idleTimeout));
         }
     }
 
index 7e5673827227a98f727d84ec306e1b3c46ae1770..05ae2a05824b35eb114a3a9b8b29a66eedb21d3d 100644 (file)
@@ -19,6 +19,7 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.io.IOException;
+import java.time.Duration;
 import java.util.List;
 import java.util.stream.Collectors;
 import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
@@ -73,7 +74,6 @@ import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
 import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
 import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistration;
 import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry;
-import scala.concurrent.duration.Duration;
 
 public class NetconfNodeActor extends AbstractUntypedActor {
     private final Duration writeTxIdleTimeout;
index d0f45b76ba4cece5aa2b676819574cbe801afe7b..278c7deca90bd2bd5536e98c6c47315edcc0147e 100644 (file)
@@ -10,12 +10,13 @@ package org.opendaylight.netconf.topology.singleton.impl.actors;
 import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
 import akka.actor.UntypedAbstractActor;
+import akka.util.JavaDurationConverters;
+import java.time.Duration;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.ReadActorMessage;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.WriteActorMessage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
 
 public final class ReadWriteTransactionActor extends UntypedAbstractActor {
 
@@ -30,7 +31,7 @@ public final class ReadWriteTransactionActor extends UntypedAbstractActor {
         this.tx = tx;
         this.idleTimeout = idleTimeout.toSeconds();
         if (this.idleTimeout > 0) {
-            context().setReceiveTimeout(idleTimeout);
+            context().setReceiveTimeout(JavaDurationConverters.asFiniteDuration(idleTimeout));
         }
         readAdapter = new ReadAdapter(tx);
         writeAdapter = new WriteAdapter(tx);
index 3014b24e01f7bc4b070e47597390f084ae09ce9c..dd799dd58254163c6dcca5909898a036ad321cc4 100644 (file)
@@ -10,11 +10,12 @@ package org.opendaylight.netconf.topology.singleton.impl.actors;
 import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
 import akka.actor.UntypedAbstractActor;
+import akka.util.JavaDurationConverters;
+import java.time.Duration;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.WriteActorMessage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
 
 /**
  * WriteTransactionActor is an interface to device's {@link DOMDataTreeWriteTransaction} for cluster nodes.
@@ -31,7 +32,7 @@ public final class WriteTransactionActor extends UntypedAbstractActor {
         this.tx = tx;
         this.idleTimeout = idleTimeout.toSeconds();
         if (this.idleTimeout > 0) {
-            context().setReceiveTimeout(idleTimeout);
+            context().setReceiveTimeout(JavaDurationConverters.asFiniteDuration(idleTimeout));
         }
         writeAdapter = new WriteAdapter(tx);
     }
index 1c96ae323b6efdf6884873ec5c2730a853a791fd..ab199f69001d7d5d071c9f009c90dffc9d763489 100644 (file)
@@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull;
 import akka.actor.ActorSystem;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import io.netty.util.concurrent.EventExecutor;
+import java.time.Duration;
 import java.util.concurrent.ScheduledExecutorService;
 import org.opendaylight.aaa.encrypt.AAAEncryptionService;
 import org.opendaylight.mdsal.binding.api.DataBroker;
@@ -23,7 +24,6 @@ import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice;
 import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSchemas;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import scala.concurrent.duration.Duration;
 
 public class NetconfTopologySetup {
 
index a0df29f994d7b315f35a5fe5208f6c5f78f28d1d..c6b995d59d615fb9cc87526464aec3660d669188 100644 (file)
@@ -53,8 +53,8 @@ import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
 import java.io.InputStream;
 import java.net.InetSocketAddress;
+import java.time.Duration;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
 import java.util.Scanner;
@@ -130,12 +130,11 @@ import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository;
 import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer;
 import scala.concurrent.Await;
 import scala.concurrent.Future;
-import scala.concurrent.duration.Duration;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
 
-    private static final Timeout TIMEOUT = new Timeout(Duration.create(5, "seconds"));
+    private static final Timeout TIMEOUT = Timeout.create(Duration.ofSeconds(5));
     private static final RevisionSourceIdentifier SOURCE_IDENTIFIER1 = RevisionSourceIdentifier.create("yang1");
     private static final RevisionSourceIdentifier SOURCE_IDENTIFIER2 = RevisionSourceIdentifier.create("yang2");
 
@@ -199,7 +198,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
         doReturn(masterSchemaRepository).when(schemaResourceDTO).getSchemaRepository();
         doReturn(mockRegistry).when(schemaResourceDTO).getSchemaRegistry();
         final NetconfTopologySetup setup = NetconfTopologySetupBuilder.create().setActorSystem(system)
-                .setIdleTimeout(Duration.apply(1, TimeUnit.SECONDS)).setSchemaResourceDTO(schemaResourceDTO)
+                .setIdleTimeout(Duration.ofSeconds(1)).setSchemaResourceDTO(schemaResourceDTO)
                 .setBaseSchemas(BASE_SCHEMAS).build();
 
         final Props props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService);
@@ -426,7 +425,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
         doReturn(repository).when(schemaResourceDTO2).getSchemaRegistry();
         doReturn(repository).when(schemaResourceDTO2).getSchemaRepository();
         final NetconfTopologySetup setup = NetconfTopologySetupBuilder.create().setActorSystem(system)
-                .setSchemaResourceDTO(schemaResourceDTO2).setIdleTimeout(Duration.apply(1, TimeUnit.SECONDS))
+                .setSchemaResourceDTO(schemaResourceDTO2).setIdleTimeout(Duration.ofSeconds(1))
                 .setBaseSchemas(BASE_SCHEMAS).build();
         final Props props = NetconfNodeActor.props(setup, remoteDeviceId, TIMEOUT, mockMountPointService);
         ActorRef actor = TestActorRef.create(system, props, "master_messages_2");
@@ -610,7 +609,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
         doReturn(mock(DOMDataTreeReadWriteTransaction.class)).when(mockDOMDataBroker).newReadWriteTransaction();
         doReturn(mock(DOMDataTreeWriteTransaction.class)).when(mockDOMDataBroker).newWriteOnlyTransaction();
 
-        initializeMaster(Collections.emptyList());
+        initializeMaster(List.of());
         registerSlaveMountPoint();
 
         ArgumentCaptor<DOMDataBroker> domDataBrokerCaptor = ArgumentCaptor.forClass(DOMDataBroker.class);
@@ -631,7 +630,7 @@ public class NetconfNodeActorTest extends AbstractBaseSchemasTest {
 
     @Test
     public void testSlaveNewNetconfDataTreeServiceRequest() {
-        initializeMaster(Collections.emptyList());
+        initializeMaster(List.of());
         registerSlaveMountPoint();
 
         ArgumentCaptor<NetconfDataTreeService> netconfCaptor = ArgumentCaptor.forClass(NetconfDataTreeService.class);
index d928d1802ca862371d635e6e13c7635a29d60d62..9945121225791161573513bca340b8c68a4140e4 100644 (file)
@@ -24,6 +24,7 @@ import akka.testkit.javadsl.TestKit;
 import akka.util.Timeout;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import java.time.Duration;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import org.junit.AfterClass;
@@ -61,7 +62,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import scala.concurrent.duration.Duration;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class NetconfDataTreeServiceActorTest {
@@ -83,7 +83,7 @@ public class NetconfDataTreeServiceActorTest {
     @Before
     public void setUp() {
         this.actorRef = TestActorRef.create(system,
-            NetconfDataTreeServiceActor.props(netconfService, Duration.apply(2, TimeUnit.SECONDS)));
+            NetconfDataTreeServiceActor.props(netconfService, Duration.ofSeconds(2)));
         this.probe = TestProbe.apply(system);
     }
 
index f04ecc1216e0c4c535df44c2e0a7c79ec8eb9d8e..b7cd5ee2118ff278b60555a2a1c694ae8b5cef4c 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.netconf.topology.singleton.impl.actors;
 import akka.actor.ActorSystem;
 import akka.testkit.TestActorRef;
 import akka.testkit.javadsl.TestKit;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,6 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction;
-import scala.concurrent.duration.Duration;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class ReadWriteTransactionActorTest {
@@ -33,7 +32,7 @@ public class ReadWriteTransactionActorTest {
     @Before
     public void setUp() {
         TestActorRef<?> actorRef = TestActorRef.create(system, ReadWriteTransactionActor.props(mockReadWriteTx,
-                Duration.apply(2, TimeUnit.SECONDS)));
+                Duration.ofSeconds(2)));
         readTestAdapter.init(mockReadWriteTx, system, actorRef);
         writeTestAdapter.init(mockReadWriteTx, system, actorRef);
     }
index fe4017a03b5549047e417323497a5ffc9e308aef..f0bf9fe5fd2ba1af425fc42f2d0eed760c7ae938 100644 (file)
@@ -10,14 +10,13 @@ package org.opendaylight.netconf.topology.singleton.impl.actors;
 import akka.actor.ActorSystem;
 import akka.testkit.TestActorRef;
 import akka.testkit.javadsl.TestKit;
-import java.util.concurrent.TimeUnit;
+import java.time.Duration;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
-import scala.concurrent.duration.Duration;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class WriteTransactionActorTest extends WriteTransactionActorTestAdapter {
@@ -29,7 +28,7 @@ public class WriteTransactionActorTest extends WriteTransactionActorTestAdapter
     @Before
     public void setUp() {
         init(mockWriteTx, system, TestActorRef.create(system,
-                WriteTransactionActor.props(mockWriteTx, Duration.apply(2, TimeUnit.SECONDS))));
+                WriteTransactionActor.props(mockWriteTx, Duration.ofSeconds(2))));
     }
 
     @AfterClass