Class CoreEnvironment.Builder<SELF extends CoreEnvironment.Builder<SELF>>

  • Enclosing class:
    CoreEnvironment

    public static class CoreEnvironment.Builder<SELF extends CoreEnvironment.Builder<SELF>>
    extends Object
    • Constructor Detail

      • Builder

        protected Builder()
    • Method Detail

      • self

        protected SELF self()
      • ioEnvironment

        public SELF ioEnvironment​(IoEnvironment.Builder ioEnvironment)
        Allows to customize I/O thread pools.

        Note that the IoEnvironment holds thread pools and other resources. If you do not want to customize thread pool sizes, you likely want to look at the IoConfig instead.

        Parameters:
        ioEnvironment - the IO environment to customize.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • ioEnvironmentConfig

        public IoEnvironment.Builder ioEnvironmentConfig()
        Returns the currently stored IoEnvironment builder.
        Returns:
        the current builder.
      • ioConfig

        public SELF ioConfig​(IoConfig.Builder ioConfig)
        Allows to customize various I/O-related configuration properties.

        The I/O config is the main way to control how the SDK behaves at the lower levels. It allows to customize properties such as tcp keepalive, number of connections, circuit breakers, etc.

        Parameters:
        ioConfig - the custom I/O config to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • ioConfig

        public IoConfig.Builder ioConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • orphanReporterConfig

        public SELF orphanReporterConfig​(OrphanReporterConfig.Builder orphanReporterConfig)
        Allows to customize the behavior of the orphan response reporter.

        The orphan reporter logs all responses that arrived when the requesting side is not listening anymore (usually because of a timeout). The config can be modified to tune certain properties like the sample size or the emit interval.

        Parameters:
        orphanReporterConfig - the custom orphan reporter config.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • orphanReporterConfig

        public OrphanReporterConfig.Builder orphanReporterConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • thresholdRequestTracerConfig

        public SELF thresholdRequestTracerConfig​(ThresholdRequestTracerConfig.Builder thresholdRequestTracerConfig)
        Allows to customize the threshold request tracer configuration.
        Parameters:
        thresholdRequestTracerConfig - the configuration which should be used.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • compressionConfig

        public SELF compressionConfig​(CompressionConfig.Builder compressionConfig)
        Allows to customize document value compression settings.

        Usually this does not need to be tuned, but thresholds can be modified or compression can be disabled completely if needed.

        Parameters:
        compressionConfig - the custom compression config.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • compressionConfig

        public CompressionConfig.Builder compressionConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • securityConfig

        public SELF securityConfig​(SecurityConfig.Builder securityConfig)
        Allows to configure everything related to TLS/encrypted connections.

        Note that if you are looking to use client certificate authentication, please refer to the CertificateAuthenticator instead.

        Parameters:
        securityConfig - the custom security config to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • securityConfig

        public SecurityConfig.Builder securityConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • timeoutConfig

        public SELF timeoutConfig​(TimeoutConfig.Builder timeoutConfig)
        Allows to customize the default timeouts for all operations.

        Each timeout can also be modified on a per-request basis in their respective options blocks.

        Parameters:
        timeoutConfig - the custom timeout config to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • timeoutConfig

        public TimeoutConfig.Builder timeoutConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • loggerConfig

        public SELF loggerConfig​(LoggerConfig.Builder loggerConfig)
        Allows to provide a custom configuration for the default logger used.

        The default logger attaches itself to the EventBus on the environment and logs consumed events. This configuration allows to customize its behavior, diagnostic context etc.

        Parameters:
        loggerConfig - the custom logger config to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • loggerConfig

        public LoggerConfig.Builder loggerConfig()
        Returns the currently stored config builder.
        Returns:
        the current builder.
      • eventBus

        @Uncommitted
        public SELF eventBus​(EventBus eventBus)
        Customizes the event bus for the SDK.

        The SDK ships with a high-performance implementation of a event bus. Only swap out if you have special needs, usually what you want instead is to register your own consumer on the event bus instead (EventBus.subscribe(Consumer))!

        Parameters:
        eventBus - the event bus to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • scheduler

        @Uncommitted
        public SELF scheduler​(Scheduler scheduler)
        Customizes the default Reactor scheduler used for parallel operations.

        Usually you do not need to modify the scheduler, use with care.

        Parameters:
        scheduler - a custom scheduler to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • retryStrategy

        public SELF retryStrategy​(RetryStrategy retryStrategy)
        Allows to customize the default retry strategy.

        Note that this setting modifies the SDK-wide retry strategy. It can still be overridden on a per-request basis in the respective options block.

        Parameters:
        retryStrategy - the default retry strategy to use for all operations.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • requestTracer

        @Volatile
        public SELF requestTracer​(RequestTracer requestTracer)
        Allows to configure a custom tracer implementation.

        IMPORTANT: this is a volatile, likely to change API!

        Parameters:
        requestTracer - the custom request tracer to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • meter

        @Volatile
        public SELF meter​(Meter meter)
        Allows to configure a custom metrics implementation.

        IMPORTANT: this is a volatile, likely to change API!

        Parameters:
        meter - the custom metrics implementation to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.
      • addRequestCallback

        @Internal
        public SELF addRequestCallback​(RequestCallback requestCallback)
        Allows to configure callbacks across the lifetime of a request.

        IMPORTANT: this is internal API and might change at any point in time.

        Parameters:
        requestCallback - the callback to use.
        Returns:
        this CoreEnvironment.Builder for chaining purposes.