Class NettyStreamFactoryFactory.Builder

java.lang.Object
com.mongodb.connection.netty.NettyStreamFactoryFactory.Builder
Enclosing class:
NettyStreamFactoryFactory

public static final class NettyStreamFactoryFactory.Builder extends Object
A builder for an instance of NettyStreamFactoryFactory.
Since:
3.3
  • Method Details

    • applySettings

      Apply NettyTransportSettings
      Parameters:
      settings - the settings
      Returns:
      this
    • allocator

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

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

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

      It is highly recommended to supply your own event loop group and manage its shutdown. Otherwise, the event loop group created by default will not be shutdown properly.

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

      public NettyStreamFactoryFactory.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.
      Since:
      4.3
    • build

      public NettyStreamFactoryFactory build()
      Build an instance of NettyStreamFactoryFactory.
      Returns:
      factory of the netty stream factory