Skip to content

Releases: statsig-io/java-server-sdk

v0.16.2 - Fix bug with str_matches regex evaluation

01 Aug 16:37
Compare
Choose a tag to compare

Fix issue where str_matches was not correctly evaluating regular expressions passed down from the server.

v0.16.1 - add back getLayerWithExposureLoggingDisabled function

08 Jul 21:55
bc21cae
Compare
Choose a tag to compare
  • adding back getLayerWithExposureLoggingDisabled function so that layer can be fetched without auto exposure logging.
  • also added getLegacyExposureMetadata on Layer to retrieve legacy exposure metadata. This is only to maintain some previous behavior, do not use unless you know what you are doing

v0.15.0 - [internal] Adds error boundary and concurrency tests

15 Jun 23:16
203fc29
Compare
Choose a tag to compare

Internal updates:

Adds test cases for using the SDK in multiple threads

Adds error boundary to catch exceptions, log to statsig, and return default values to handle potential failures

Fixes the not_in_segment_list condition (which is currently unused, but could be used in the future)

v0.14.2 - bootstrap options and getLayer API with custom logging

09 May 23:32
Compare
Choose a tag to compare

You can now bootstrap the java server SDK with a previous set of rules for you gates and configs via two new options in StatsigOptions:

bootstrapValues: String?
rulesUpdatedCallback: ((rules: String) -> Unit)?

bootstrapValues - a string that represents all rules for all feature gates, dynamic configs and experiments. It can be provided to bootstrap the Statsig server SDK at initialization in case your server runs into network issue or Statsig server is down temporarily.

rulesUpdatedCallback - a callback function that's called whenever we have an update for the rules; it's called with a logical timestamp and a JSON string (used as is for bootstrapValues mentioned above).

Also added a new API getLayerWithCustomExposureLogging to for customers to get a Layer object without automatic exposure loggings. The onExposure parameter on the function allows you to pass your own handler to handle exposure loggings.

v0.14.0 - Add support for StatsigOptions.bootstrapValues

25 Jul 22:17
27515ca
Compare
Choose a tag to compare
Merge pull request #72 from statsig-io/v0.14.0

v0.14.0

v0.13.1 - temporarily expose value field on Layer object

08 Apr 07:23
a96e499
Compare
Choose a tag to compare

this is a temporary release only, do not depend on this field being available for future releases

v0.13.0 - add API getLayerWithExposureLoggingDisabled

08 Apr 06:29
5c61e30
Compare
Choose a tag to compare

This is a temporary API that will be removed in a later release, do NOT depend on it!

v0.12.0 - Add Support for Layers

22 Mar 22:46
Compare
Choose a tag to compare

Release Notes

  • Introduces getLayer API to Statsig, adding the ability to get values via a Layer configuration set on the Statsig Console. See docs.statsig.com/layers
  • Fixes a bug in DynamicConfig.getDouble
  • Improved the logic to sync id lists

Bug Insights - Unsafe Type Casting

We use GSON for parsing of JSON objects. By default, GSON treats all numbers as Double types. We had some unsafe casts in the SDK that convert Int as Double, if hit, it would have thrown a ClassCastException.

Impacted Versions: v0.11.0 and below

The SDK has been updated to correctly converts these values to the desired type.

v0.11.0 - 2 API changes related to experiment

03 Mar 00:52
5b55cc2
Compare
Choose a tag to compare
  1. Added a new API getExperimentWithExposureLoggingDisabled. This does the same thing with getExperiment, except for that it does not log an exposure for the user.
  2. Added logic to getExperimentInLayerForUser so that it takes overrides into account.

v0.10.0 - add API getExperimentInLayerForUser

21 Jan 02:03
b3fdaa1
Compare
Choose a tag to compare
  • Added a new API getExperimentInLayerForUser(user: StatsigUser, layerName: String, disableExposure: Boolean = false): DynamicConfig, which returns a DynamicConfig object representing the experiment's config that the user is in within the specified layer.
  • If the user is NOT allocated to any experiment, then the getName() function on the DynamicConfig object will be an empty String.
  • by default this function will log an exposure for the experiment the user is in. This can be disabled by setting the 3rd parameter disableExposure to true.
  • The API is also available as getExperimentInLayerForUserAsync for Java.