Use property setters 14/103014/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Nov 2022 12:23:54 +0000 (13:23 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 2 Nov 2022 12:24:48 +0000 (13:24 +0100)
SSHD configuration properties can be nicely set via a type-safe system,
make sure we use that instead of mucking with maps directly.

Change-Id: If1193c70d7057e16430ebf91e4dc78cc1d8f1745
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
netconf/mdsal-netconf-ssh/src/main/java/org/opendaylight/netconf/ssh/SshProxyServer.java

index c429620d2ea1f64e1868bc6b9bfc7023a6866426..7e192d7364e2c52896759e3c902cb9bd1568a773 100644 (file)
@@ -15,6 +15,7 @@ import com.google.common.collect.ImmutableList;
 import io.netty.channel.EventLoopGroup;
 import java.io.IOException;
 import java.nio.channels.AsynchronousChannelGroup;
+import java.time.Duration;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
@@ -91,19 +92,21 @@ public class SshProxyServer implements AutoCloseable {
         sshServer.setIoServiceFactoryFactory(nioServiceWithPoolFactoryFactory);
         sshServer.setScheduledExecutorService(minaTimerExecutor);
 
-        final int idleTimeout = sshProxyServerConfiguration.getIdleTimeout();
-        sshServer.getProperties().put(CoreModuleProperties.IDLE_TIMEOUT.getName(), String.valueOf(idleTimeout));
-        final String nioReadTimeout;
-        if (idleTimeout > 0) {
-            final long heartBeat = idleTimeout * 333333L;
+        final int idleTimeoutMillis = sshProxyServerConfiguration.getIdleTimeout();
+        final Duration idleTimeout = Duration.ofMillis(idleTimeoutMillis);
+        CoreModuleProperties.IDLE_TIMEOUT.set(sshServer, idleTimeout);
+
+        final Duration nioReadTimeout;
+        if (idleTimeoutMillis > 0) {
+            final long heartBeat = idleTimeoutMillis * 333333L;
             sshServer.setSessionHeartbeat(HeartbeatType.IGNORE, TimeUnit.NANOSECONDS, heartBeat);
-            nioReadTimeout = String.valueOf(idleTimeout + TimeUnit.SECONDS.toMillis(15L));
+            nioReadTimeout = Duration.ofMillis(idleTimeoutMillis + TimeUnit.SECONDS.toMillis(15L));
         } else {
-            nioReadTimeout = "0";
+            nioReadTimeout = Duration.ZERO;
         }
-        sshServer.getProperties().put(CoreModuleProperties.NIO2_READ_TIMEOUT.getName(), nioReadTimeout);
-        sshServer.getProperties().put(CoreModuleProperties.AUTH_TIMEOUT.getName(), String.valueOf(idleTimeout));
-        sshServer.getProperties().put(CoreModuleProperties.TCP_NODELAY.getName(), true);
+        CoreModuleProperties.NIO2_READ_TIMEOUT.set(sshServer, nioReadTimeout);
+        CoreModuleProperties.AUTH_TIMEOUT.set(sshServer, idleTimeout);
+        CoreModuleProperties.TCP_NODELAY.set(sshServer, Boolean.TRUE);
 
         final RemoteNetconfCommand.NetconfCommandFactory netconfCommandFactory =
                 new RemoteNetconfCommand.NetconfCommandFactory(clientGroup,