Skip to content

Releases: optimizely/java-sdk

Release 3.0.0-RC

07 Nov 17:53
Compare
Choose a tag to compare
Release 3.0.0-RC Pre-release
Pre-release

3.0.0-RC

November 7th, 2018

This is the release candidate for the 3.0 SDK, which includes a number of improvements to audience targeting along with a few bug fixes.

New Features

  • Support for number-valued and boolean-valued attributes. (#213)
  • Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, exact, and “exists” matches for numbers; and “exact”, and “exists” matches for booleans.
  • Built-in datafile version compatibility checks so that SDKs will not initialize with a newer datafile it is not compatible with. (#209)
  • Audience combinations within an experiment are unofficially supported in this release.

Breaking Changes

  • Previously, notification listeners filtered non-string attribute values from the data passed to registered listeners. To support our growing list of supported attribute values, we’ve changed this behavior. Notification listeners will now post any value type passed as an attribute. Therefore, the interface of the notification listeners has changed to accept a Map<String, ?>.
  • Update to use Java 1.7 (#208)

Bug Fixes

  • refactor: Performance improvements for JacksonConfigParser (#209)
  • refactor: typeAudience.combinations will not be string encoded like audience.combinations. To handle this we created a new parsing type TypedAudience.
  • fix for exact match when dealing with integers and doubles. Created a new Numeric match type.
  • make a copy of attributes passed in to avoid any concurrency problems. Addresses GitHub isue in Optimizely Andriod SDK.

3.0.0-alpha

10 Oct 22:23
61f6aad
Compare
Choose a tag to compare
3.0.0-alpha Pre-release
Pre-release

October 10th, 2018

This is the alpha release of the 3.0 SDK, which includes a number of improvements to audience targeting along with a few bug fixes.

New Features

  • Support for number-valued and boolean-valued attributes. (#213)
  • Support for audiences with new match conditions for attribute values, including “substring” and “exists” matches for strings; “greater than”, “less than”, “exact”, and “exists” matches for numbers; and “exact” and “exists” matches for booleans.
  • Built-in datafile version compatibility checks so that SDKs will not initialize with a newer datafile it is not compatible with. (#209)

Breaking Changes

  • Previously, notification listeners filtered non-string attribute values from the data passed to registered listeners. To support our growing list of supported attribute values, we’ve changed this behavior. Notification listeners will now post any value type passed as an attribute. Therefore, the interface of the notification listeners has changed to accept a Map<String, ?>.
  • Update to use Java 1.7 (#208)

Bug Fixes

  • refactor: Performance improvements for JacksonConfigParser (#209)

Release 2.1.3

21 Sep 23:01
a85dac7
Compare
Choose a tag to compare

2.1.3 - September 21st, 2018

Bug Fixes

  • fix(attributes): Filters out attributes with null values from the event payload (#204)

Release 2.1.2

01 Aug 21:50
6f86613
Compare
Choose a tag to compare

August 1st, 2018

Bug Fixes

  • Move serialization to LogEvent.getBody() to improve performance of API calls (#201)

2.1.1

19 Jun 23:12
370a8e8
Compare
Choose a tag to compare
chore: release 2.1.1 (#195)

* Fix impression sent from feature experiment variation toggled off. (#193)

2.0.2

19 Jun 23:12
5dbee7e
Compare
Choose a tag to compare
chore: release 2.0.2 (#194)

* Fix impression sent from feature experiment variation toggled off. (#193)

2.1.0

15 Jun 20:08
727bfc3
Compare
Choose a tag to compare

June 15th, 2018

  • Introduces support for bot filtering.

2.0.1 Release

25 Apr 18:00
745bd92
Compare
Choose a tag to compare

2.0.1

April 25th, 2018

This is a patch release of the Optimizely SDK for 2.0.0 which is a major release.

Bug Fixes

  • Checking for invalid variables passed into getEnabledFeature, Activate, getVariation and track.

2.0.0

12 Apr 21:26
74b1cc6
Compare
Choose a tag to compare

April 12th, 2018

This major release of the Optimizely SDK introduces APIs for Feature Management. It also introduces some breaking changes listed below.

New Features

  • Introduces the isFeatureEnabled API to determine whether to show a feature to a user or not.
Boolean enabled = optimizelyClient.isFeatureEnabled("my_feature_key", "user_1", userAttributes);
  • You can also get all the enabled features for the user by calling the following method which returns a list of strings representing the feature keys:
ArrayList<String> enabledFeatures = optimizelyClient.getEnabledFeatures("user_1", userAttributes);
  • Introduces Feature Variables to configure or parameterize your feature. There are four variable types: Integer, String, Double, Boolean.
String stringVariable = optimizelyClient.getFeatureVariableString("my_feature_key", "string_variable_key", "user_1");
Integer integerVariable = optimizelyClient.getFeatureVariableInteger("my_feature_key", "integer_variable_key", "user_1");
Double doubleVariable = optimizelyClient.getFeatureVariableDouble("my_feature_key", "double_variable_key", "user_1");
Boolean booleanVariable = optimizelyClient.getFeatureVariableBoolean("my_feature_key", "boolean_variable_key", "user_1");

Breaking changes

  • The track API with revenue value as a stand-alone parameter has been removed. The revenue value should be passed in as an entry of the event tags map. The key for the revenue tag is revenue and will be treated by Optimizely as the key for analyzing revenue data in results.
Map<String, Object> eventTags = new HashMap<String, Object>();

// reserved "revenue" tag
eventTags.put("revenue", 6432);

optimizelyClient.track("event_key", "user_id", userAttributes, eventTags);
  • We have removed deprecated classes with the NotificationBroadcaster in favor of the new API with the NotificationCenter. We have streamlined the API so that it is easily usable with Java Lambdas in Java 1.8+. We have also added some convenience methods to add these listeners. Finally, some of the API names have changed slightly (e.g. clearAllNotifications() is now clearAllNotificationListeners())

2.0.0 Beta 8

03 Apr 19:05
00c2312
Compare
Choose a tag to compare
2.0.0 Beta 8 Pre-release
Pre-release

2.0.0-beta8

April 3rd, 2018

This build includes everything from 2.0.0-beta7. There are breaking changes to notification listeners.

Breaking changes

  • We have removed depercated classes with the NotificationBroadcaster in favor of the new API with the NotificationCenter. We have streamlined the API so that it is easily usable with Java Lambdas. We have also added some convenience methods to add these listeners. Finally, some of the API names have changed slightly (e.g. clearAllNotifications() is now clearAllNotificationListeners())