Allow SshClient to be customized via NetconfClientConfiguration
[netconf.git] / netconf / netconf-client / src / main / java / org / opendaylight / netconf / client / conf / NetconfClientConfigurationBuilder.java
index 9e86c9c4b27756642c12ac515cb9245729f69fd2..91013153797a4eb7893b46a55e261ddcbd51e3ca 100644 (file)
@@ -12,8 +12,9 @@ import java.util.List;
 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.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;
 
 public class NetconfClientConfigurationBuilder {
@@ -30,6 +31,7 @@ public class NetconfClientConfigurationBuilder {
     private AuthenticationHandler authHandler;
     private NetconfClientConfiguration.NetconfClientProtocol clientProtocol = DEFAULT_CLIENT_PROTOCOL;
     private SslHandlerFactory sslHandlerFactory;
+    private NetconfSshClient sshClient;
     private List<Uri> odlHelloCapabilities;
 
 
@@ -90,6 +92,12 @@ public class NetconfClientConfigurationBuilder {
         return this;
     }
 
+    @SuppressWarnings("checkstyle:hiddenField")
+    public NetconfClientConfigurationBuilder withSshClient(final NetconfSshClient sshClient) {
+        this.sshClient = sshClient;
+        return this;
+    }
+
     @SuppressWarnings("checkstyle:hiddenField")
     public NetconfClientConfigurationBuilder withOdlHelloCapabilities(final List<Uri> odlHelloCapabilities) {
         this.odlHelloCapabilities = odlHelloCapabilities;
@@ -128,12 +136,16 @@ public class NetconfClientConfigurationBuilder {
         return sslHandlerFactory;
     }
 
+    public NetconfSshClient getSshClient() {
+        return sshClient;
+    }
+
     final List<Uri> getOdlHelloCapabilities() {
         return odlHelloCapabilities;
     }
 
     public NetconfClientConfiguration build() {
         return new NetconfClientConfiguration(clientProtocol, address, connectionTimeoutMillis, additionalHeader,
-                sessionListener, reconnectStrategy, authHandler, sslHandlerFactory, odlHelloCapabilities);
+                sessionListener, reconnectStrategy, authHandler, sslHandlerFactory, sshClient, odlHelloCapabilities);
     }
 }