Class NettyTransportSettings.Builder

java.lang.Object
com.mongodb.connection.NettyTransportSettings.Builder
Enclosing class:
NettyTransportSettings

public static final class NettyTransportSettings.Builder extends Object
A builder for an instance of NettyTransportSettings.
  • Method Details

    • allocator

      public NettyTransportSettings.Builder allocator(io.netty.buffer.ByteBufAllocator allocator)
      Sets the allocator.
      Parameters:
      allocator - the allocator to use for ByteBuf instances
      Returns:
      this
      See Also:
    • socketChannelClass

      public NettyTransportSettings.Builder socketChannelClass(Class<? extends io.netty.channel.socket.SocketChannel> socketChannelClass)
      Sets the socket channel class
      Parameters:
      socketChannelClass - the socket channel class
      Returns:
      this
      See Also:
    • eventLoopGroup

      public NettyTransportSettings.Builder eventLoopGroup(io.netty.channel.EventLoopGroup eventLoopGroup)
      Sets the event loop group.

      The application is responsible for shutting down the provided eventLoopGroup

      Parameters:
      eventLoopGroup - the event loop group that all channels created by this factory will be a part of
      Returns:
      this
      See Also:
    • sslContext

      public NettyTransportSettings.Builder sslContext(io.netty.handler.ssl.SslContext sslContext)
      Sets a client-side io.netty.handler.ssl.SslContext, which overrides the standard SslSettings.getContext(). By default, it is null and SslSettings.getContext() is at play.

      This option may be used as a convenient way to utilize OpenSSL as an alternative to the TLS/SSL protocol implementation in a JDK. To achieve this, specify SslProvider.OPENSSL TLS/SSL protocol provider via SslContextBuilder.sslProvider(SslProvider). Note that doing so adds a runtime dependency on netty-tcnative, which you must satisfy.

      Notes:

      • Netty SslContext may not examine some security/system properties that are used to customize JSSE. Therefore, instead of using them you may have to apply the equivalent configuration programmatically, if both the SslContextBuilder and the TLS/SSL protocol provider of choice support it.
      • Only SslProvider.JDK and SslProvider.OPENSSL TLS/SSL protocol providers are supported.
      Parameters:
      sslContext - The Netty SslContext, which must be created via SslContextBuilder.forClient().
      Returns:
      this.
      See Also:
    • build

      public NettyTransportSettings build()
      Build an instance of NettyTransportSettings.
      Returns:
      factory for NettyTransportSettings