Teach netconf-client abount maximum incoming chunk size
[netconf.git] / netconf / netconf-client / src / main / java / org / opendaylight / netconf / client / conf / NetconfClientConfiguration.java
index b14d152e2561c1ad131c2567f76f8793fab4a4de..c1edb5abc89b0e313ab732b0287a1455c70887ea 100644 (file)
@@ -7,23 +7,25 @@
  */
 package org.opendaylight.netconf.client.conf;
 
  */
 package org.opendaylight.netconf.client.conf;
 
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import com.google.common.base.MoreObjects;
 import com.google.common.base.MoreObjects.ToStringHelper;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
 import java.net.InetSocketAddress;
 import java.util.List;
 import java.net.InetSocketAddress;
 import java.util.List;
+import java.util.Optional;
+import org.checkerframework.checker.index.qual.NonNegative;
 import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
 import org.opendaylight.netconf.client.NetconfClientSessionListener;
 import org.opendaylight.netconf.client.SslHandlerFactory;
 import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
 import org.opendaylight.netconf.client.NetconfClientSessionListener;
 import org.opendaylight.netconf.client.SslHandlerFactory;
+import org.opendaylight.netconf.nettyutil.ReconnectStrategy;
 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.netconf.nettyutil.handler.ssh.client.NetconfSshClient;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class NetconfClientConfiguration {
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class NetconfClientConfiguration {
-
     private static final Logger LOG = LoggerFactory.getLogger(NetconfClientConfiguration.class);
 
     private final NetconfClientProtocol clientProtocol;
     private static final Logger LOG = LoggerFactory.getLogger(NetconfClientConfiguration.class);
 
     private final NetconfClientProtocol clientProtocol;
@@ -37,25 +39,29 @@ public class NetconfClientConfiguration {
 
     private final AuthenticationHandler authHandler;
     private final SslHandlerFactory sslHandlerFactory;
 
     private final AuthenticationHandler authHandler;
     private final SslHandlerFactory sslHandlerFactory;
+    private final NetconfSshClient sshClient;
 
     private final List<Uri> odlHelloCapabilities;
 
     private final List<Uri> odlHelloCapabilities;
+    private final @NonNegative int maximumIncomingChunkSize;
 
     NetconfClientConfiguration(final NetconfClientProtocol protocol, final InetSocketAddress address,
                                final Long connectionTimeoutMillis,
                                final NetconfHelloMessageAdditionalHeader additionalHeader,
                                final NetconfClientSessionListener sessionListener,
                                final ReconnectStrategy reconnectStrategy, final AuthenticationHandler authHandler,
 
     NetconfClientConfiguration(final NetconfClientProtocol protocol, final InetSocketAddress address,
                                final Long connectionTimeoutMillis,
                                final NetconfHelloMessageAdditionalHeader additionalHeader,
                                final NetconfClientSessionListener sessionListener,
                                final ReconnectStrategy reconnectStrategy, final AuthenticationHandler authHandler,
-                               final SslHandlerFactory sslHandlerFactory,
-                               final List<Uri> odlHelloCapabilities) {
+                               final SslHandlerFactory sslHandlerFactory, final NetconfSshClient sshClient,
+                               final List<Uri> odlHelloCapabilities, final @NonNegative int maximumIncomingChunkSize) {
         this.address = address;
         this.connectionTimeoutMillis = connectionTimeoutMillis;
         this.additionalHeader = additionalHeader;
         this.sessionListener = sessionListener;
         this.address = address;
         this.connectionTimeoutMillis = connectionTimeoutMillis;
         this.additionalHeader = additionalHeader;
         this.sessionListener = sessionListener;
-        this.clientProtocol = protocol;
+        clientProtocol = protocol;
         this.reconnectStrategy = reconnectStrategy;
         this.authHandler = authHandler;
         this.sslHandlerFactory = sslHandlerFactory;
         this.reconnectStrategy = reconnectStrategy;
         this.authHandler = authHandler;
         this.sslHandlerFactory = sslHandlerFactory;
+        this.sshClient = sshClient;
         this.odlHelloCapabilities = odlHelloCapabilities;
         this.odlHelloCapabilities = odlHelloCapabilities;
+        this.maximumIncomingChunkSize = maximumIncomingChunkSize;
         validateConfiguration();
     }
 
         validateConfiguration();
     }
 
@@ -68,13 +74,14 @@ public class NetconfClientConfiguration {
     }
 
     public final Optional<NetconfHelloMessageAdditionalHeader> getAdditionalHeader() {
     }
 
     public final Optional<NetconfHelloMessageAdditionalHeader> getAdditionalHeader() {
-        return Optional.fromNullable(additionalHeader);
+        return Optional.ofNullable(additionalHeader);
     }
 
     public final NetconfClientSessionListener getSessionListener() {
         return sessionListener;
     }
 
     }
 
     public final NetconfClientSessionListener getSessionListener() {
         return sessionListener;
     }
 
+    @Deprecated(forRemoval = true)
     public final ReconnectStrategy getReconnectStrategy() {
         return reconnectStrategy;
     }
     public final ReconnectStrategy getReconnectStrategy() {
         return reconnectStrategy;
     }
@@ -91,13 +98,20 @@ public class NetconfClientConfiguration {
         return sslHandlerFactory;
     }
 
         return sslHandlerFactory;
     }
 
+    public NetconfSshClient getSshClient() {
+        return sshClient;
+    }
+
     public List<Uri> getOdlHelloCapabilities() {
         return odlHelloCapabilities;
     }
 
     public List<Uri> getOdlHelloCapabilities() {
         return odlHelloCapabilities;
     }
 
+    public @NonNegative int getMaximumIncomingChunkSize() {
+        return maximumIncomingChunkSize;
+    }
+
     private void validateConfiguration() {
     private void validateConfiguration() {
-        Preconditions.checkNotNull(clientProtocol, " ");
-        switch (clientProtocol) {
+        switch (requireNonNull(clientProtocol)) {
             case TLS:
                 validateTlsConfiguration();
                 validateTcpConfiguration();
             case TLS:
                 validateTlsConfiguration();
                 validateTcpConfiguration();
@@ -114,20 +128,20 @@ public class NetconfClientConfiguration {
         }
     }
 
         }
     }
 
-    protected void validateTlsConfiguration() {
-        Preconditions.checkNotNull(sslHandlerFactory, "sslHandlerFactory");
+    protected final void validateTlsConfiguration() {
+        requireNonNull(sslHandlerFactory, "sslHandlerFactory");
     }
 
     }
 
-    protected void validateSshConfiguration() {
-        Preconditions.checkNotNull(authHandler, "authHandler");
+    protected final void validateSshConfiguration() {
+        requireNonNull(authHandler, "authHandler");
     }
 
     }
 
-    protected void validateTcpConfiguration() {
-        Preconditions.checkNotNull(address, "address");
-        Preconditions.checkNotNull(clientProtocol, "clientProtocol");
-        Preconditions.checkNotNull(connectionTimeoutMillis, "connectionTimeoutMillis");
-        Preconditions.checkNotNull(sessionListener, "sessionListener");
-        Preconditions.checkNotNull(reconnectStrategy, "reconnectStrategy");
+    protected final void validateTcpConfiguration() {
+        requireNonNull(address, "address");
+        requireNonNull(clientProtocol, "clientProtocol");
+        requireNonNull(connectionTimeoutMillis, "connectionTimeoutMillis");
+        requireNonNull(sessionListener, "sessionListener");
+        requireNonNull(reconnectStrategy, "reconnectStrategy");
     }
 
     @Override
     }
 
     @Override