From 5da918205beb2d863bf5cdd9eb9d39355bec327e Mon Sep 17 00:00:00 2001 From: Todd Baert Date: Thu, 13 Oct 2022 12:55:03 -0400 Subject: [PATCH 1/4] chore: re-enable integration tests (#146) Update test harness and re-enable integration test profile --- .github/workflows/pullrequest.yml | 2 +- pom.xml | 7 +++++++ .../dev/openfeature/sdk/integration/StepDefinitions.java | 4 ++-- test-harness | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index c771202e..c0845d22 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -39,7 +39,7 @@ jobs: ${{ runner.os }}-maven- - name: Build with Maven - run: mvn --batch-mode --update-snapshots verify # -P integration-test - add this back once we have a compatible flagd + run: mvn --batch-mode --update-snapshots verify -P integration-test - name: Upload coverage to Codecov uses: codecov/codecov-action@e0fbd592d323cb2991fb586fdd260734fcb41fcb diff --git a/pom.xml b/pom.xml index 53284bd2..ef772a35 100644 --- a/pom.xml +++ b/pom.xml @@ -137,6 +137,13 @@ 31.1-jre test + + + dev.openfeature.contrib.providers + flagd + 0.4.1 + test + diff --git a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java index 3513bddc..892dc34f 100644 --- a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java +++ b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -// import dev.openfeature.contrib.providers.flagd.FlagdProvider; +import dev.openfeature.contrib.providers.flagd.FlagdProvider; import dev.openfeature.sdk.Client; import dev.openfeature.sdk.FlagEvaluationDetails; import dev.openfeature.sdk.MutableStructure; @@ -45,7 +45,7 @@ public class StepDefinitions { @BeforeAll() public static void setup() { - // OpenFeatureAPI.getInstance().setProvider(new FlagdProvider()); + OpenFeatureAPI.getInstance().setProvider(new FlagdProvider()); client = OpenFeatureAPI.getInstance().getClient(); } diff --git a/test-harness b/test-harness index e7379cd0..5153eac7 160000 --- a/test-harness +++ b/test-harness @@ -1 +1 @@ -Subproject commit e7379cd0070f8907cacdc535184f8f626bf25e01 +Subproject commit 5153eac71dc47413da4326bdb49a94e573b99578 From 54fbf081edcc861362304ac16c126cf3cc31c29b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Oct 2022 17:34:08 +0000 Subject: [PATCH 2/4] chore(deps): update actions/cache digest to 9b0c1fc (#145) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Justin Abrahms --- .github/workflows/merge.yml | 2 +- .github/workflows/pullrequest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml index e278b3b4..0709f406 100644 --- a/.github/workflows/merge.yml +++ b/.github/workflows/merge.yml @@ -32,7 +32,7 @@ jobs: server-password: ${{ secrets.OSSRH_PASSWORD }} - name: Cache local Maven repository - uses: actions/cache@a3f5edc2378b2e43203912210dc88effa160f032 + uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index c0845d22..8ccc6ab7 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -31,7 +31,7 @@ jobs: languages: java - name: Cache local Maven repository - uses: actions/cache@a3f5edc2378b2e43203912210dc88effa160f032 + uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} From fad0f35fc8a6469672ef67820f1850f20741b66a Mon Sep 17 00:00:00 2001 From: Robert Grassian <89157164+rgrassian-split@users.noreply.github.com> Date: Thu, 13 Oct 2022 16:24:25 -0700 Subject: [PATCH 3/4] fix: merge eval context (#149) fix merge eval context Signed-off-by: Robert Grassian Signed-off-by: Robert Grassian --- .../openfeature/sdk/OpenFeatureClient.java | 2 +- .../sdk/OpenFeatureClientTest.java | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java index 3759ecea..827c9215 100644 --- a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java +++ b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java @@ -118,7 +118,7 @@ private FlagEvaluationDetails evaluateFlag(FlagValueType type, String key apiContext = openfeatureApi.getEvaluationContext() != null ? openfeatureApi.getEvaluationContext() : new MutableContext(); - clientContext = openfeatureApi.getEvaluationContext() != null + clientContext = this.getEvaluationContext() != null ? this.getEvaluationContext() : new MutableContext(); diff --git a/src/test/java/dev/openfeature/sdk/OpenFeatureClientTest.java b/src/test/java/dev/openfeature/sdk/OpenFeatureClientTest.java index eab962ac..f4c6f100 100644 --- a/src/test/java/dev/openfeature/sdk/OpenFeatureClientTest.java +++ b/src/test/java/dev/openfeature/sdk/OpenFeatureClientTest.java @@ -29,4 +29,30 @@ void shouldNotThrowExceptionIfHookHasDifferentTypeArgumentThanHookContext() { assertThat(actual.getValue()).isTrue(); assertThat(TEST_LOGGER.getLoggingEvents()).filteredOn(event -> event.getLevel().equals(Level.ERROR)).isEmpty(); } + + @Test + void mergeContextTest() { + TEST_LOGGER.clear(); + + String flag = "feature key"; + boolean defaultValue = false; + String targetingKey = "targeting key"; + EvaluationContext ctx = new MutableContext(targetingKey); + + OpenFeatureAPI api = mock(OpenFeatureAPI.class); + FeatureProvider mockProvider = mock(FeatureProvider.class); + // this makes it so that true is returned only if the targeting key set at the client level is honored + when(mockProvider.getBooleanEvaluation( + eq(flag), eq(defaultValue), argThat( + context -> context.getTargetingKey().equals(targetingKey)))).thenReturn(ProviderEvaluation.builder() + .value(true).build()); + when(api.getProvider()).thenReturn(mockProvider); + + OpenFeatureClient client = new OpenFeatureClient(api, "name", "version"); + client.setEvaluationContext(ctx); + + FlagEvaluationDetails result = client.getBooleanDetails(flag, defaultValue); + + assertThat(result.getValue()).isTrue(); + } } From 3af68113dd24f996c7ac85fbdd11c59cdbd7d39c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 13:19:36 +0000 Subject: [PATCH 4/4] chore(main): release 0.3.1 (#150) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- pom.xml | 2 +- version.txt | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 64c0d41e..5675f452 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1 +1 @@ -{".":"0.3.0"} \ No newline at end of file +{".":"0.3.1"} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 91c28a74..271e6d8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.3.1](https://github.com/open-feature/java-sdk/compare/v0.3.0...v0.3.1) (2022-10-13) + + +### Bug Fixes + +* merge eval context ([#149](https://github.com/open-feature/java-sdk/issues/149)) ([fad0f35](https://github.com/open-feature/java-sdk/commit/fad0f35fc8a6469672ef67820f1850f20741b66a)) + ## [0.3.0](https://github.com/open-feature/java-sdk/compare/v0.2.2...v0.3.0) (2022-10-13) diff --git a/README.md b/README.md index d50baea2..6b786c7c 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ class MyClass { dev.openfeature sdk - 0.3.0 + 0.3.1 ``` @@ -90,7 +90,7 @@ If you would like snapshot builds, this is the relevant repository information: ```groovy dependencies { - implementation 'dev.openfeature:sdk:0.3.0' + implementation 'dev.openfeature:sdk:0.3.1' } ``` diff --git a/pom.xml b/pom.xml index ef772a35..d8b5b4bb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ dev.openfeature sdk - 0.3.0 + 0.3.1 UTF-8 diff --git a/version.txt b/version.txt index 0d91a54c..9e11b32f 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.3.0 +0.3.1