diff --git a/.github/workflows/cflite_batch.yml b/.github/workflows/cflite_batch.yml
index bbbdd231..c4bceed0 100644
--- a/.github/workflows/cflite_batch.yml
+++ b/.github/workflows/cflite_batch.yml
@@ -24,13 +24,13 @@ jobs:
steps:
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
- uses: google/clusterfuzzlite/actions/build_fuzzers@v1
+ uses: google/clusterfuzzlite/actions/build_fuzzers@1e163f06cba7820da5154ac9fe1a32d7fe6f73a3 # v1
with:
language: jvm
sanitizer: ${{ matrix.sanitizer }}
- name: Run Fuzzers (${{ matrix.sanitizer }})
id: run
- uses: google/clusterfuzzlite/actions/run_fuzzers@v1
+ uses: google/clusterfuzzlite/actions/run_fuzzers@1e163f06cba7820da5154ac9fe1a32d7fe6f73a3 # v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
fuzz-seconds: 3600
diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml
index d300c6da..03fb4491 100644
--- a/.github/workflows/merge.yml
+++ b/.github/workflows/merge.yml
@@ -20,9 +20,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
+ - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set up JDK 8
- uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
+ uses: actions/setup-java@8f12c5c4d1ebd18bf4b7a51a1b0b912633f0bc61
with:
java-version: '8'
distribution: 'temurin'
@@ -32,7 +32,7 @@ jobs:
server-password: ${{ secrets.OSSRH_PASSWORD }}
- name: Cache local Maven repository
- uses: actions/cache@e2d614414f9efb4e3358bd4f3092a6406b2e4a32
+ uses: actions/cache@2b5a782c6414f96354f95902141714b127692d1e
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml
index 02721d0e..fdefe2e1 100644
--- a/.github/workflows/pullrequest.yml
+++ b/.github/workflows/pullrequest.yml
@@ -16,22 +16,22 @@ jobs:
steps:
- name: Check out the code
- uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
+ uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set up JDK 8
- uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
+ uses: actions/setup-java@8f12c5c4d1ebd18bf4b7a51a1b0b912633f0bc61
with:
java-version: '8'
distribution: 'temurin'
cache: maven
- name: Initialize CodeQL
- uses: github/codeql-action/init@a631f4b0160a57d549a79d3bd5c377cefdd8518f
+ uses: github/codeql-action/init@a58e90a9daf2aac731400f56d005f2b324a2c5b8
with:
languages: java
- name: Cache local Maven repository
- uses: actions/cache@e2d614414f9efb4e3358bd4f3092a6406b2e4a32
+ uses: actions/cache@2b5a782c6414f96354f95902141714b127692d1e
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -51,4 +51,4 @@ jobs:
verbose: true # optional (default = false)
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@a631f4b0160a57d549a79d3bd5c377cefdd8518f
+ uses: github/codeql-action/analyze@a58e90a9daf2aac731400f56d005f2b324a2c5b8
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 40a0dc03..517b1be0 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -19,7 +19,7 @@ jobs:
# Release-please creates a PR that tracks all changes
steps:
- - uses: google-github-actions/release-please-action@ed61e76296090fba410e2a73f43463f717504028
+ - uses: google-github-actions/release-please-action@514bc6cdae71484c998108f2136a8f5e4c62b9b9
id: release
with:
command: manifest
@@ -29,10 +29,10 @@ jobs:
# These steps are only run if this was a merged release-please PR
- name: checkout
if: ${{ steps.release.outputs.releases_created }}
- uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
+ uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Set up JDK 8
if: ${{ steps.release.outputs.releases_created }}
- uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
+ uses: actions/setup-java@8f12c5c4d1ebd18bf4b7a51a1b0b912633f0bc61
with:
java-version: '8'
distribution: 'temurin'
diff --git a/.github/workflows/static-code-scanning.yaml b/.github/workflows/static-code-scanning.yaml
index b584ae49..42085389 100644
--- a/.github/workflows/static-code-scanning.yaml
+++ b/.github/workflows/static-code-scanning.yaml
@@ -29,16 +29,16 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
+ uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@a631f4b0160a57d549a79d3bd5c377cefdd8518f
+ uses: github/codeql-action/init@a58e90a9daf2aac731400f56d005f2b324a2c5b8
with:
languages: java
- name: Autobuild
- uses: github/codeql-action/autobuild@a631f4b0160a57d549a79d3bd5c377cefdd8518f
+ uses: github/codeql-action/autobuild@a58e90a9daf2aac731400f56d005f2b324a2c5b8
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@a631f4b0160a57d549a79d3bd5c377cefdd8518f
+ uses: github/codeql-action/analyze@a58e90a9daf2aac731400f56d005f2b324a2c5b8
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 0b8585c7..077bc02a 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1 +1 @@
-{".":"1.0.1"}
\ No newline at end of file
+{".":"1.1.0"}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3a1e0aec..e42f88ca 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Changelog
+## [1.1.0](https://github.com/open-feature/java-sdk/compare/v1.0.1...v1.1.0) (2023-01-24)
+
+
+### Features
+
+* add STATIC, CACHED reasons ([#240](https://github.com/open-feature/java-sdk/issues/240)) ([d069a8f](https://github.com/open-feature/java-sdk/commit/d069a8fa9d7c1795f6713f4b331657119e6f7d8f))
+* add STATIC, CACHED reasons. ([d069a8f](https://github.com/open-feature/java-sdk/commit/d069a8fa9d7c1795f6713f4b331657119e6f7d8f))
+
+
+### Bug Fixes
+
+* **deps:** update dependency io.cucumber:cucumber-bom to v7.10.0 ([#195](https://github.com/open-feature/java-sdk/issues/195)) ([0544597](https://github.com/open-feature/java-sdk/commit/0544597511471a2c10fbe2a3296de5629730ea7c))
+* **deps:** update dependency io.cucumber:cucumber-bom to v7.11.0 ([#208](https://github.com/open-feature/java-sdk/issues/208)) ([6103dd2](https://github.com/open-feature/java-sdk/commit/6103dd2d39adceaaeeb0f63de6fb10437be3a743))
+* **deps:** update junit5 monorepo ([#230](https://github.com/open-feature/java-sdk/issues/230)) ([67b15c6](https://github.com/open-feature/java-sdk/commit/67b15c6e104fe7539f7a197810be28d69634cbfc))
+
## [1.0.1](https://github.com/open-feature/java-sdk/compare/v1.0.0...v1.0.1) (2022-11-30)
diff --git a/README.md b/README.md
index dae9848b..76c7883f 100644
--- a/README.md
+++ b/README.md
@@ -68,7 +68,7 @@ For complete documentation, visit: https://docs.openfeature.dev/docs/category/co
dev.openfeature
sdk
- 1.0.1
+ 1.1.0
```
@@ -92,7 +92,7 @@ If you would like snapshot builds, this is the relevant repository information:
```groovy
dependencies {
- implementation 'dev.openfeature:sdk:1.0.1'
+ implementation 'dev.openfeature:sdk:1.1.0'
}
```
@@ -118,7 +118,15 @@ We are also present on the `#openfeature` channel in the [CNCF slack](https://sl
### Integration tests
-The continuous integration runs a set of [gherkin integration tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using [`flagd`](https://github.com/open-feature/flagd). These tests do not run with the default maven profile. If you'd like to run them locally, you can start the flagd testbed with `docker run -p 8013:8013 ghcr.io/open-feature/flagd-testbed:latest` and then run `mvn test -P integration-test`.
+The continuous integration runs a set of [gherkin integration tests](https://github.com/open-feature/test-harness/blob/main/features/evaluation.feature) using [`flagd`](https://github.com/open-feature/flagd). These tests do not run with the default maven profile. If you'd like to run them locally, you can start the flagd testbed with
+
+```
+docker run -p 8013:8013 ghcr.io/open-feature/flagd-testbed:latest
+```
+and then run
+```
+mvn test -P integration-test
+```
## Releasing
diff --git a/pom.xml b/pom.xml
index d7f878e2..83599d96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,13 +4,13 @@
dev.openfeature
sdk
- 1.0.1
+ 1.1.0
UTF-8
1.8
${maven.compiler.source}
- 5.9.1
+ 5.9.2
**/integration/*.java
@@ -66,7 +66,7 @@
org.mockito
mockito-core
- 4.9.0
+ 4.11.0
test
@@ -80,7 +80,7 @@
org.assertj
assertj-core
- 3.23.1
+ 3.24.2
test
@@ -115,7 +115,7 @@
org.junit.platform
junit-platform-suite
- 1.9.1
+ 1.9.2
test
@@ -141,7 +141,7 @@
dev.openfeature.contrib.providers
flagd
- 0.5.3
+ 0.5.6
test
@@ -152,7 +152,7 @@
io.cucumber
cucumber-bom
- 7.9.0
+ 7.11.0
pom
import
@@ -160,7 +160,7 @@
org.junit
junit-bom
- 5.9.1
+ 5.9.2
pom
import
@@ -189,7 +189,7 @@
org.cyclonedx
cyclonedx-maven-plugin
- 2.7.3
+ 2.7.4
library
1.3
@@ -214,7 +214,7 @@
maven-dependency-plugin
- 3.3.0
+ 3.5.0
verify
@@ -402,7 +402,7 @@
org.apache.maven.plugins
maven-pmd-plugin
- 3.19.0
+ 3.20.0
run-pmd
@@ -450,7 +450,7 @@
org.apache.maven.plugins
maven-checkstyle-plugin
- 3.2.0
+ 3.2.1
checkstyle.xml
UTF-8
@@ -519,6 +519,7 @@
exec
+
cp
diff --git a/renovate.json b/renovate.json
index 39a2b6e9..62574107 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,6 +1,26 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
- "config:base"
+ "config:base",
+ "helpers:pinGitHubActionDigests"
+ ],
+ "packageRules": [
+ {
+ "matchUpdateTypes": ["minor", "patch"],
+ "matchCurrentVersion": "!/^0/",
+ "automerge": true
+ },
+ {
+ "matchManagers": ["github-actions"],
+ "automerge": true
+ }
+ ],
+ "regexManagers": [
+ {
+ "fileMatch": ["^README.md$", "^.github/workflows/pullrequest.yml$"],
+ "matchStrings": ["ghcr\\.io\\/open-feature\\/flagd-testbed:(?.*?)\\n"],
+ "depNameTemplate": "open-feature/test-harness",
+ "datasourceTemplate": "github-releases"
+ }
]
}
diff --git a/src/main/java/dev/openfeature/sdk/Reason.java b/src/main/java/dev/openfeature/sdk/Reason.java
index 497fd66d..f962a213 100644
--- a/src/main/java/dev/openfeature/sdk/Reason.java
+++ b/src/main/java/dev/openfeature/sdk/Reason.java
@@ -4,5 +4,5 @@
* Predefined resolution reasons.
*/
public enum Reason {
- DISABLED, SPLIT, TARGETING_MATCH, DEFAULT, UNKNOWN, ERROR
+ DISABLED, SPLIT, TARGETING_MATCH, DEFAULT, UNKNOWN, CACHED, STATIC, ERROR
}
diff --git a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
index 10d72c09..1fe886dd 100644
--- a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
+++ b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
@@ -6,13 +6,13 @@
import dev.openfeature.contrib.providers.flagd.FlagdProvider;
import dev.openfeature.sdk.Client;
import dev.openfeature.sdk.FlagEvaluationDetails;
-import dev.openfeature.sdk.MutableStructure;
import dev.openfeature.sdk.MutableContext;
import dev.openfeature.sdk.OpenFeatureAPI;
import dev.openfeature.sdk.Reason;
import dev.openfeature.sdk.Structure;
import dev.openfeature.sdk.Value;
import io.cucumber.java.BeforeAll;
+import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
@@ -44,7 +44,9 @@ public class StepDefinitions {
private FlagEvaluationDetails typeErrorDetails;
@BeforeAll()
+ @Given("an openfeature client is registered with cache disabled")
public static void setup() {
+ // TODO: when the FlagdProvider is updated to support caching, we might need to disable it here for this test to work as expected.
FlagdProvider provider = new FlagdProvider();
provider.setDeadline(3000); // set a generous deadline, to prevent timeouts in actions
OpenFeatureAPI.getInstance().setProvider(provider);
@@ -249,7 +251,7 @@ public void a_non_existent_string_flag_with_key_is_evaluated_with_details_and_a_
notFoundDetails = client.getStringDetails(notFoundFlagKey, notFoundDefaultValue);
}
- @Then("then the default string value should be returned")
+ @Then("the default string value should be returned")
public void then_the_default_string_value_should_be_returned() {
assertEquals(notFoundDefaultValue, notFoundDetails.getValue());
}
@@ -270,7 +272,7 @@ public void a_string_flag_with_key_is_evaluated_as_an_integer_with_details_and_a
typeErrorDetails = client.getIntegerDetails(typeErrorFlagKey, typeErrorDefaultValue);
}
- @Then("then the default integer value should be returned")
+ @Then("the default integer value should be returned")
public void then_the_default_integer_value_should_be_returned() {
assertEquals(typeErrorDefaultValue, typeErrorDetails.getValue());
}
diff --git a/test-harness b/test-harness
index 5153eac7..2d4c63c8 160000
--- a/test-harness
+++ b/test-harness
@@ -1 +1 @@
-Subproject commit 5153eac71dc47413da4326bdb49a94e573b99578
+Subproject commit 2d4c63c800aa3af172cf09176325d93124153cde
diff --git a/version.txt b/version.txt
index 7dea76ed..9084fa2f 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.0.1
+1.1.0