Skip to content
This repository was archived by the owner on May 30, 2024. It is now read-only.

prepare 5.0.0-rc2 release #194

Merged
merged 719 commits into from
May 14, 2020
Merged

prepare 5.0.0-rc2 release #194

merged 719 commits into from
May 14, 2020

Conversation

eli-darkly
Copy link
Contributor

[5.0.0-rc2] - 2020-05-13

The primary purpose of this second beta release is to introduce the new DataSourceStatusProvider API, which is the server-side equivalent to the "connection status" API that exists in LaunchDarkly's mobile SDKs. Other additions and changes since the previous beta release (5.0.0-rc1) are described below. See the 5.0.0-rc1 release notes for other changes since 4.13.0.

Added:

  • LDClient.getDataSourceStatusProvider() is a status monitoring mechanism similar to getDataStoreStatusProvider(), but for the data source (streaming, polling, or file data). You can not only check the current connection status, but also choose to receive notifications when the status changes.
  • LDConfig.Builder.logging() is a new configuration category for options related to logging. Currently the only such option is escalateDataSourceOutageLoggingAfter, which controls the new connection failure logging behavior described below.
  • LDConfig.Builder.threadPriority() allows you to set the priority for worker threads created by the SDK.

Changed:

  • Network failures and server errors for streaming or polling requests were previously logged at ERROR level in most cases but sometimes at WARN level. They are now all at WARN level, but with a new behavior: if connection failures continue without a successful retry for a certain amount of time, the SDK will log a special ERROR-level message to warn you that this is not just a brief outage. The amount of time is one minute by default, but can be changed with the new logDataSourceOutageAsErrorAfter option in LoggingConfigurationBuilder.
  • The number of worker threads maintained by the SDK has been reduced so that most intermittent background tasks, such as listener notifications, event flush timers, and polling requests, are now dispatched on a single thread. The delivery of analytics events to LaunchDarkly still has its own thread pool because it is a heavier-weight task with greater need for concurrency.
  • In polling mode, the poll requests previously ran on a dedicated worker thread that inherited its priority from the application thread that created the SDK. They are now on the SDK's main worker thread, which has Thread.MIN_PRIORITY by default (as all the other SDK threads already did) but the priority can be changed as described above.
  • Only relevant for implementing custom components: The DataStore and DataSource interfaces, and their factories, have been changed to provide a more general mechanism for status reporting. This does not affect the part of a persistent data store implementation that is database-specific, so new beta releases of the Consul/DynamoDB/Redis libraries were not necessary.

eli-darkly and others added 30 commits January 28, 2020 14:14
# Conflicts:
#	src/main/java/com/launchdarkly/client/Components.java
#	src/main/java/com/launchdarkly/client/DiagnosticEvent.java
…g-desc

# Conflicts:
#	src/main/java/com/launchdarkly/client/Components.java
#	src/main/java/com/launchdarkly/client/DefaultEventProcessor.java
#	src/main/java/com/launchdarkly/client/DefaultFeatureRequestor.java
#	src/main/java/com/launchdarkly/client/DiagnosticEvent.java
#	src/main/java/com/launchdarkly/client/LDConfig.java
#	src/main/java/com/launchdarkly/client/StreamProcessor.java
#	src/main/java/com/launchdarkly/client/Util.java
#	src/test/java/com/launchdarkly/client/DefaultEventProcessorTest.java
#	src/test/java/com/launchdarkly/client/StreamProcessorTest.java
(1 of 2) allow each component to describe its own configuration for diagnostics
(2 of 2) allow each component to describe its own configuration for diagnostics
fix generation of CA certs for TLS tests
fix Redis URI bug and improve data store tests
…fixes

miscellaneous config fixes and test improvements
# Conflicts:
#	src/main/java/com/launchdarkly/client/Components.java
#	src/main/java/com/launchdarkly/client/DefaultEventProcessor.java
#	src/main/java/com/launchdarkly/client/DefaultFeatureRequestor.java
#	src/main/java/com/launchdarkly/client/DiagnosticEvent.java
#	src/main/java/com/launchdarkly/client/InMemoryDataStore.java
#	src/main/java/com/launchdarkly/client/LDClient.java
#	src/main/java/com/launchdarkly/client/LDConfig.java
#	src/main/java/com/launchdarkly/client/LDUser.java
#	src/main/java/com/launchdarkly/client/PollingProcessor.java
#	src/main/java/com/launchdarkly/client/RedisFeatureStoreBuilder.java
#	src/main/java/com/launchdarkly/client/StreamProcessor.java
#	src/main/java/com/launchdarkly/client/Util.java
#	src/main/java/com/launchdarkly/client/integrations/PersistentDataStoreBuilder.java
#	src/main/java/com/launchdarkly/client/integrations/RedisDataStoreBuilder.java
#	src/main/java/com/launchdarkly/client/integrations/RedisDataStoreImpl.java
#	src/main/java/com/launchdarkly/client/interfaces/DataSource.java
#	src/main/java/com/launchdarkly/client/interfaces/EventProcessor.java
#	src/test/java/com/launchdarkly/client/DataStoreDatabaseTestBase.java
#	src/test/java/com/launchdarkly/client/DataStoreTestBase.java
#	src/test/java/com/launchdarkly/client/DefaultEventProcessorTest.java
#	src/test/java/com/launchdarkly/client/DiagnosticEventTest.java
#	src/test/java/com/launchdarkly/client/FeatureRequestorTest.java
#	src/test/java/com/launchdarkly/client/LDClientEndToEndTest.java
#	src/test/java/com/launchdarkly/client/LDClientEvaluationTest.java
#	src/test/java/com/launchdarkly/client/LDClientEventTest.java
#	src/test/java/com/launchdarkly/client/LDClientExternalUpdatesOnlyTest.java
#	src/test/java/com/launchdarkly/client/LDClientOfflineTest.java
#	src/test/java/com/launchdarkly/client/LDClientTest.java
#	src/test/java/com/launchdarkly/client/LDConfigTest.java
#	src/test/java/com/launchdarkly/client/LDUserTest.java
#	src/test/java/com/launchdarkly/client/PollingProcessorTest.java
#	src/test/java/com/launchdarkly/client/StreamProcessorTest.java
#	src/test/java/com/launchdarkly/client/TestUtil.java
#	src/test/java/com/launchdarkly/client/UtilTest.java
#	src/test/java/com/launchdarkly/client/integrations/RedisDataStoreBuilderTest.java
#	src/test/java/com/launchdarkly/client/integrations/RedisDataStoreTest.java
eli-darkly and others added 25 commits May 8, 2020 14:55
# Conflicts:
#	src/test/java/com/launchdarkly/sdk/server/LDClientListenersTest.java
#	src/test/java/com/launchdarkly/sdk/server/StreamProcessorTest.java
# Conflicts:
#	src/main/java/com/launchdarkly/client/Components.java
#	src/main/java/com/launchdarkly/client/EventsConfiguration.java
#	src/main/java/com/launchdarkly/sdk/server/DefaultEventProcessor.java
#	src/main/java/com/launchdarkly/sdk/server/EventFactory.java
#	src/main/java/com/launchdarkly/sdk/server/integrations/EventProcessorBuilder.java
#	src/test/java/com/launchdarkly/client/TestUtil.java
#	src/test/java/com/launchdarkly/sdk/server/DefaultEventProcessorTest.java
# Conflicts:
#	src/test/java/com/launchdarkly/sdk/server/LDClientEndToEndTest.java
…add new ErrorKind for this; improve comments and tests
# Conflicts:
#	src/main/java/com/launchdarkly/sdk/server/DefaultEventProcessor.java
decouple event HTTP logic from event processing
# Conflicts:
#	src/main/java/com/launchdarkly/sdk/server/DefaultEventSender.java
#	src/test/java/com/launchdarkly/sdk/server/DefaultEventSenderTest.java
…e-url

make events URI construction reliable regardless of whether base URI ends in a slash
# Conflicts:
#	CHANGELOG.md
#	gradle.properties
@eli-darkly eli-darkly requested a review from bwoskow-ld May 14, 2020 00:50
@eli-darkly eli-darkly changed the base branch from master to 5.x May 14, 2020 01:00
@eli-darkly eli-darkly merged commit 6718e4c into 5.x May 14, 2020
@eli-darkly eli-darkly deleted the release-5.0.0-rc2 branch May 14, 2020 01:00
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants