From 7d83179b4d81e63eeb5c1c1adf4794c6e74c5709 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 17 May 2022 11:11:48 +0200 Subject: [PATCH] Prefer java.time.Duration Use Java 8 Duration instead of Scala's version. Actors then convert to Scala as needed. Change-Id: Id1301c9c67a8a301aa20aafafdbd387865c2cf3b Signed-off-by: Robert Varga --- .../singleton/impl/NetconfTopologyManager.java | 9 ++++----- .../impl/actors/NetconfDataTreeServiceActor.java | 5 +++-- .../singleton/impl/actors/NetconfNodeActor.java | 2 +- .../impl/actors/ReadWriteTransactionActor.java | 5 +++-- .../impl/actors/WriteTransactionActor.java | 5 +++-- .../singleton/impl/utils/NetconfTopologySetup.java | 2 +- .../singleton/impl/NetconfNodeActorTest.java | 13 ++++++------- .../actors/NetconfDataTreeServiceActorTest.java | 4 ++-- .../impl/actors/ReadWriteTransactionActorTest.java | 5 ++--- .../impl/actors/WriteTransactionActorTest.java | 5 ++--- 10 files changed, 27 insertions(+), 28 deletions(-) diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java index 86dfa25e9d..64faa51145 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java @@ -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, 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()); diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActor.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActor.java index 7c91756b2d..923fe599c4 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActor.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActor.java @@ -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)); } } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java index 7e56738272..05ae2a0582 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java @@ -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; diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActor.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActor.java index d0f45b76ba..278c7deca9 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActor.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActor.java @@ -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); diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActor.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActor.java index 3014b24e01..dd799dd582 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActor.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActor.java @@ -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); } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologySetup.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologySetup.java index 1c96ae323b..ab199f6900 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologySetup.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/utils/NetconfTopologySetup.java @@ -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 { diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java index a0df29f994..c6b995d59d 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeActorTest.java @@ -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 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 netconfCaptor = ArgumentCaptor.forClass(NetconfDataTreeService.class); diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActorTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActorTest.java index d928d1802c..9945121225 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActorTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfDataTreeServiceActorTest.java @@ -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); } diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActorTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActorTest.java index f04ecc1216..b7cd5ee211 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActorTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/ReadWriteTransactionActorTest.java @@ -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); } diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTest.java index fe4017a03b..f0bf9fe5fd 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/actors/WriteTransactionActorTest.java @@ -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 -- 2.36.6