Releases: harness/ff-java-server-sdk
1.8.0
What's Changed
Enhancements:
- FFM-12087 New
HarnessConfig
options:maxRequestRetry
: Defines the maximum number of retry attempts for the following request: authentication, polling, metrics, and reacting to stream eventsflushAnalyticsOnClose
: Indicates whether to flush analytics data when the SDK is closed.flushAnalyticsOnCloseTimeout
: The timeout for flushing analytics on SDK close.
For full details see associated Java docs
For sample usage see ConfigExample
Bug Fixes:
- FFM-12087:
- Fixed an issue where initial connection attempts to the stream, as well as reconnection attempts after disconnection, were limited to 5 tries. Now, reconnection attempts have no limit and use exponential backoff, with a 60-second cap on retry intervals reached after several attempts.
- Fixed a memory leak caused when the SDK was closed but the stream’s
ScheduledExecutorService
remained active. All SDK resources are now properly shut down whenclose()
is called. - Fixed an issue where, after calling
close()
and shutting down the stream, the SDK would still make a poll request, resulting in error logs due to evicted network resources. Now, no polling requests are made afterclose()
is invoked.
by @erdirowlands in #203
Full Changelog: 1.7.0...1.8.0
1.7.0
What’s Changed
Enhancements:
Introduced the ability to store and retrieve FeatureSnapshot (previous and current feature config).
For more details: examples/src/main/java/io/harness/ff/examples/EventExampleWithFeatureSnapshot.java
Full Changelog: 1.6.1...1.7.0
1.6.1
What's Changed
- FFM-11654 Sort AND/OR rules when caching group instead of during an evaluation call, which could result in latency if a group is large by @erdirowlands in #192
New Contributors
- @erdirowlands made their first contribution in #192
Full Changelog: 1.6.0...1.6.1
1.6.0
What's Changed
- [FFM-10981] - Update Java SDK example to include a delay by @andybharness in #185
- [FFM-11193] - Target v2: Adding support for AND/OR in clauses by @andybharness in #186
- [FFM-10861] - Target v2: Return false when no clauses exist by @andybharness in #187
- [FFM-11356] - Add new query parameter to target-segments by @andybharness in #188
- [FFM-11425] - Add config option to supress SDK code 6001 by @andybharness in #189
- [FFM-11502] - Update BC to 1.78.1 by @andybharness in #190
- [FFM-11459] - Downgrade OpenAPI plugin to allow broader range of SpringBoot compatibility by @andybharness in #191
Full Changelog: 1.5.2...1.6.0
1.5.2
What's Changed
- [FFM-10816] - Remove metrics flush on map overflow by @andybharness in #183
- [FFM-10821] - Add Retry-After HTTP header support by @andybharness in #184
Known issues
On startup java.lang.NoSuchMethodError: kotlin.*
or similar is thrown.
This is caused by conflicting kotlin-stdlib
JARs on the classpath brought in by okhttp
.
- Make sure no other dependency brings in
kotlin-stdlib
earlier than1.4.10
- If you're using SpringBoot, it's recommend that you upgrade to at least
2.7.x
Full Changelog: 1.5.1...1.5.2
1.5.1
What's Changed
- [FFM-10377] - Update logback to remove CVE-2023-6481 by @andybharness in #180
- [FFM-10760] - Use a single ExecutorService for UpdateProcessor by @andybharness in #182
Known issues
On startup java.lang.NoSuchMethodError: kotlin.*
or similar is thrown.
This is caused by conflicting kotlin-stdlib
JARs on the classpath brought in by okhttp
.
- Make sure no other dependency brings in
kotlin-stdlib
earlier than1.4.10
- If you're using SpringBoot, it's recommend that you upgrade to at least
2.7.x
Full Changelog: 1.5.0...1.5.1
1.5.0
What's Changed
- FFM-10363 - Upgrade okhttp and fix CVE-2023-3635, CVE-2022-24329 & CVE-2020-29582 by @andybharness in #178
- FFM-10366 - Delete events throwing ApiException exception by @andybharness in #179
- FFM-10354 - Remove commons-collections4-4 by @andybharness in #173
- FFM-10355 - Remove maven-model by @andybharness in #174
- FFM-10356 - Remove threetenbp by @andybharness in #175
- FFM-10288 - Add GraalVM example application (experimental) by @andybharness in #176
- FFM-10361 - Add Gradle dependency-check plugin by @andybharness in #177
- FFM-5087 - Convert build from Maven to Gradle by @andybharness in #172
- Bump ch.qos.logback:logback-classic from 1.2.11 to 1.3.12 by @dependabot in #171
Notable changes
This release removes several large dependencies reducing the SDK's dependency footprint by approximately 2MB
Breaking change
Since version 1.4.x the Percentage Rollout feature this SDK release updates the Murmur3 hash calculation to align it to the GoLang SDK (and other SDKs). This means you may see target identifiers being remapped to different buckets when upgrading. This change is necessary to allow customers to see consistent bucketing across SDKs regardless of what language they use.
Known issues
On startup java.lang.NoSuchMethodError: kotlin.*
or similar is thrown.
This is caused by conflicting kotlin-stdlib
JARs on the classpath brought in by okhttp
.
- Make sure no other dependency brings in
kotlin-stdlib
earlier than1.4.10
- If you're using SpringBoot, it's recommend that you upgrade to at least
2.7.x
Full Changelog: 1.4.0...1.5.0
1.4.0
What's Changed
- [FFM-9924] - Update percentage rollout hash to match GoLang SDK by @andybharness in #168
- [FFM-10136] - Drop SSE event log down from INFO to DEBUG by @andybharness in #170
Breaking change
For version 1.4.x the Percentage Rollout feature this SDK release updates the Murmur3 hash calculation to align it to the GoLang SDK (and other SDKs). This means you may see target identifiers being remapped to different buckets when upgrading. This change is necessary to allow customers to see consistent bucketing across SDKs regardless of what language they use.
Full Changelog: 1.3.1...1.4.0
1.3.1
What's Changed
- [FFM-9691] - Add support for Java 21 by @andybharness in #164
- [FFM-9482] - Mark private attributes for removal by @andybharness in #165
- [FFM-9809] - Improved stream restart logic by @andybharness in #166
Known issues
On startup java.lang.NoSuchMethodError: kotlin.*
or similar is thrown.
This is caused by conflicting kotlin-stdlib JARs on the classpath brought in by okhttp.
- Make sure no other dependency brings in kotlin-stdlib earlier than 1.4.10
- If you're using SpringBoot, it's recommend that you upgrade to at least 2.7.x
Full Changelog: 1.3.0...1.3.1
1.3.0
What's Changed
- FFM-8688 - Handle accountID as an optional field in the JWT token by @andybharness in #157
- FFM-8148 - Standardise SDK error codes by @andybharness in #158
- FFM-8840 - Remove Google Guava libraries, part #1 by @andybharness in #159
- FFM-8840 - Remove Google Guava libraries, part #2 by @andybharness in #161
- FFM-4023 - JavaSDK local connector doesn't create metrics folder by @andybharness in #162
Breaking API changes from 1.2.x
MapDB and Guava dependencies were removed as part of this release to reduce the footprint of the SDK. FileMapStore
is no longer provided since it was based on MapDB. A drop in replacement called XmlFileMapStore
has been provided which uses standard Java libraries to store flags in an XML file. If you still require MapDB support you can provide your own implementation by overriding the Storage
interface.
Known issues
On startup java.lang.NoSuchMethodError: kotlin.*
or similar is thrown.
This is caused by conflicting kotlin-stdlib JARs on the classpath brought in by okhttp.
- Make sure no other dependency brings in kotlin-stdlib earlier than 1.4.10
- If you're using SpringBoot, it's recommend that you upgrade to at least 2.7.x
Full Changelog: 1.2.4...1.3.0