public static class LDConfig.Builder
extends java.lang.Object
Constructor and Description |
---|
Builder()
Creates a builder with all configuration parameters set to the default
|
Modifier and Type | Method and Description |
---|---|
LDConfig.Builder |
applicationInfo(ApplicationInfoBuilder applicationInfoBuilder)
Sets the SDK's application metadata, which may be used in LaunchDarkly analytics or other product features,
but does not affect feature flag evaluations.
|
LDConfig.Builder |
bigSegments(ComponentConfigurer<BigSegmentsConfiguration> bigSegmentsConfigurer)
Sets the configuration of the SDK's Big Segments feature.
|
LDConfig |
build()
Builds the configured
LDConfig object. |
LDConfig.Builder |
dataSource(ComponentConfigurer<DataSource> dataSourceConfigurer)
Sets the implementation of the component that receives feature flag data from LaunchDarkly,
using a factory object.
|
LDConfig.Builder |
dataStore(ComponentConfigurer<DataStore> dataStoreConfigurer)
Sets the implementation of the data store to be used for holding feature flags and
related data received from LaunchDarkly, using a factory object.
|
LDConfig.Builder |
diagnosticOptOut(boolean diagnosticOptOut)
Set to true to opt out of sending diagnostics data.
|
LDConfig.Builder |
events(ComponentConfigurer<EventProcessor> eventsConfigurer)
Sets the implementation of
EventProcessor to be used for processing analytics events. |
static LDConfig.Builder |
fromConfig(LDConfig config)
Creates a
LDConfig.Builder from the provided LDConfig |
LDConfig.Builder |
hooks(HooksConfigurationBuilder hooksConfiguration)
Sets the SDK's hooks configuration, using a builder.
|
LDConfig.Builder |
http(ComponentConfigurer<HttpConfiguration> httpConfigurer)
Sets the SDK's networking configuration, using a configuration builder.
|
LDConfig.Builder |
logging(ComponentConfigurer<LoggingConfiguration> loggingConfigurer)
Sets the SDK's logging configuration, using a factory object.
|
LDConfig.Builder |
offline(boolean offline)
Set whether this client is offline.
|
LDConfig.Builder |
serviceEndpoints(ServiceEndpointsBuilder serviceEndpointsBuilder)
Sets the base service URIs used by SDK components.
|
LDConfig.Builder |
startWait(java.time.Duration startWait)
Set how long the constructor will block awaiting a successful connection to LaunchDarkly.
|
LDConfig.Builder |
threadPriority(int threadPriority)
Set the priority to use for all threads created by the SDK.
|
LDConfig.Builder |
wrapper(WrapperInfoBuilder wrapperBuilder)
Set the wrapper information.
|
public Builder()
public static LDConfig.Builder fromConfig(LDConfig config)
LDConfig.Builder
from the provided LDConfig
config
- to be used to initialize the builderpublic LDConfig.Builder applicationInfo(ApplicationInfoBuilder applicationInfoBuilder)
This object is normally a configuration builder obtained from Components.applicationInfo()
,
which has methods for setting individual logging-related properties.
applicationInfoBuilder
- a configuration builder object returned by Components.applicationInfo()
public LDConfig.Builder bigSegments(ComponentConfigurer<BigSegmentsConfiguration> bigSegmentsConfigurer)
Big Segments are a specific type of user segments. For more information, read the LaunchDarkly documentation .
If you are using this feature, you will normally specify a database implementation that matches how the LaunchDarkly Relay Proxy is configured, since the Relay Proxy manages the Big Segment data.
By default, there is no implementation and Big Segments cannot be evaluated. In this case,
any flag evaluation that references a Big Segment will behave as if no users are included in
any Big Segments, and the EvaluationReason
associated with any such flag evaluation
will have a EvaluationReason.BigSegmentsStatus
of EvaluationReason.BigSegmentsStatus.NOT_CONFIGURED
.
// This example uses the Redis integration
LDConfig config = LDConfig.builder()
.bigSegments(Components.bigSegments(Redis.dataStore().prefix("app1"))
.userCacheSize(2000))
.build();
bigSegmentsConfigurer
- the Big Segments configuration builderComponents.bigSegments(ComponentConfigurer)
public LDConfig.Builder dataSource(ComponentConfigurer<DataSource> dataSourceConfigurer)
The default is Components.streamingDataSource()
. You may instead use
Components.pollingDataSource()
, or a test fixture such as
FileData.dataSource()
. See those methods
for details on how to configure them.
dataSourceConfigurer
- the data source configuration builderpublic LDConfig.Builder dataStore(ComponentConfigurer<DataStore> dataStoreConfigurer)
Components.inMemoryDataStore()
; for database integrations, use
Components.persistentDataStore(ComponentConfigurer)
.dataStoreConfigurer
- the data store configuration builderpublic LDConfig.Builder diagnosticOptOut(boolean diagnosticOptOut)
Unless diagnosticOptOut
is set to true, the client will send some diagnostics data to the
LaunchDarkly servers in order to assist in the development of future SDK improvements. These diagnostics
consist of an initial payload containing some details of SDK in use, the SDK's configuration, and the platform
the SDK is being run on; as well as payloads sent periodically with information on irregular occurrences such
as dropped events.
diagnosticOptOut
- true if you want to opt out of sending any diagnostics dataEventProcessorBuilder.diagnosticRecordingInterval(Duration)
public LDConfig.Builder events(ComponentConfigurer<EventProcessor> eventsConfigurer)
EventProcessor
to be used for processing analytics events.
The default is Components.sendEvents()
with no custom options. You may instead call
Components.sendEvents()
and then set custom options for event processing; or, disable
events with Components.noEvents()
; or, choose to use a custom implementation (for
instance, a test fixture).
eventsConfigurer
- the events configuration builderComponents.sendEvents()
,
Components.noEvents()
public LDConfig.Builder hooks(HooksConfigurationBuilder hooksConfiguration)
Components.hooks()
()}, which has methods for setting individual other hook
related properties.hooksConfiguration
- the hooks configuration builderComponents.hooks()
public LDConfig.Builder http(ComponentConfigurer<HttpConfiguration> httpConfigurer)
Components.httpConfiguration()
, and has methods for setting individual
HTTP-related properties.httpConfigurer
- the HTTP configuration builderComponents.httpConfiguration()
public LDConfig.Builder logging(ComponentConfigurer<LoggingConfiguration> loggingConfigurer)
Components.logging()
, which has methods
for setting individual logging-related properties.loggingConfigurer
- the logging configuration builderComponents.logging()
public LDConfig.Builder offline(boolean offline)
In offline mode, the SDK will not make network connections to LaunchDarkly for any purpose. Feature flag data will only be available if it already exists in the data store, and analytics events will not be sent.
This is equivalent to calling dataSource(Components.externalUpdatesOnly())
and
events(Components.noEvents())
. It overrides any other values you may have set for
dataSource(ComponentConfigurer)
or events(ComponentConfigurer)
.
offline
- when set to true no calls to LaunchDarkly will be madepublic LDConfig.Builder serviceEndpoints(ServiceEndpointsBuilder serviceEndpointsBuilder)
This object is normally a configuration builder obtained from Components.serviceEndpoints()
,
which has methods for setting each external endpoint to a custom URI.
serviceEndpointsBuilder
- a configuration builder object returned by Components.applicationInfo()
public LDConfig.Builder startWait(java.time.Duration startWait)
The default is LDConfig.DEFAULT_START_WAIT
.
startWait
- maximum time to wait; null to use the defaultpublic LDConfig.Builder threadPriority(int threadPriority)
By default, the SDK's worker threads use Thread.MIN_PRIORITY
so that they will yield to
application threads if the JVM is busy. You may increase this if you want the SDK to be prioritized
over some other low-priority tasks.
Values outside the range of [Thread.MIN_PRIORITY
, Thread.MAX_PRIORITY
] will be set
to the minimum or maximum.
threadPriority
- the priority for SDK threadspublic LDConfig.Builder wrapper(WrapperInfoBuilder wrapperBuilder)
This is intended for use with wrapper SDKs from LaunchDarkly.
If the WrapperBuilder is set, then it will replace the wrapper information from the HttpPropertiesBuilder. Additionally, any wrapper SDK may overwrite any application developer provided wrapper information.
wrapperBuilder
- the wrapper builder