External service integration support for TLS transport
[netconf.git] / transport / transport-tls / src / main / java / org / opendaylight / netconf / transport / tls / TLSServer.java
index 3f0e52726bc08b8eafec672fedc461186c051c4b..d927a653ec82ca730418d7a15366e7e648c67197 100644 (file)
@@ -33,20 +33,31 @@ public final class TLSServer extends TLSTransportStack {
         super(listener, sslContext);
     }
 
+    private TLSServer(final TransportChannelListener listener, final SslHandlerFactory factory) {
+        super(listener, factory);
+    }
+
     public static @NonNull ListenableFuture<TLSServer> connect(final TransportChannelListener listener,
             final Bootstrap bootstrap, final TcpClientGrouping connectParams, final TlsServerGrouping serverParams)
-            throws UnsupportedConfigurationException {
+                throws UnsupportedConfigurationException {
         final var server = newServer(listener, serverParams);
         return transformUnderlay(server, TCPClient.connect(server.asListener(), bootstrap, connectParams));
     }
 
     public static @NonNull ListenableFuture<TLSServer> listen(final TransportChannelListener listener,
             final ServerBootstrap bootstrap, final TcpServerGrouping listenParams, final TlsServerGrouping serverParams)
-            throws UnsupportedConfigurationException {
+                throws UnsupportedConfigurationException {
         final var server = newServer(listener, serverParams);
         return transformUnderlay(server, TCPServer.listen(server.asListener(), bootstrap, listenParams));
     }
 
+    public static @NonNull ListenableFuture<TLSServer> listen(final TransportChannelListener listener,
+            final ServerBootstrap bootstrap, final TcpServerGrouping listenParams, final SslHandlerFactory factory)
+                throws UnsupportedConfigurationException {
+        final var server = new TLSServer(listener, factory);
+        return transformUnderlay(server, TCPServer.listen(server.asListener(), bootstrap, listenParams));
+    }
+
     private static TLSServer newServer(final TransportChannelListener listener, final TlsServerGrouping serverParams)
             throws UnsupportedConfigurationException {
         final var serverIdentity = serverParams.getServerIdentity();