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

Commit c23506c

Browse files
LaunchDarklyReleaseBoteli-darklyLaunchDarklyReleaseBotaengelbergantonmos
authored
prepare 6.0.2 release (#291)
* avoid creating List iterators during evaluations * remove unnecessary copy * update data model for U2C schema changes, without using contexts yet * more model updates + tests * update benchmark code * more model updates * use LDContext in Evaluator; add per-kind targets logic * rm redundant test * skip inapplicable contract tests * implement new context kind logic for clauses * implement new context kind logic for rollouts * skip inapplicable contract tests * add context kind logic for regular segments and big segments * allow segments to reference other segments * guard against prerequisite cycles * implement event context redaction logic * misc fixes * implement the rest of U2C event logic * misc fixes * fix benchmarks * add contextKinds to summary + misc fixes * events schema 4 * update client API to use contexts; enable v2 contract tests * misc fixes * javadoc & test app fixes * javadoc fix * javadoc fix * unskip some tests since the behavior was fixed in java-sdk-common * bad attribute in clause should be reported as an error * update TestData to be context-aware * misc fixes + javadoc * fix allFlagsState to not generate prereq eval events * factor context deduplication logic out of DefaultEventProcessor * fix JSON serialization test * refactor diagnostic events logic to abstract out server-side-specific info * separate inner events implementation from public interface, don't expose event types * fix benchmarks * fix benchmarks * rm unused * rm unused * separate Java-SDK-specific HTTP functionality from events logic * fix tests * don't close the underlying Writer when we stop using the JsonWriter * rm unused * remove references to Java 8 types and Guava from shared event/HTTP code * fix benchmarks * also try not to use java.time.Duration in the event tests * also avoid using lambdas in event test code * move shared code into internal packages before splitting it off * add "...ForAll" TestData methods to replace "...ForAllUsers" * replace all component factory interfaces with a single generic one * change HttpConfiguration and LoggingConfiguration to concrete classes * bump okhttp & okhttp-eventsource dependencies * update comment to clarify that level() doesn't apply to SLF4J * update readme to mention different logging examples in hello-java * switch to use snapshot build of java-logging, pending next release * level setting does not apply to SLF4J and JUL * use java-logging 1.1.0 release * make sure META-INF files are never mistaken for classes and relocated * update shared data store test logic to pass ClientContext with logger * enable external javadoc links for com.launchdarkly.logging types * use variable for dependency version * remove another Guava usage * make events test code independent of server-side data model * fix flaky big segment status polling tests * fix benchmark code * update benchmarks * javadoc formatting * javadocs * undo accidental reversion * remove some more stray references to java-server-sdk test helper code * more efficient equals() and hashCode() for Operator * method can be static * clarify comment * typo * remove event logic, migrate to using java-sdk-internal * adjust for API change * use constant * fix packaging tests * remove inapplicable benchmarks * add error message if makefile can't run * force result to be "not in experiment" if bucketing calculation failed due to context kind not found * use newer HTTP/TCP test helpers * Update Windows orb, fix Windows JDK install in CI (#372) * update snakeyaml for CVE-CVE-2022-25857 * latest snakeyaml is 1.31 * bump snakeyaml version for CVE-2022-38752 * disable Windows Java 11 build * minor test updates for java-sdk-internal API changes * fix packaging of com.launchdarkly.logging classes * rm debugging * reconsidered - let's include the logging classes in the jars * fix packaging test logic * correct documentation * remove secondary meta-attribute * rm obsolete references to UserAttribute * support passing LDUser instead of LDContext in all SDK methods (#379) * support passing LDUser instead of LDContext in all SDK methods * actually we should use default methods * rm unused * enable test capability for user type * update java-sdk-common dependency * use okhttp-eventsource 3.0.0-SNAPSHOT * use non-snapshot okhttp-eventsource * include nested segment references in dependency update checks * use java-sdk-internal 1.0.0 * remove SLF4J dependency, remove "all" jar, simplify build (#381) * don't generate evaluation events for invalid context * use synchronous EventSource * comments * revise implementation of special HTTP configurations test * make sure we set readTimeout last * use okhttp-eventsource 4.0.0 * use newer HTTP test helpers (#385) * use synchronous EventSource (5.x backport) * update Gradle to 7.6 + fix snapshot releases * fix #288 (#289) * add unit test for externally-contributed YAML security fix * backport YAML CVE fix from 6.x * prepare 5.10.5 release (#290) * update CI and Gradle to test with newer JDKs (#259) * update okhttp to 3.14.9 (fixes incompatibility with OpenJDK 8.0.252) * prepare 4.14.2 release (#205) * Releasing version 4.14.2 * update okhttp to 4.8.1 (fixes incompatibility with OpenJDK 8.0.252) * gitignore * Bump SnakeYAML from 1.19 to 1.26 to address CVE-2017-18640 * prepare 4.14.3 release (#209) * Releasing version 4.14.3 * comments * only log initialization message once in polling mode * [ch89935] Correct some logging call format strings (#264) Also adds debug logs for full exception information in a couple locations. * [ch90109] Remove outdated trackMetric comment from before service support. (#265) * Fix compatibility with Java 7. * Remove import that is no longer used. * add Java 7 build (#267) * prepare 4.14.4 release (#214) * Releasing version 4.14.4 * add and use getSocketFactory * alignment * add socketFactory to builder * test socket factory builder * preserve dummy CI config file when pushing to gh-pages (#271) * fix concatenation when base URI has a context path (#270) * fix shaded jar builds to exclude Jackson classes and not modify Jackson return types (#268) * add test httpClientCanUseCustomSocketFactory for DefaultFeatureRequestor * add httpClientCanUseCustomSocketFactory() test for DefaultEventSenderTest * add httpClientCanUseCustomSocketFactory() test to StreamProcessorTest * pass URI to in customSocketFactory event test * make test less ambiguous * copy rules to new FlagBuilder instances (#273) * Bump guava version (#274) * Removed the guides link * increment versions when loading file data, so FlagTracker will work (#275) * increment versions when loading file data, so FlagTracker will work * update doc comment about flag change events with file data * add ability to ignore duplicate keys in file data (#276) * add alias events (#278) * add alias events and function * update tests for new functionality * update javadoc strings * add validation of javadoc build to CI * update commons-codec to 1.15 (#279) * Add support for experiment rollouts * add tests and use seed for allocating user to partition * test serialization and add check for isExperiment * fix PollingProcessorTest test race condition + other test issues (#282) * use launchdarkly-java-sdk-common 1.1.0-alpha-expalloc.2 * Update src/test/java/com/launchdarkly/sdk/server/EvaluatorTest.java Co-authored-by: Sam Stokes <[email protected]> * Update src/test/java/com/launchdarkly/sdk/server/EvaluatorTest.java Co-authored-by: Sam Stokes <[email protected]> * Update src/test/java/com/launchdarkly/sdk/server/EvaluatorTest.java Co-authored-by: Sam Stokes <[email protected]> * Update src/test/java/com/launchdarkly/sdk/server/EvaluatorTest.java Co-authored-by: Sam Stokes <[email protected]> * changes per code review comments * Please enter the commit message for your changes. Lines starting * fix null pointer exception * address code review comments * address more comments * missed a ! for isUntracked() * fix default boolean for json * make untracked FALSE by default * refactoring of bucketing logic to remove the need for an extra result object (#283) * add comment to enum * various JSON fixes, update common-sdk (#284) * simlpify the logic and make it match node/.Net sdks * Update src/main/java/com/launchdarkly/sdk/server/EventFactory.java Co-authored-by: Sam Stokes <[email protected]> * add the same comment as the Node SDK * Remove outdated/meaningless doc comment. (#286) * protect against NPEs if flag/segment JSON contains a null value * use java-sdk-common 1.2.0 * fix Jackson-related build issues (again) (#288) * update to okhttp-eventsource patch for stream retry bug, improve tests (#289) * update to okhttp-eventsource patch for stream retry bug, improve test * add test for appropriate stream retry * add public builder for FeatureFlagsState (#290) * add public builder for FeatureFlagsState * javadoc fixes * clarify FileData doc comment to say you shouldn't use offline mode (#291) * improve validation of SDK key so we won't throw an exception that contains the key (#293) * fix javadoc link in FileData comment (#294) * fix PollingProcessor 401 behavior and use new HTTP test helpers (#292) * re-fix metadata to remove Jackson dependencies, also remove Class-Path from manifest (#295) * make FeatureFlagsState.Builder.build() public (#297) * clean up tests using java-test-helpers 1.1.0 (#296) * use Releaser v2 config + newer CI images (#298) * [ch123129] Fix `PollingDataSourceBuilder` example. (#299) * Updates docs URLs * always use US locale when parsing HTTP dates * use Gson 2.8.9 * don't try to send more diagnostic events after an unrecoverable HTTP error * ensure module-info file isn't copied into our jars during build * use Gradle 7 * update build for benchmarks * more Gradle 7 compatibility changes for benchmark job * test with Java 17 in CI (#307) * test with Java 17 in CI * also test in Java 17 for Windows * fix choco install command * do date comparisons as absolute times, regardless of time zone (#310) * fix suppression of nulls in JSON representations (#311) * fix suppression of nulls in JSON representations * distinguish between situations where we do or do not want to suppress nulls * fix identify/track null user key check, also don't create index event for alias * use latest java-sdk-common * fix setting of trackEvents/trackReason in allFlagsState data when there's an experiment * implement contract tests (#314) * Merge Big Segments feature branch for 5.7.0 release (#316) Includes Big Segments implementation and contract test support for the new behavior. * Fix for pom including SDK common library as a dependency. (#317) * use new logging API * update readme notes about logging * set base logger name for SDK per test * comment * javadoc fixes * revert accidental commit * Upload JUnit XML to CircleCI on failure (#320) Fix a bug in the CircleCI config that was only uploading JUnit XML on _success_, not failure. * Add application tag support (#319) * Enforce 64 character limit on application tag values (#323) * fix "wrong type" logic in evaluations when default value is null * Rename master to main in .ldrelease/config.yml (#325) * Simpler way of setting base URIs in Java (#322) Now supports the `ServiceEndpoints` config for setting custom URIs for endpoints in a single place * update logging info in readme * use 1.0.0 release of logging package * misc cleanup * remove unnecessary extra interfaces, just use default methods instead * make BigSegmentStoreWrapper.pollingDetectsStaleStatus test less timing-sensitive * make LDEndToEndClientTest.test____SpecialHttpConfigurations less timing-sensitive * make data source status tests less timing-sensitive * use streaming JSON parsing for incoming LD data * fix tests * rm unused * rm unused * use okhttp-eventsource 2.6.0 * update eventsource to 2.6.1 to fix pom/manifest problem * increase efficiency of summary event data structures (#335) * make reusable EvaluationDetail instances as part of flag preprocessing (#336) * make evaluator result object immutable and reuse instances * comment * avoid creating List iterators during evaluations * remove unnecessary copy * fix allFlagsState to not generate prereq eval events * add "...ForAll" TestData methods to replace "...ForAllUsers" * bump okhttp & okhttp-eventsource dependencies * update comment to clarify that level() doesn't apply to SLF4J * update readme to mention different logging examples in hello-java * switch to use snapshot build of java-logging, pending next release * level setting does not apply to SLF4J and JUL * use java-logging 1.1.0 release * make sure META-INF files are never mistaken for classes and relocated * update shared data store test logic to pass ClientContext with logger * enable external javadoc links for com.launchdarkly.logging types * use variable for dependency version * fix flaky big segment status polling tests * Update Windows orb, fix Windows JDK install in CI (#372) * update snakeyaml for CVE-CVE-2022-25857 * latest snakeyaml is 1.31 * bump snakeyaml version for CVE-2022-38752 * disable Windows Java 11 build * fix packaging of com.launchdarkly.logging classes * rm debugging * reconsidered - let's include the logging classes in the jars * fix packaging test logic * correct documentation * use synchronous EventSource (5.x backport) * backport YAML CVE fix from 6.x Co-authored-by: LaunchDarklyCI <[email protected]> Co-authored-by: Eli Bishop <[email protected]> Co-authored-by: LaunchDarklyCI <[email protected]> Co-authored-by: Gavin Whelan <[email protected]> Co-authored-by: ssrm <[email protected]> Co-authored-by: Harpo Roeder <[email protected]> Co-authored-by: Ben Woskow <[email protected]> Co-authored-by: Elliot <[email protected]> Co-authored-by: Robert J. Neal <[email protected]> Co-authored-by: Robert J. Neal <[email protected]> Co-authored-by: Sam Stokes <[email protected]> Co-authored-by: LaunchDarklyReleaseBot <[email protected]> Co-authored-by: Ember Stevens <[email protected]> Co-authored-by: ember-stevens <[email protected]> Co-authored-by: Alex Engelberg <[email protected]> Co-authored-by: Alex Engelberg <[email protected]> * Releasing version 5.10.5 Co-authored-by: Eli Bishop <[email protected]> Co-authored-by: LaunchDarklyReleaseBot <[email protected]> Co-authored-by: Alex Engelberg <[email protected]> Co-authored-by: Anton Mostovoy <[email protected]> Co-authored-by: LaunchDarklyCI <[email protected]> Co-authored-by: LaunchDarklyCI <[email protected]> Co-authored-by: Gavin Whelan <[email protected]> Co-authored-by: ssrm <[email protected]> Co-authored-by: Harpo Roeder <[email protected]> Co-authored-by: Ben Woskow <[email protected]> Co-authored-by: Elliot <[email protected]> Co-authored-by: Robert J. Neal <[email protected]> Co-authored-by: Robert J. Neal <[email protected]> Co-authored-by: Sam Stokes <[email protected]> Co-authored-by: Ember Stevens <[email protected]> Co-authored-by: ember-stevens <[email protected]> Co-authored-by: Alex Engelberg <[email protected]>
1 parent f48cc99 commit c23506c

File tree

16 files changed

+227
-127
lines changed

16 files changed

+227
-127
lines changed

.circleci/config.yml

+6
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,17 @@ workflows:
1818
requires:
1919
- build-linux
2020
- test-linux:
21+
# current LTS version
2122
name: Java 17 - Linux - OpenJDK
2223
docker-image: cimg/openjdk:17.0
2324
with-coverage: true
2425
requires:
2526
- build-linux
27+
- test-linux:
28+
name: Java 19 - Linux - OpenJDK
29+
docker-image: cimg/openjdk:19.0
30+
requires:
31+
- build-linux
2632
- packaging:
2733
requires:
2834
- build-linux

.ldrelease/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ publications:
1212

1313
jobs:
1414
- docker:
15-
image: gradle:6.8.3-jdk11
15+
image: gradle:7.6-jdk11
1616
template:
1717
name: gradle
1818

.ldrelease/publish.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ set -ue
44

55
# Publish to Sonatype
66
echo "Publishing to Sonatype"
7-
./gradlew publishToSonatype closeAndReleaseRepository || { echo "Gradle publish/release failed" >&2; exit 1; }
7+
if [[ -n "${LD_RELEASE_IS_PRERELEASE}" ]]; then
8+
./gradlew publishToSonatype || { echo "Gradle publish/release failed" >&2; exit 1; }
9+
else
10+
./gradlew publishToSonatype closeAndReleaseRepository || { echo "Gradle publish/release failed" >&2; exit 1; }
11+
fi
12+

CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
All notable changes to the LaunchDarkly Java SDK will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org).
44

5+
## [5.10.5] - 2023-01-04
6+
### Fixed:
7+
- Fixed vulnerability [CVE-2022-1471](https://nvd.nist.gov/vuln/detail/CVE-2022-1471) which could allow arbitrary code execution if using `FileDataSource` with a YAML file. (Thanks, [antonmos](https://github.com/launchdarkly/java-server-sdk/pull/289)!)
8+
59
## [6.0.1] - 2022-12-20
610
### Changed:
711
- The internal implementation of the SSE client for streaming updates has been revised to use a single worker thread instead of two worker threads, reducing thread contention and memory usage.

build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ libraries.test = [
150150
"junit:junit:4.12",
151151
"com.fasterxml.jackson.core:jackson-core:${versions.jackson}",
152152
"com.fasterxml.jackson.core:jackson-databind:${versions.jackson}",
153-
"com.launchdarkly:test-helpers:1.3.0"
153+
"com.launchdarkly:test-helpers:2.0.1"
154154
]
155155

156156
configurations {
@@ -173,6 +173,7 @@ dependencies {
173173
}
174174

175175
checkstyle {
176+
toolVersion = "9.3"
176177
configFile file("${project.rootDir}/config/checkstyle/checkstyle.xml")
177178
}
178179

config/checkstyle/checkstyle.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<module name="JavadocPackage"/>
1111
<module name="TreeWalker">
1212
<module name="JavadocMethod">
13-
<property name="scope" value="public"/>
13+
<property name="accessModifiers" value="public"/>
1414
</module>
1515
<module name="JavadocType">
1616
<property name="scope" value="public"/>

contract-tests/service/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ext.versions = [
3030
"gson": "2.7",
3131
"logback": "1.1.3",
3232
"okhttp": "4.5.0",
33-
"testHelpers": "1.1.0",
33+
"testHelpers": "2.0.1",
3434
"launchdarklyJavaSdkCommon": project(":sdk").versions["launchdarklyJavaSdkCommon"]
3535
]
3636

contract-tests/service/src/main/java/sdktest/TestService.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public BadRequestException(String message) {
5858
}
5959
}
6060

61-
public static void main(String[] args) {
61+
public static void main(String[] args) throws Exception {
6262
// ((ch.qos.logback.classic.Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME)).setLevel(
6363
// Level.valueOf(config.logLevel.toUpperCase()));
6464

@@ -75,6 +75,11 @@ public static void main(String[] args) {
7575
server.getRecorder().setEnabled(false); // don't accumulate a request log
7676

7777
System.out.println("Listening on port " + PORT);
78+
79+
// need to explicitly sleep because HttpServer now starts as a daemon thread
80+
while (true) {
81+
Thread.sleep(1000);
82+
}
7883
}
7984

8085
private Status getStatus() {

gradle/wrapper/gradle-wrapper.jar

333 Bytes
Binary file not shown.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)