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

Commit 14126a9

Browse files
prepare 5.6.3 release (#248)
1 parent 775e79c commit 14126a9

40 files changed

+292
-520
lines changed

.circleci/config.yml

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,12 @@ workflows:
99
- build-linux
1010
- test-linux:
1111
name: Java 8 - Linux - OpenJDK
12-
docker-image: circleci/openjdk:8
13-
requires:
14-
- build-linux
15-
- test-linux:
16-
name: Java 9 - Linux - OpenJDK
17-
docker-image: circleci/openjdk:9
18-
requires:
19-
- build-linux
20-
- test-linux:
21-
name: Java 10 - Linux - OpenJDK
22-
docker-image: circleci/openjdk:10
12+
docker-image: cimg/openjdk:8.0
2313
requires:
2414
- build-linux
2515
- test-linux:
2616
name: Java 11 - Linux - OpenJDK
27-
docker-image: circleci/openjdk:11
28-
requires:
29-
- build-linux
30-
- test-linux:
31-
name: Java 13 - Linux - OpenJDK
32-
docker-image: circleci/openjdk:13-jdk-buster
33-
requires:
34-
- build-linux
35-
- test-linux:
36-
name: Java 14 - Linux - OpenJDK
37-
docker-image: circleci/openjdk:14-jdk-buster
38-
with-coverage: true
17+
docker-image: cimg/openjdk:11.0
3918
requires:
4019
- build-linux
4120
- packaging:
@@ -50,7 +29,7 @@ workflows:
5029
jobs:
5130
build-linux:
5231
docker:
53-
- image: circleci/openjdk:8u131-jdk # To match the version pre-installed in Ubuntu 16 and used by Jenkins for releasing
32+
- image: cimg/openjdk:8.0
5433
steps:
5534
- checkout
5635
- run: cp gradle.properties.example gradle.properties
@@ -134,7 +113,7 @@ jobs:
134113

135114
packaging:
136115
docker:
137-
- image: circleci/openjdk:8
116+
- image: cimg/openjdk:8.0
138117
steps:
139118
- run: java -version
140119
- run: sudo apt-get install make -y -q
@@ -154,7 +133,7 @@ jobs:
154133

155134
benchmarks:
156135
docker:
157-
- image: circleci/openjdk:11
136+
- image: cimg/openjdk:11.0
158137
steps:
159138
- run: java -version
160139
- run: sudo apt-get install make -y -q

.ldrelease/config.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
version: 2
2+
13
repo:
24
public: java-server-sdk
35
private: java-server-sdk-private
@@ -8,16 +10,19 @@ publications:
810
- url: https://javadoc.io/doc/com.launchdarkly/launchdarkly-java-server-sdk
911
description: documentation (javadoc.io)
1012

11-
template:
12-
name: gradle
13+
jobs:
14+
- docker:
15+
image: gradle:6.8.3-jdk11
16+
template:
17+
name: gradle
1318

14-
releasableBranches:
19+
branches:
1520
- name: master
1621
description: 5.x
1722
- name: 4.x
1823

1924
documentation:
20-
githubPages: true
25+
gitHubPages: true
2126

2227
sdk:
2328
displayName: "Java"

.ldrelease/publish-docs.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ It is now possible to inject feature flags into the client from local JSON or YA
448448
## [4.0.0] - 2018-05-10
449449

450450
### Changed:
451-
- To reduce the network bandwidth used for analytics events, feature request events are now sent as counters rather than individual events, and user details are now sent only at intervals rather than in each event. These behaviors can be modified through the LaunchDarkly UI and with the new configuration option `inlineUsersInEvents`. For more details, see [Analytics Data Stream Reference](https://docs.launchdarkly.com/v2.0/docs/analytics-data-stream-reference).
451+
- To reduce the network bandwidth used for analytics events, feature request events are now sent as counters rather than individual events, and user details are now sent only at intervals rather than in each event. These behaviors can be modified through the LaunchDarkly UI and with the new configuration option `inlineUsersInEvents`.
452452
- When sending analytics events, if there is a connection error or an HTTP 5xx response, the client will try to send the events again one more time after a one-second delay.
453453
- The `LdClient` class is now `final`.
454454

@@ -509,7 +509,7 @@ _This release was broken and should not be used._
509509

510510
## [2.5.0] - 2018-01-08
511511
## Added
512-
- Support for specifying [private user attributes](https://docs.launchdarkly.com/docs/private-user-attributes) in order to prevent user attributes from being sent in analytics events back to LaunchDarkly. See the `allAttributesPrivate` and `privateAttributeNames` methods on `LDConfig.Builder` as well as the `privateX` methods on `LDUser.Builder`.
512+
- Support for specifying [private user attributes](https://docs.launchdarkly.com/home/users/attributes#creating-private-user-attributes) in order to prevent user attributes from being sent in analytics events back to LaunchDarkly. See the `allAttributesPrivate` and `privateAttributeNames` methods on `LDConfig.Builder` as well as the `privateX` methods on `LDUser.Builder`.
513513

514514
## [2.4.0] - 2017-12-20
515515
## Changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Contributing to the LaunchDarkly Server-side SDK for Java
22

3-
LaunchDarkly has published an [SDK contributor's guide](https://docs.launchdarkly.com/docs/sdk-contributors-guide) that provides a detailed explanation of how our SDKs work. See below for additional information on how to contribute to this SDK.
3+
LaunchDarkly has published an [SDK contributor's guide](https://docs.launchdarkly.com/sdk/concepts/contributors-guide) that provides a detailed explanation of how our SDKs work. See below for additional information on how to contribute to this SDK.
44

55
## Submitting bug reports and feature requests
66

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
## LaunchDarkly overview
77

8-
[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/docs/getting-started) using LaunchDarkly today!
8+
[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!
99

1010
[![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly)
1111

@@ -17,13 +17,13 @@ This version of the LaunchDarkly SDK works with Java 8 and above.
1717

1818
Three variants of the SDK jar are published to Maven:
1919

20-
* The default uberjar - this is accessible as `com.launchdarkly:launchdarkly-java-server-sdk:jar` and is the dependency used in the "[Getting started](https://docs.launchdarkly.com/docs/java-sdk-reference#section-getting-started)" section of the SDK reference guide as well as in the [`hello-java`](https://github.com/launchdarkly/hello-java) sample app. This variant contains the SDK classes, and all of the SDK's dependencies except for SLF4J, which must be provided by the host application. The bundled dependencies have shaded package names (and are not exported in OSGi), so they will not interfere with any other versions of the same packages.
20+
* The default uberjar - this is accessible as `com.launchdarkly:launchdarkly-java-server-sdk:jar` and is the dependency used in the "[Getting started](https://docs.launchdarkly.com/sdk/server-side/java#getting-started)" section of the SDK reference guide as well as in the [`hello-java`](https://github.com/launchdarkly/hello-java) sample app. This variant contains the SDK classes, and all of the SDK's dependencies except for SLF4J, which must be provided by the host application. The bundled dependencies have shaded package names (and are not exported in OSGi), so they will not interfere with any other versions of the same packages.
2121
* The extended uberjar - add `<classifier>all</classifier>` in Maven, or `:all` in Gradle. This is the same as the default uberjar except that SLF4J is also bundled, without shading (and is exported in OSGi).
2222
* The "thin" jar - add `<classifier>thin</classifier>` in Maven, or `:thin` in Gradle. This contains _only_ the SDK classes.
2323

2424
## Getting started
2525

26-
Refer to the [SDK reference guide](https://docs.launchdarkly.com/docs/java-sdk-reference#section-getting-started) for instructions on getting started with using the SDK.
26+
Refer to the [SDK reference guide](https://docs.launchdarkly.com/sdk/server-side/java#getting-started) for instructions on getting started with using the SDK.
2727

2828
## Logging
2929

@@ -62,7 +62,7 @@ We encourage pull requests and other contributions from the community. Check out
6262
* Gradually roll out a feature to an increasing percentage of users, and track the effect that the feature has on key metrics (for instance, how likely is a user to complete a purchase if they have feature A versus feature B?).
6363
* Turn off a feature that you realize is causing performance problems in production, without needing to re-deploy, or even restart the application with a changed configuration file.
6464
* Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
65-
* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list.
65+
* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Read [our documentation](https://docs.launchdarkly.com/sdk) for a complete list.
6666
* Explore LaunchDarkly
6767
* [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information
6868
* [docs.launchdarkly.com](https://docs.launchdarkly.com/ "LaunchDarkly Documentation") for our documentation and SDK reference guides

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ libraries.test = [
161161
"ch.qos.logback:logback-classic:1.1.7",
162162
"com.fasterxml.jackson.core:jackson-core:${versions.jackson}",
163163
"com.fasterxml.jackson.core:jackson-databind:${versions.jackson}",
164-
"com.launchdarkly:test-helpers:1.0.0"
164+
"com.launchdarkly:test-helpers:1.1.0"
165165
]
166166

167167
configurations {

packaging-test/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ SDK_VERSION=$(shell grep "version=" $(PROJECT_DIR)/gradle.properties | cut -d '=
1515

1616
export TEMP_DIR=$(BASE_DIR)/temp
1717

18+
JAR=$(if $(shell which jar),jar,$(JAVA_HOME)/bin/jar)
19+
1820
LOCAL_VERSION=99.99.99-SNAPSHOT
1921
MAVEN_LOCAL_REPO=$(HOME)/.m2/repository
2022
TEMP_MAVEN_OUTPUT_DIR=$(MAVEN_LOCAL_REPO)/com/launchdarkly/launchdarkly-java-server-sdk/$(LOCAL_VERSION)
@@ -48,7 +50,7 @@ RUN_JARS_test-thin-jar=$(TEST_APP_JAR) $(SDK_THIN_JAR) \
4850
$(shell ls $(TEMP_DIR)/dependencies-internal/*.jar 2>/dev/null) \
4951
$(shell ls $(TEMP_DIR)/dependencies-external/*.jar 2>/dev/null)
5052

51-
classes_prepare=echo " checking $(1)..." && jar tf $(1) | grep '\.class$$' >$(TEMP_OUTPUT)
53+
classes_prepare=echo " checking $(1)..." && $(JAR) tf $(1) | grep '\.class$$' >$(TEMP_OUTPUT)
5254
classes_should_contain=echo " should contain $(2)" && grep "^$(1)/.*\.class$$" $(TEMP_OUTPUT) >/dev/null
5355
classes_should_not_contain=echo " should not contain $(2)" && ! grep "^$(1)/.*\.class$$" $(TEMP_OUTPUT)
5456

src/main/java/com/launchdarkly/sdk/server/Components.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static DataStoreFactory inMemoryDataStore() {
7474
* See {@link PersistentDataStoreBuilder} for more on how this method is used.
7575
* <p>
7676
* For more information on the available persistent data store implementations, see the reference
77-
* guide on <a href="https://docs.launchdarkly.com/sdk/concepts/feature-store">Using a persistent feature store</a>.
77+
* guide on <a href="https://docs.launchdarkly.com/sdk/concepts/data-stores">Using a persistent feature store</a>.
7878
*
7979
* @param storeFactory the factory/builder for the specific kind of persistent data store
8080
* @return a {@link PersistentDataStoreBuilder}
@@ -197,7 +197,7 @@ static PollingDataSourceBuilderImpl pollingDataSourceInternal() {
197197
* <p>
198198
* Passing this to {@link LDConfig.Builder#dataSource(DataSourceFactory)} causes the SDK
199199
* not to retrieve feature flag data from LaunchDarkly, regardless of any other configuration.
200-
* This is normally done if you are using the <a href="https://docs.launchdarkly.com/docs/the-relay-proxy">Relay Proxy</a>
200+
* This is normally done if you are using the <a href="https://docs.launchdarkly.com/home/relay-proxy">Relay Proxy</a>
201201
* in "daemon mode", where an external process-- the Relay Proxy-- connects to LaunchDarkly and populates
202202
* a persistent data store with the feature flag data. The data store could also be populated by
203203
* another process that is running the LaunchDarkly SDK. If there is no external process updating

src/main/java/com/launchdarkly/sdk/server/DefaultEventSender.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import java.text.SimpleDateFormat;
1414
import java.time.Duration;
1515
import java.util.Date;
16+
import java.util.Locale;
1617
import java.util.UUID;
1718

1819
import static com.launchdarkly.sdk.server.Util.checkIfErrorIsRecoverableAndLog;
@@ -38,7 +39,8 @@ final class DefaultEventSender implements EventSender {
3839
private static final String EVENT_SCHEMA_VERSION = "3";
3940
private static final String EVENT_PAYLOAD_ID_HEADER = "X-LaunchDarkly-Payload-ID";
4041
private static final MediaType JSON_CONTENT_TYPE = MediaType.parse("application/json; charset=utf-8");
41-
private static final SimpleDateFormat HTTP_DATE_FORMAT = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
42+
private static final SimpleDateFormat HTTP_DATE_FORMAT = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz",
43+
Locale.US); // server dates as defined by RFC-822/RFC-1123 use English day/month names
4244
private static final Object HTTP_DATE_FORMAT_LOCK = new Object(); // synchronize on this because DateFormat isn't thread-safe
4345

4446
private final OkHttpClient httpClient;

0 commit comments

Comments
 (0)