This repository has been archived by the owner on May 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 56
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Conflicts: # src/test/java/com/launchdarkly/sdk/server/integrations/PersistentDataStoreWrapperTest.java
…tatus # Conflicts: # src/main/java/com/launchdarkly/sdk/server/integrations/PersistentDataStoreWrapper.java
(5.0 - #5) remove com.launchdarkly.sdk classes, get them from common package
5.0: remove NewRelicReflector
(5.0 - #6) add mechanism for data store status reporting
(5.0 - #7) add stream logic for data store outages + improve test code
fix shading problem with javax classes
# Conflicts: # src/main/java/com/launchdarkly/client/Components.java # src/main/java/com/launchdarkly/client/LDConfig.java # src/main/java/com/launchdarkly/client/StreamProcessor.java # src/main/java/com/launchdarkly/sdk/server/DefaultEventProcessor.java # src/main/java/com/launchdarkly/sdk/server/DefaultFeatureRequestor.java # src/main/java/com/launchdarkly/sdk/server/DiagnosticEvent.java # src/main/java/com/launchdarkly/sdk/server/HttpConfiguration.java # src/main/java/com/launchdarkly/sdk/server/LDClient.java # src/main/java/com/launchdarkly/sdk/server/Util.java # src/test/java/com/launchdarkly/client/UtilTest.java # src/test/java/com/launchdarkly/sdk/server/DiagnosticEventTest.java # src/test/java/com/launchdarkly/sdk/server/LDConfigTest.java # src/test/java/com/launchdarkly/sdk/server/StreamProcessorTest.java
(4.x) add getters for all properties on EvaluationReason; deprecate subclasses
# Conflicts: # src/main/java/com/launchdarkly/client/EvaluationReason.java # src/test/java/com/launchdarkly/client/EvaluationReasonTest.java
(4.x) add scoped configuration for HTTP options
Java SDK should only log exception stacktraces at debug level
# Conflicts: # gradle.properties
# Conflicts: # src/main/java/com/launchdarkly/client/EvaluationReason.java # src/main/java/com/launchdarkly/client/LDConfig.java # src/test/java/com/launchdarkly/client/EvaluationReasonTest.java
(5.0) adapt JMH benchmarks for 5.0
# Conflicts: # CONTRIBUTING.md # src/main/java/com/launchdarkly/sdk/server/Evaluator.java # src/main/java/com/launchdarkly/sdk/server/LDClient.java
(5.0 - #10) test coverage improvements + minor fixes
(5.0 - #11) add HTTP default headers method + some component refactoring
# Conflicts: # src/main/java/com/launchdarkly/sdk/server/Components.java # src/main/java/com/launchdarkly/sdk/server/LDClient.java
(5.0) use simpler and more stable logger names
# Conflicts: # src/main/java/com/launchdarkly/sdk/server/ComponentsImpl.java # src/main/java/com/launchdarkly/sdk/server/LDClient.java
# Conflicts: # src/main/java/com/launchdarkly/sdk/server/integrations/FileDataSourceImpl.java
(5.0 - #12) final test coverage improvements, for now, with enforcement
support loading file data from a classpath resource
LaunchDarklyCI
pushed a commit
that referenced
this pull request
Jun 2, 2020
(5.0 - #3) massive rename of all SDK packages
bwoskow-ld
approved these changes
Jun 2, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[5.0.0] - 2020-06-02
This is a major rewrite that introduces a cleaner API design, adds new features, and makes the SDK code easier to maintain and extend. See the Java 4.x to 5.0 migration guide for an in-depth look at the changes in this version; the following is a summary.
(For early adopters who have used the the 5.0.0-rc2 beta release: some things have changed between 5.0.0-rc2 and this full release. The 5.0.0-rc2 release notes have been updated with a section describing these changes.)
Added:
LDClient.getFlagTracker()
. (#83)LDClient.getDataSourceStatusProvider()
. This allows you to check the current connection status, and to be notified if this status changes. (#184)LDClient.getDataStoreStatusProvider()
. This allows you to check whether database updates are succeeding, to be notified if this status changes, and to get caching statistics.FileData
tool now supports reading flag data from a classpath resource as if it were a data file. SeeFileDataSourceBuilder.classpathResources()
. (#193)LDConfig.Builder.logging()
is a new configuration category for options related to logging. Currently the only such option isescalateDataSourceOutageLoggingAfter
, 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.UserAttribute
class provides a less error-prone way to refer to user attribute names in configuration, and can also be used to get an arbitrary attribute from a user.LDGson
andLDJackson
classes allow SDK classes likeLDUser
to be easily converted to or from JSON using the popular Gson and Jackson frameworks.Changed (requirements/dependencies/build):
Changed (API changes):
com.launchdarkly.sdk
andcom.launchdarkly.sdk.server
.com.launchdarkly.sdk.server.integrations
andcom.launchdarkly.sdk.server.interfaces
.java.time.Duration
is now used for configuration properties that represent an amount of time, instead of using a number of milliseconds or seconds.LDClient.initialized()
has been renamed toisInitialized()
.LDClient.intVariation()
anddoubleVariation()
now returnint
anddouble
, not the nullableInteger
andDouble
.EvaluationDetail.getVariationIndex()
now returnsint
instead ofInteger
.EvaluationReason
is now a single concrete class rather than an abstract base class.FeatureStore
andUpdateProcessor
have been renamed toDataStore
andDataSource
. The factory interfaces for these components now receive SDK configuration options in a different way that does not expose other components' configurations to each other.PersistentDataStore
interface for creating your own database integrations has been simplified by moving all of the serialization and caching logic into the main SDK code.Changed (behavioral changes):
com.launchdarkly.sdk.server.LDClient
, while messages about specific areas of functionality are logged under that name plus.DataSource
(streaming, polling, file data, etc.),.DataStore
(database integrations),.Evaluation
(unexpected errors during flag evaluations), or.Events
(analytics event processing).Components.noEvents()
, the SDK now avoids generating any analytics event objects internally. Previously they were created and then discarded, causing unnecessary heap churn.ERROR
level in most cases but sometimes atWARN
level. They are now all atWARN
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 specialERROR
-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 newlogDataSourceOutageAsErrorAfter
option inLoggingConfigurationBuilder
. (#190)Set
.Thread.MIN_PRIORITY
by default (as all the other SDK threads already did) but the priority can be changed as described above.Fixed:
LDClient.version()
previously could not be used if the SDK classes were not packaged in their original jar. It now works correctly regardless of deployment details.Removed:
LDConfig.Builder()
methods, which have been replaced by the modular configuration syntax that was already added in the 4.12.0 and 4.13.0 releases. See the migration guide for details on how to update your configuration code if you were using the older syntax.