Introduce NetconfTimer
[netconf.git] / plugins / netconf-client-mdsal / src / main / java / org / opendaylight / netconf / client / mdsal / spi / KeepaliveSalFacade.java
index 0328ef9f5aa4a9db592e21ce80947f188bdf9056..d9551a7b026bed17628ada2fe858f838bc54f942 100644 (file)
@@ -11,7 +11,6 @@ import static com.google.common.base.Preconditions.checkState;
 import static java.util.Objects.requireNonNull;
 import static org.opendaylight.netconf.client.mdsal.impl.NetconfBaseOps.getSourceNode;
 import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_CONFIG_NODEID;
-import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME;
 import static org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil.NETCONF_RUNNING_NODEID;
 
 import com.google.common.util.concurrent.FutureCallback;
@@ -20,7 +19,6 @@ import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import io.netty.util.Timeout;
-import io.netty.util.Timer;
 import io.netty.util.TimerTask;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.TimeUnit;
@@ -38,6 +36,8 @@ import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceId;
 import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices;
 import org.opendaylight.netconf.client.mdsal.api.RemoteDeviceServices.Rpcs;
 import org.opendaylight.netconf.client.mdsal.impl.NetconfMessageTransformUtil;
+import org.opendaylight.netconf.common.NetconfTimer;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.base._1._0.rev110601.GetConfig;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
@@ -60,7 +60,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler {
 
     private final RemoteDeviceHandler deviceHandler;
     private final RemoteDeviceId deviceId;
-    private final Timer timer;
+    private final NetconfTimer timer;
     private final long keepaliveDelaySeconds;
     private final long timeoutNanos;
     private final long delayNanos;
@@ -68,8 +68,8 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler {
     private volatile NetconfDeviceCommunicator listener;
     private volatile KeepaliveTask task;
 
-    public KeepaliveSalFacade(final RemoteDeviceId deviceId, final RemoteDeviceHandler deviceHandler, final Timer timer,
-            final long keepaliveDelaySeconds, final long requestTimeoutMillis) {
+    public KeepaliveSalFacade(final RemoteDeviceId deviceId, final RemoteDeviceHandler deviceHandler,
+            final NetconfTimer timer, final long keepaliveDelaySeconds, final long requestTimeoutMillis) {
         this.deviceId = requireNonNull(deviceId);
         this.deviceHandler = requireNonNull(deviceHandler);
         this.timer = requireNonNull(timer);
@@ -79,7 +79,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler {
     }
 
     public KeepaliveSalFacade(final RemoteDeviceId deviceId, final RemoteDeviceHandler deviceHandler,
-            final Timer timer) {
+            final NetconfTimer timer) {
         this(deviceId, deviceHandler, timer, DEFAULT_DELAY, DEFAULT_TRANSACTION_TIMEOUT_MILLI);
     }
 
@@ -253,7 +253,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler {
             }
 
             LOG.trace("{}: Invoking keepalive RPC", deviceId);
-            final var deviceFuture = devRpc.invokeNetconf(NETCONF_GET_CONFIG_QNAME, KEEPALIVE_PAYLOAD);
+            final var deviceFuture = devRpc.invokeNetconf(GetConfig.QNAME, KEEPALIVE_PAYLOAD);
             lastActivity = now;
 
             scheduleTimeout(deviceFuture, new TimeoutTask(deviceFuture));