Class StreamingDataSourceBuilder

  • All Implemented Interfaces:
    DataSourceFactory

    public abstract class StreamingDataSourceBuilder
    extends java.lang.Object
    implements DataSourceFactory
    Contains methods for configuring the streaming data source.

    By default, the SDK uses a streaming connection to receive feature flag data from LaunchDarkly. If you want to customize the behavior of the connection, create a builder with Components.streamingDataSource(), change its properties with the methods of this class, and pass it to LDConfig.Builder.dataSource(DataSourceFactory):

    
         LDConfig config = new LDConfig.Builder()
             .dataSource(Components.streamingDataSource().initialReconnectDelayMillis(500))
             .build();
     

    Note that this class is abstract; the actual implementation is created by calling Components.streamingDataSource().

    Since:
    4.12.0
    • Field Detail

      • DEFAULT_INITIAL_RECONNECT_DELAY

        public static final java.time.Duration DEFAULT_INITIAL_RECONNECT_DELAY
        The default value for initialReconnectDelay(Duration): 1000 milliseconds.
      • baseURI

        protected java.net.URI baseURI
      • initialReconnectDelay

        protected java.time.Duration initialReconnectDelay
    • Constructor Detail

      • StreamingDataSourceBuilder

        public StreamingDataSourceBuilder()
    • Method Detail

      • initialReconnectDelay

        public StreamingDataSourceBuilder initialReconnectDelay​(java.time.Duration initialReconnectDelay)
        Sets the initial reconnect delay for the streaming connection.

        The streaming service uses a backoff algorithm (with jitter) every time the connection needs to be reestablished. The delay for the first reconnection will start near this value, and then increase exponentially for any subsequent connection failures.

        The default value is DEFAULT_INITIAL_RECONNECT_DELAY.

        Parameters:
        initialReconnectDelay - the reconnect time base value; null to use the default
        Returns:
        the builder
      • pollingBaseURI

        public StreamingDataSourceBuilder pollingBaseURI​(java.net.URI pollingBaseURI)
        Obsolete method for setting a different custom base URI for special polling requests.

        Previously, LaunchDarkly sometimes required the SDK to temporarily do a polling request even in streaming mode (based on the size of the updated data item); this property specified the base URI for such requests. However, the system no longer has this behavior so this property is ignored. It will be deprecated and then removed in a future release.

        Parameters:
        pollingBaseURI - the polling endpoint URI; null to use the default
        Returns:
        the builder