return createTcpClient(clientConfiguration);
case SSH:
return createSshClient(clientConfiguration);
+ case TLS:
+ return createTlsClient(clientConfiguration);
default:
throw new IllegalArgumentException("Unknown client protocol " + clientConfiguration.getProtocol());
}
return createReconnectingTcpClient(clientConfiguration);
case SSH:
return createReconnectingSshClient(clientConfiguration);
+ case TLS:
+ return createReconnectingTlsClient(clientConfiguration);
default:
throw new IllegalArgumentException("Unknown client protocol " + clientConfiguration.getProtocol());
}
init::initialize);
}
+ private Future<NetconfClientSession> createTlsClient(final NetconfClientConfiguration currentConfiguration) {
+ LOG.debug("Creating TLS client with configuration: {}", currentConfiguration);
+ return super.createClient(currentConfiguration.getAddress(), currentConfiguration.getReconnectStrategy(),
+ (ch, sessionPromise) -> new TlsClientChannelInitializer(currentConfiguration.getSslHandlerFactory(),
+ getNegotiatorFactory(currentConfiguration), currentConfiguration.getSessionListener())
+ .initialize(ch, sessionPromise));
+ }
+
+ private Future<Void> createReconnectingTlsClient(
+ final NetconfReconnectingClientConfiguration currentConfiguration) {
+ LOG.debug("Creating reconnecting TLS client with configuration: {}", currentConfiguration);
+ final TlsClientChannelInitializer init = new TlsClientChannelInitializer(
+ currentConfiguration.getSslHandlerFactory(), getNegotiatorFactory(currentConfiguration),
+ currentConfiguration.getSessionListener());
+
+ return super.createReconnectingClient(currentConfiguration.getAddress(), currentConfiguration
+ .getConnectStrategyFactory(), currentConfiguration.getReconnectStrategy(),
+ init::initialize);
+ }
+
protected NetconfClientSessionNegotiatorFactory getNegotiatorFactory(final NetconfClientConfiguration cfg) {
return new NetconfClientSessionNegotiatorFactory(timer, cfg.getAdditionalHeader(),
cfg.getConnectionTimeoutMillis());
assertNotNull(sshReconn);
assertNotNull(tcpReconn);
+ SslHandlerFactory sslHandlerFactory = Mockito.mock(SslHandlerFactory.class);
+ NetconfReconnectingClientConfiguration cfg3 = NetconfReconnectingClientConfigurationBuilder.create()
+ .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TLS)
+ .withAddress(address)
+ .withConnectionTimeoutMillis(timeout)
+ .withReconnectStrategy(reconnect)
+ .withAdditionalHeader(header)
+ .withSessionListener(listener)
+ .withConnectStrategyFactory(reconnectStrategyFactory)
+ .withSslHandlerFactory(sslHandlerFactory).build();
+
+ Future<NetconfClientSession> tlsSession = dispatcher.createClient(cfg3);
+ Future<Void> tlsReconn = dispatcher.createReconnectingClient(cfg3);
+
+ assertNotNull(tlsSession);
+ assertNotNull(tlsReconn);
}
}