Add optional timeout parameter for backup rpc
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / GetSnapshotReplyActor.java
index 203a61233d3df2d8c95da39701f746e31e5df1a4..d1e0b5c286e609259a5837d3c4e1c08667478caf 100644 (file)
@@ -7,12 +7,13 @@
  */
 package org.opendaylight.controller.cluster.raft;
 
+import static java.util.Objects.requireNonNull;
+
 import akka.actor.ActorRef;
 import akka.actor.PoisonPill;
 import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
-import akka.actor.UntypedActor;
-import com.google.common.base.Preconditions;
+import akka.actor.UntypedAbstractActor;
 import java.util.concurrent.TimeoutException;
 import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshot;
 import org.opendaylight.controller.cluster.raft.base.messages.CaptureSnapshotReply;
@@ -21,26 +22,26 @@ import org.opendaylight.controller.cluster.raft.persisted.ServerConfigurationPay
 import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
+import scala.concurrent.duration.FiniteDuration;
 
 /**
  * Temporary actor used to receive a CaptureSnapshotReply message and return a GetSnapshotReply instance.
  *
  * @author Thomas Pantelis
  */
-class GetSnapshotReplyActor extends UntypedActor {
+class GetSnapshotReplyActor extends UntypedAbstractActor {
     private static final Logger LOG = LoggerFactory.getLogger(GetSnapshotReplyActor.class);
 
     private final Params params;
 
-    private GetSnapshotReplyActor(Params params) {
+    GetSnapshotReplyActor(final Params params) {
         this.params = params;
 
         getContext().setReceiveTimeout(params.receiveTimeout);
     }
 
     @Override
-    public void onReceive(Object message) {
+    public void onReceive(final Object message) {
         if (message instanceof CaptureSnapshotReply) {
             Snapshot snapshot = Snapshot.create(
                     ((CaptureSnapshotReply)message).getSnapshotState(),
@@ -65,8 +66,9 @@ class GetSnapshotReplyActor extends UntypedActor {
         }
     }
 
-    public static Props props(CaptureSnapshot captureSnapshot, ElectionTerm electionTerm, ActorRef replyToActor,
-            Duration receiveTimeout, String id, ServerConfigurationPayload updatedPeerInfo) {
+    public static Props props(final CaptureSnapshot captureSnapshot, final ElectionTerm electionTerm,
+            final ActorRef replyToActor, final FiniteDuration receiveTimeout, final String id,
+            final ServerConfigurationPayload updatedPeerInfo) {
         return Props.create(GetSnapshotReplyActor.class, new Params(captureSnapshot, electionTerm, replyToActor,
                 receiveTimeout, id, updatedPeerInfo));
     }
@@ -75,17 +77,17 @@ class GetSnapshotReplyActor extends UntypedActor {
         final CaptureSnapshot captureSnapshot;
         final ActorRef replyToActor;
         final ElectionTerm electionTerm;
-        final Duration receiveTimeout;
+        final FiniteDuration receiveTimeout;
         final String id;
         final ServerConfigurationPayload peerInformation;
 
-        Params(CaptureSnapshot captureSnapshot, ElectionTerm electionTerm, ActorRef replyToActor,
-                Duration receiveTimeout, String id, ServerConfigurationPayload peerInfo) {
-            this.captureSnapshot = Preconditions.checkNotNull(captureSnapshot);
-            this.electionTerm = Preconditions.checkNotNull(electionTerm);
-            this.replyToActor = Preconditions.checkNotNull(replyToActor);
-            this.receiveTimeout = Preconditions.checkNotNull(receiveTimeout);
-            this.id = Preconditions.checkNotNull(id);
+        Params(final CaptureSnapshot captureSnapshot, final ElectionTerm electionTerm, final ActorRef replyToActor,
+                final FiniteDuration receiveTimeout, final String id, final ServerConfigurationPayload peerInfo) {
+            this.captureSnapshot = requireNonNull(captureSnapshot);
+            this.electionTerm = requireNonNull(electionTerm);
+            this.replyToActor = requireNonNull(replyToActor);
+            this.receiveTimeout = requireNonNull(receiveTimeout);
+            this.id = requireNonNull(id);
             this.peerInformation = peerInfo;
         }
     }