Skip to content

Merge Master on to 2.0.x for beta release #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 35 commits into from
Sep 29, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
7a53454
change ALPHA back to SNAPSHOT (#107)
wangjoshuah Jun 14, 2017
9cb5f71
remove revenue APIs (#108)
wangjoshuah Jun 14, 2017
046b4c3
remove v1 datafile support (#110)
wangjoshuah Jun 16, 2017
a18e267
Add Features to SDK (#112)
wangjoshuah Jun 16, 2017
146d6c3
deprecate live variable APIs (#113)
wangjoshuah Jun 17, 2017
8ecbcd1
create v4 test datafile (#114)
wangjoshuah Jun 19, 2017
a18812d
add layers and rollouts (#115)
wangjoshuah Jun 20, 2017
d88e027
updated BuildVersionInfo to try catch on generic exception
thomaszurkan-optimizely Jun 22, 2017
4c4950f
Merge pull request #117 from optimizely/tzurkan/fixBuildInfo
thomaszurkan-optimizely Jun 26, 2017
23b84fc
revise v4 datafile (#119)
wangjoshuah Jun 29, 2017
f232f4b
Feature Accessor APIs (#118)
wangjoshuah Jun 29, 2017
5071797
add features to project config (#120)
wangjoshuah Jul 3, 2017
4ee6409
parse v4 additive json (#121)
wangjoshuah Jul 5, 2017
7a57243
remove live variable APIs (#122)
wangjoshuah Jul 6, 2017
b068572
parameterize optimizely unit tests with v4 datafile (#123)
wangjoshuah Jul 7, 2017
32c4d15
make status optional in the creation of live variables (#126)
wangjoshuah Jul 11, 2017
f76fb96
update change log for new breaking change version 1.7.0 for support o…
thomaszurkan-optimizely Jul 13, 2017
ad49a4a
feature flag parsing (#130)
wangjoshuah Jul 27, 2017
40ead9a
Add support for numeric metrics (#129)
Jul 31, 2017
9acfab2
internal feature variable accessor support (#131)
wangjoshuah Aug 8, 2017
e41b2a0
Implement `isFeatureEnabled` API (#132)
wangjoshuah Aug 15, 2017
1f0e341
feature variable accessor apis (#133)
wangjoshuah Aug 16, 2017
9e9fd9f
refactor layerId property of FeatureFlag class to rolloutId (#134)
wangjoshuah Aug 21, 2017
4a2f0fa
parse rollouts (#135)
wangjoshuah Aug 22, 2017
38b2fb8
Feature/force bucketing (#136)
thomaszurkan-optimizely Aug 22, 2017
4eceb97
fix logging replacing %s with {} (#137)
thomaszurkan-optimizely Aug 25, 2017
7154aa3
Feature/changelog update (#138)
thomaszurkan-optimizely Aug 29, 2017
9085e0a
use precise distribution instead of trusty (#141)
wangjoshuah Sep 1, 2017
b378924
rollout bucketing (#140)
wangjoshuah Sep 2, 2017
6baf16f
ignore experiment status when bucketing rollout rule experiments (#142)
wangjoshuah Sep 12, 2017
77ed839
use trusty distribution (#145)
wangjoshuah Sep 28, 2017
ea5ccc9
allow travis to ship betas (#143)
wangjoshuah Sep 28, 2017
004b9e3
Prepare 2.0.0 Beta (#146)
wangjoshuah Sep 29, 2017
db8c758
Use generic badge for Apache License (#144)
wangjoshuah Sep 29, 2017
f4228f3
update CHANGELOG.md (#148)
wangjoshuah Sep 29, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
language: java
dist: trusty
jdk:
- openjdk7
- oraclejdk7
- openjdk8
- oraclejdk8
- oraclejdk9
install: true
script:
- "./gradlew clean"
Expand All @@ -20,4 +21,4 @@ cache:
branches:
only:
- master
- /^\d+\.\d+\.\d+(-SNAPSHOT|-alpha)?$/ # trigger builds on tags which are semantically versioned to ship the SDK.
- /^\d+\.\d+\.\d+(-SNAPSHOT|-alpha|-beta)?$/ # trigger builds on tags which are semantically versioned to ship the SDK.
63 changes: 61 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,63 @@
## 2.0.0
# Optimizely Java X SDK Changelog
## 2.0.0 Beta
September 29, 2017

This release is a beta release supporting feature flags and rollouts.

### New Features
#### Feature Flag Accessors
You can now use feature flags in the Java SDK. You can experiment on features and rollout features through the Optimizely UI.

- `isFeatureEnabled`
- `getFeatureVariableBoolean`
- `getFeatureVariableDouble`
- `getFeatureVariableInteger`
- `getFeatureVariableString`

### Breaking Changes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please mention here that we are dropping support for Java6

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


- Remove Live Variables accessors
- `getVariableString`
- `getVariableBoolean`
- `getVariableInteger`
- `getVariableDouble`
- Remove track with revenue as a parameter. Pass the revenue value as an event tag instead
- `track(String, String, long)`
- `track(String, String, Map<String, String>, long)`
- We will no longer run all unit tests in travis-ci against Java 7.
We will still continue to set `sourceCompatibility` and `targetCompatibility` to 1.6 so that we build for Java 6.

## 1.8.0

August 29, 2017

This release adds support for numeric metrics and forced bucketing (in code as opposed to whitelisting via project file).

### New Features

- Added `setForcedVariation` and `getForcedVariation`
- Added any numeric metric to event metrics.

### Breaking Changes

- Nothing breaking from 1.7.0

## 1.7.0

July 12, 2017

This release will support Android SDK release 1.4.0

### New Features

- Added `UserProfileService` interface to allow for sticky bucketing

### Breaking Changes

- Removed `UserProfile` interface. Replaced with `UserProfileService` interface.
- Removed support for v1 datafiles.

## 2.0.0-alpha

May 19, 2017

Expand Down Expand Up @@ -110,4 +169,4 @@ August 29, 2016

July 26, 2016

- Beta release of the Java SDK for server-side testing
- Beta release of the Java SDK for server-side testing
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Optimizely Java SDK
===================
[![Build Status](https://travis-ci.org/optimizely/java-sdk.svg?branch=master)](https://travis-ci.org/optimizely/java-sdk)
[![Apache 2.0](https://img.shields.io/github/license/nebula-plugins/gradle-extra-configurations-plugin.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Apache 2.0](https://img.shields.io/badge/license-APACHE%202.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)

This repository houses the Java SDK for Optimizely's Full Stack product.

Expand Down
12 changes: 6 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ buildscript {
}

plugins {
id 'nebula.optional-base' version '3.0.3'
id 'nebula.optional-base' version '3.2.0'
id 'me.champeau.gradle.jmh' version '0.3.1'
}

Expand All @@ -37,7 +37,6 @@ subprojects {
apply plugin: 'jacoco'
apply plugin: 'maven-publish'
apply plugin: 'me.champeau.gradle.jmh'
apply plugin: 'nebula.provided-base'
apply plugin: 'nebula.optional-base'

sourceCompatibility = 1.6
Expand Down Expand Up @@ -108,6 +107,11 @@ subprojects {
// logging dependencies (logback)
testCompile group: 'ch.qos.logback', name: 'logback-classic', version: logbackVersion
testCompile group: 'ch.qos.logback', name: 'logback-core', version: logbackVersion

testCompile group: 'com.google.code.gson', name: 'gson', version: gsonVersion
testCompile group: 'org.json', name: 'json', version: jsonVersion
testCompile group: 'com.googlecode.json-simple', name: 'json-simple', version: jsonSimpleVersion
testCompile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion
}

publishing {
Expand Down Expand Up @@ -172,7 +176,3 @@ task ship() {
dependsOn(':core-api:ship', ':core-httpclient-impl:ship')
}

// todo: remove this wrapper version once we're publishing to jcenter/maven central
task wrapper(type: Wrapper) {
distributionUrl = gradleWrapperUrl
}
12 changes: 6 additions & 6 deletions core-api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: jacksonVersion

provided group: 'com.google.code.findbugs', name: 'annotations', version: findbugsVersion
provided group: 'com.google.code.findbugs', name: 'jsr305', version: findbugsVersion
compile group: 'com.google.code.findbugs', name: 'annotations', version: findbugsVersion
compile group: 'com.google.code.findbugs', name: 'jsr305', version: findbugsVersion

// an assortment of json parsers
provided group: 'com.google.code.gson', name: 'gson', version: gsonVersion, optional
provided group: 'org.json', name: 'json', version: jsonVersion, optional
provided group: 'com.googlecode.json-simple', name: 'json-simple', version: jsonSimpleVersion, optional
provided group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion, optional
compileOnly group: 'com.google.code.gson', name: 'gson', version: gsonVersion, optional
compileOnly group: 'org.json', name: 'json', version: jsonVersion, optional
compileOnly group: 'com.googlecode.json-simple', name: 'json-simple', version: jsonSimpleVersion, optional
compileOnly group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: jacksonVersion, optional
}

task generateVersionFile {
Expand Down
30 changes: 4 additions & 26 deletions core-api/src/jmh/java/com/optimizely/ab/OptimizelyBenchmark.java
Original file line number Diff line number Diff line change
Expand Up @@ -157,49 +157,27 @@ public Variation measureActivateForGroupExperimentWithForcedVariation() {
}

@Benchmark
public void measureTrackWithNoAttributesAndNoRevenue() {
public void measureTrackWithNoAttributes() {
optimizely.track("testEventWithMultipleExperiments", "optimizely_user" + random.nextInt());
}

@Benchmark
public void measureTrackWithNoAttributesAndRevenue() {
optimizely.track("testEventWithMultipleExperiments", "optimizely_user" + random.nextInt(), 50000);
}

@Benchmark
public void measureTrackWithAttributesAndNoRevenue() {
public void measureTrackWithAttributes() {
optimizely.track("testEventWithMultipleExperiments", "optimizely_user" + random.nextInt(),
Collections.singletonMap("browser_type", "firefox"));
}

@Benchmark
public void measureTrackWithAttributesAndRevenue() {
optimizely.track("testEventWithMultipleExperiments", "optimizely_user" + random.nextInt(),
Collections.singletonMap("browser_type", "firefox"), 50000);
}

@Benchmark
public void measureTrackWithGroupExperimentsNoAttributesNoRevenue() {
public void measureTrackWithGroupExperimentsNoAttributes() {
optimizely.track("testEventWithMultipleExperiments", trackGroupExperimentUserId);
}

@Benchmark
public void measureTrackWithGroupExperimentsNoAttributesAndRevenue() {
optimizely.track("testEventWithMultipleExperiments", trackGroupExperimentUserId, 50000);
}

@Benchmark
public void measureTrackWithGroupExperimentsNoRevenueAndAttributes() {
public void measureTrackWithGroupExperimentsAndAttributes() {
optimizely.track("testEventWithMultipleExperiments", trackGroupExperimentAttributesUserId,
Collections.singletonMap("browser_type", "chrome"));
}

@Benchmark
public void measureTrackWithGroupExperimentsAndAttributesAndRevenue() {
optimizely.track("testEventWithMultipleExperiments", trackGroupExperimentAttributesUserId,
Collections.singletonMap("browser_type", "chrome"), 50000);
}

@Benchmark
public void measureTrackWithGroupExperimentsAndForcedVariation() {
optimizely.track("testEventWithMultipleExperiments", "user_a");
Expand Down
Loading