diff --git a/.github/workflows/cflite_batch.yml b/.github/workflows/cflite_batch.yml
new file mode 100644
index 00000000..bbbdd231
--- /dev/null
+++ b/.github/workflows/cflite_batch.yml
@@ -0,0 +1,38 @@
+name: ClusterFuzzLite batch fuzzing
+on:
+ schedule:
+ # ┌───────────── minute (0 - 59)
+ # │ ┌───────────── hour (0 - 23)
+ # │ │ ┌───────────── day of the month (1 - 31)
+ # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
+ # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
+ # │ │ │ │ │
+ # │ │ │ │ │
+ # │ │ │ │ │
+ # * * * * *
+ - cron: '0 0 * * *' # Every 6th hour. Change this to whatever is suitable.
+permissions: read-all
+jobs:
+ BatchFuzzing:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ sanitizer:
+ - address
+ - undefined
+ steps:
+ - name: Build Fuzzers (${{ matrix.sanitizer }})
+ id: build
+ uses: google/clusterfuzzlite/actions/build_fuzzers@v1
+ with:
+ language: jvm
+ sanitizer: ${{ matrix.sanitizer }}
+ - name: Run Fuzzers (${{ matrix.sanitizer }})
+ id: run
+ uses: google/clusterfuzzlite/actions/run_fuzzers@v1
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ fuzz-seconds: 3600
+ mode: 'batch'
+ sanitizer: ${{ matrix.sanitizer }}
diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml
index 5d63a004..8b4f92ea 100644
--- a/.github/workflows/lint-pr.yml
+++ b/.github/workflows/lint-pr.yml
@@ -18,6 +18,6 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- - uses: amannn/action-semantic-pull-request@7c194c28652f0faf98ad437c6cf291406d387b43
+ - uses: amannn/action-semantic-pull-request@0b14f54ac155d88e12522156e52cb6e397745cfd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml
index 231fad90..d300c6da 100644
--- a/.github/workflows/merge.yml
+++ b/.github/workflows/merge.yml
@@ -20,9 +20,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@8230315d06ad95c617244d2f265d237a1682d445
+ - uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
- name: Set up JDK 8
- uses: actions/setup-java@3617c43588448d532250f5c331dffcca90e398f1
+ uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
with:
java-version: '8'
distribution: 'temurin'
@@ -32,7 +32,7 @@ jobs:
server-password: ${{ secrets.OSSRH_PASSWORD }}
- name: Cache local Maven repository
- uses: actions/cache@2b04a41915d2fed6cec2aa74821ba81689ff0816
+ uses: actions/cache@e2d614414f9efb4e3358bd4f3092a6406b2e4a32
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml
index bccace75..02721d0e 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@8230315d06ad95c617244d2f265d237a1682d445
+ uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
- name: Set up JDK 8
- uses: actions/setup-java@3617c43588448d532250f5c331dffcca90e398f1
+ uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
with:
java-version: '8'
distribution: 'temurin'
cache: maven
- name: Initialize CodeQL
- uses: github/codeql-action/init@297ec80a468c234608046f51ee8c65da128a1e94
+ uses: github/codeql-action/init@a631f4b0160a57d549a79d3bd5c377cefdd8518f
with:
languages: java
- name: Cache local Maven repository
- uses: actions/cache@2b04a41915d2fed6cec2aa74821ba81689ff0816
+ uses: actions/cache@e2d614414f9efb4e3358bd4f3092a6406b2e4a32
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
@@ -44,10 +44,11 @@ jobs:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@e0fbd592d323cb2991fb586fdd260734fcb41fcb
with:
+ token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
flags: unittests # optional
name: coverage # optional
fail_ci_if_error: true # optional (default = false)
verbose: true # optional (default = false)
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@297ec80a468c234608046f51ee8c65da128a1e94
+ uses: github/codeql-action/analyze@a631f4b0160a57d549a79d3bd5c377cefdd8518f
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 01841f20..40a0dc03 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@069d7229d7b10308de85bc606a91e0033e259c8e
+ - uses: google-github-actions/release-please-action@ed61e76296090fba410e2a73f43463f717504028
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@8230315d06ad95c617244d2f265d237a1682d445
+ uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
- name: Set up JDK 8
if: ${{ steps.release.outputs.releases_created }}
- uses: actions/setup-java@3617c43588448d532250f5c331dffcca90e398f1
+ uses: actions/setup-java@19eeec562b37d29a1ad055b7de9c280bd0906d8d
with:
java-version: '8'
distribution: 'temurin'
diff --git a/.github/workflows/static-code-scanning.yaml b/.github/workflows/static-code-scanning.yaml
index 4686704e..b584ae49 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@8230315d06ad95c617244d2f265d237a1682d445
+ uses: actions/checkout@bf085276cecdb0cc76fbbe0687a5a0e786646936
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@297ec80a468c234608046f51ee8c65da128a1e94
+ uses: github/codeql-action/init@a631f4b0160a57d549a79d3bd5c377cefdd8518f
with:
languages: java
- name: Autobuild
- uses: github/codeql-action/autobuild@297ec80a468c234608046f51ee8c65da128a1e94
+ uses: github/codeql-action/autobuild@a631f4b0160a57d549a79d3bd5c377cefdd8518f
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@297ec80a468c234608046f51ee8c65da128a1e94
+ uses: github/codeql-action/analyze@a631f4b0160a57d549a79d3bd5c377cefdd8518f
diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 0878d456..0b8585c7 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1 +1 @@
-{".":"1.0.0"}
\ No newline at end of file
+{".":"1.0.1"}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 88757015..3a1e0aec 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,13 @@
# Changelog
+## [1.0.1](https://github.com/open-feature/java-sdk/compare/v1.0.0...v1.0.1) (2022-11-30)
+
+
+### Bug Fixes
+
+* **deps:** Spot bug scope change ([#173](https://github.com/open-feature/java-sdk/issues/173)) ([113b5e5](https://github.com/open-feature/java-sdk/commit/113b5e5f2ed8b72e5c23dedbf8d13d0fd4d4f878))
+* **deps:** update dependency io.cucumber:cucumber-bom to v7.9.0 ([#172](https://github.com/open-feature/java-sdk/issues/172)) ([fcc8972](https://github.com/open-feature/java-sdk/commit/fcc8972022dd78fcdf5311373a8b8ad238368baa))
+
## [1.0.0](https://github.com/open-feature/java-sdk/compare/v0.3.1...v1.0.0) (2022-10-25)
diff --git a/README.md b/README.md
index 51591d0c..dae9848b 100644
--- a/README.md
+++ b/README.md
@@ -56,7 +56,7 @@ class MyClass {
For complete documentation, visit: https://docs.openfeature.dev/docs/category/concepts
## Requirements
-- Java 8+
+- Java 8+ (compiler target is 1.8)
## Installation
@@ -68,7 +68,7 @@ For complete documentation, visit: https://docs.openfeature.dev/docs/category/co
dev.openfeature
sdk
- 1.0.0
+ 1.0.1
```
@@ -92,7 +92,7 @@ If you would like snapshot builds, this is the relevant repository information:
```groovy
dependencies {
- implementation 'dev.openfeature:sdk:1.0.0'
+ implementation 'dev.openfeature:sdk:1.0.1'
}
```
diff --git a/checkstyle-suppressions.xml b/checkstyle-suppressions.xml
new file mode 100644
index 00000000..ef1413bc
--- /dev/null
+++ b/checkstyle-suppressions.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/checkstyle.xml b/checkstyle.xml
index a52e1bf7..f2bcb59a 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -34,6 +34,7 @@
+
@@ -46,7 +47,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -223,7 +240,7 @@
-
+
+
+
+
+
+
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index bd7f8299..d7f878e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
dev.openfeature
sdk
- 1.0.0
+ 1.0.1
UTF-8
@@ -53,7 +53,7 @@
com.github.spotbugs
spotbugs
4.7.3
- compile
+ provided
@@ -66,7 +66,7 @@
org.mockito
mockito-core
- 4.8.0
+ 4.9.0
test
@@ -141,7 +141,7 @@
dev.openfeature.contrib.providers
flagd
- 0.4.1
+ 0.5.3
test
@@ -152,7 +152,7 @@
io.cucumber
cucumber-bom
- 7.8.1
+ 7.9.0
pom
import
@@ -189,7 +189,7 @@
org.cyclonedx
cyclonedx-maven-plugin
- 2.7.2
+ 2.7.3
library
1.3
@@ -369,6 +369,7 @@
3.4.1
true
+ all,-missing
@@ -416,7 +417,7 @@
com.github.spotbugs
spotbugs-maven-plugin
- 4.7.2.1
+ 4.7.3.0
spotbugs-exclusions.xml
diff --git a/spotbugs-exclusions.xml b/spotbugs-exclusions.xml
index 673bf4b5..8105db97 100644
--- a/spotbugs-exclusions.xml
+++ b/spotbugs-exclusions.xml
@@ -27,9 +27,6 @@
-
-
-
diff --git a/src/main/java/dev/openfeature/sdk/BooleanHook.java b/src/main/java/dev/openfeature/sdk/BooleanHook.java
index 26fff41c..bc07d898 100644
--- a/src/main/java/dev/openfeature/sdk/BooleanHook.java
+++ b/src/main/java/dev/openfeature/sdk/BooleanHook.java
@@ -1,5 +1,8 @@
package dev.openfeature.sdk;
+/**
+ * {@inheritDoc}
+ */
public interface BooleanHook extends Hook {
@Override
diff --git a/src/main/java/dev/openfeature/sdk/DoubleHook.java b/src/main/java/dev/openfeature/sdk/DoubleHook.java
index 2ec179d9..1da0602d 100644
--- a/src/main/java/dev/openfeature/sdk/DoubleHook.java
+++ b/src/main/java/dev/openfeature/sdk/DoubleHook.java
@@ -1,5 +1,8 @@
package dev.openfeature.sdk;
+/**
+ * {@inheritDoc}
+ */
public interface DoubleHook extends Hook {
@Override
diff --git a/src/main/java/dev/openfeature/sdk/ErrorCode.java b/src/main/java/dev/openfeature/sdk/ErrorCode.java
index 2acf31ef..6b387e27 100644
--- a/src/main/java/dev/openfeature/sdk/ErrorCode.java
+++ b/src/main/java/dev/openfeature/sdk/ErrorCode.java
@@ -1,5 +1,6 @@
package dev.openfeature.sdk;
+@SuppressWarnings("checkstyle:MissingJavadocType")
public enum ErrorCode {
PROVIDER_NOT_READY, FLAG_NOT_FOUND, PARSE_ERROR, TYPE_MISMATCH, TARGETING_KEY_MISSING, INVALID_CONTEXT, GENERAL
}
diff --git a/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java b/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
index d9c85be4..67ee853d 100644
--- a/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
+++ b/src/main/java/dev/openfeature/sdk/FlagEvaluationDetails.java
@@ -20,6 +20,7 @@ public class FlagEvaluationDetails implements BaseEvaluation {
/**
* Generate detail payload from the provider response.
+ *
* @param providerEval provider response
* @param flagKey key for the flag being evaluated
* @param type of flag being returned
diff --git a/src/main/java/dev/openfeature/sdk/FlagEvaluationOptions.java b/src/main/java/dev/openfeature/sdk/FlagEvaluationOptions.java
index 81408be9..5fa1a93f 100644
--- a/src/main/java/dev/openfeature/sdk/FlagEvaluationOptions.java
+++ b/src/main/java/dev/openfeature/sdk/FlagEvaluationOptions.java
@@ -7,6 +7,7 @@
import lombok.Builder;
import lombok.Singular;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@lombok.Value
@Builder
public class FlagEvaluationOptions {
diff --git a/src/main/java/dev/openfeature/sdk/FlagValueType.java b/src/main/java/dev/openfeature/sdk/FlagValueType.java
index 62ca412f..11d43afb 100644
--- a/src/main/java/dev/openfeature/sdk/FlagValueType.java
+++ b/src/main/java/dev/openfeature/sdk/FlagValueType.java
@@ -1,5 +1,6 @@
package dev.openfeature.sdk;
+@SuppressWarnings("checkstyle:MissingJavadocType")
public enum FlagValueType {
STRING, INTEGER, DOUBLE, OBJECT, BOOLEAN;
}
diff --git a/src/main/java/dev/openfeature/sdk/HookSupport.java b/src/main/java/dev/openfeature/sdk/HookSupport.java
index eb2b4078..8563096e 100644
--- a/src/main/java/dev/openfeature/sdk/HookSupport.java
+++ b/src/main/java/dev/openfeature/sdk/HookSupport.java
@@ -1,6 +1,9 @@
package dev.openfeature.sdk;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
diff --git a/src/main/java/dev/openfeature/sdk/IntegerHook.java b/src/main/java/dev/openfeature/sdk/IntegerHook.java
index a178904d..1386152e 100644
--- a/src/main/java/dev/openfeature/sdk/IntegerHook.java
+++ b/src/main/java/dev/openfeature/sdk/IntegerHook.java
@@ -1,5 +1,8 @@
package dev.openfeature.sdk;
+/**
+ * {@inheritDoc}
+ */
public interface IntegerHook extends Hook {
@Override
diff --git a/src/main/java/dev/openfeature/sdk/MutableStructure.java b/src/main/java/dev/openfeature/sdk/MutableStructure.java
index 99e741df..43a32f62 100644
--- a/src/main/java/dev/openfeature/sdk/MutableStructure.java
+++ b/src/main/java/dev/openfeature/sdk/MutableStructure.java
@@ -1,7 +1,10 @@
package dev.openfeature.sdk;
import java.time.Instant;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.stream.Collectors;
import dev.openfeature.sdk.exceptions.ValueNotConvertableError;
@@ -16,7 +19,7 @@
*/
@ToString
@EqualsAndHashCode
-@SuppressWarnings("PMD.BeanMembersShouldSerialize")
+@SuppressWarnings({"PMD.BeanMembersShouldSerialize", "checkstyle:MissingJavadocType"})
public class MutableStructure implements Structure {
protected final Map attributes;
@@ -66,13 +69,6 @@ public MutableStructure add(String key, Double value) {
return this;
}
- /**
- * Add date-time relevant key.
- *
- * @param key feature key
- * @param value date-time value
- * @return Structure
- */
public MutableStructure add(String key, Instant value) {
attributes.put(key, new Value(value));
return this;
@@ -116,6 +112,7 @@ public Map asObjectMap() {
/**
* convertValue is converting the object type Value in a primitive type.
+ *
* @param value - Value object to convert
* @return an Object containing the primitive type.
*/
diff --git a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java
index 827c9215..74690fe9 100644
--- a/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java
+++ b/src/main/java/dev/openfeature/sdk/OpenFeatureClient.java
@@ -14,6 +14,9 @@
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
+/**
+ * {@inheritDoc}
+ */
@Slf4j
@SuppressWarnings({ "PMD.DataflowAnomalyAnalysis", "PMD.BeanMembersShouldSerialize", "unchecked", "rawtypes" })
public class OpenFeatureClient implements Client {
diff --git a/src/main/java/dev/openfeature/sdk/ProviderEvaluation.java b/src/main/java/dev/openfeature/sdk/ProviderEvaluation.java
index 3f2b69bc..9ba1ab9a 100644
--- a/src/main/java/dev/openfeature/sdk/ProviderEvaluation.java
+++ b/src/main/java/dev/openfeature/sdk/ProviderEvaluation.java
@@ -5,6 +5,7 @@
import javax.annotation.Nullable;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@Data @Builder
public class ProviderEvaluation implements BaseEvaluation {
T value;
diff --git a/src/main/java/dev/openfeature/sdk/Reason.java b/src/main/java/dev/openfeature/sdk/Reason.java
index 107665bc..497fd66d 100644
--- a/src/main/java/dev/openfeature/sdk/Reason.java
+++ b/src/main/java/dev/openfeature/sdk/Reason.java
@@ -1,5 +1,8 @@
package dev.openfeature.sdk;
+/**
+ * Predefined resolution reasons.
+ */
public enum Reason {
DISABLED, SPLIT, TARGETING_MATCH, DEFAULT, UNKNOWN, ERROR
}
diff --git a/src/main/java/dev/openfeature/sdk/StringHook.java b/src/main/java/dev/openfeature/sdk/StringHook.java
index 15ee5238..aac732d5 100644
--- a/src/main/java/dev/openfeature/sdk/StringHook.java
+++ b/src/main/java/dev/openfeature/sdk/StringHook.java
@@ -1,5 +1,8 @@
package dev.openfeature.sdk;
+/**
+ * {@inheritDoc}
+ */
public interface StringHook extends Hook {
@Override
diff --git a/src/main/java/dev/openfeature/sdk/Value.java b/src/main/java/dev/openfeature/sdk/Value.java
index 1caaf52e..a013064c 100644
--- a/src/main/java/dev/openfeature/sdk/Value.java
+++ b/src/main/java/dev/openfeature/sdk/Value.java
@@ -13,11 +13,14 @@
*/
@ToString
@EqualsAndHashCode
-@SuppressWarnings("PMD.BeanMembersShouldSerialize")
+@SuppressWarnings({"PMD.BeanMembersShouldSerialize", "checkstyle:MissingJavadocType"})
public class Value {
private final Object innerObject;
+ /**
+ * Construct a new null Value.
+ */
public Value() {
this.innerObject = null;
}
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/FlagNotFoundError.java b/src/main/java/dev/openfeature/sdk/exceptions/FlagNotFoundError.java
index 78a5077d..9ec850d3 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/FlagNotFoundError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/FlagNotFoundError.java
@@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@StandardException
public class FlagNotFoundError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/GeneralError.java b/src/main/java/dev/openfeature/sdk/exceptions/GeneralError.java
index 3b0e57e8..d7256c3f 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/GeneralError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/GeneralError.java
@@ -4,6 +4,7 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@StandardException
public class GeneralError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/InvalidContextError.java b/src/main/java/dev/openfeature/sdk/exceptions/InvalidContextError.java
index 150c851a..e70c3efe 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/InvalidContextError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/InvalidContextError.java
@@ -4,6 +4,9 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+/**
+ * The evaluation context does not meet provider requirements.
+ */
@StandardException
public class InvalidContextError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/OpenFeatureError.java b/src/main/java/dev/openfeature/sdk/exceptions/OpenFeatureError.java
index c831bb5e..ded79dd6 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/OpenFeatureError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/OpenFeatureError.java
@@ -3,6 +3,7 @@
import dev.openfeature.sdk.ErrorCode;
import lombok.experimental.StandardException;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@StandardException
public abstract class OpenFeatureError extends RuntimeException {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/ParseError.java b/src/main/java/dev/openfeature/sdk/exceptions/ParseError.java
index 3aa5ad90..ac8fca87 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/ParseError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/ParseError.java
@@ -4,6 +4,9 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+/**
+ * An error was encountered parsing data, such as a flag configuration.
+ */
@StandardException
public class ParseError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/TargetingKeyMissingError.java b/src/main/java/dev/openfeature/sdk/exceptions/TargetingKeyMissingError.java
index e1886c90..12437dc7 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/TargetingKeyMissingError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/TargetingKeyMissingError.java
@@ -4,6 +4,9 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+/**
+ * The provider requires a targeting key and one was not provided in the evaluation context.
+ */
@StandardException
public class TargetingKeyMissingError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/TypeMismatchError.java b/src/main/java/dev/openfeature/sdk/exceptions/TypeMismatchError.java
index 08ab8012..d27c6209 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/TypeMismatchError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/TypeMismatchError.java
@@ -4,6 +4,9 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+/**
+ * The type of the flag value does not match the expected type.
+ */
@StandardException
public class TypeMismatchError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/exceptions/ValueNotConvertableError.java b/src/main/java/dev/openfeature/sdk/exceptions/ValueNotConvertableError.java
index 443bea76..a681b5ef 100644
--- a/src/main/java/dev/openfeature/sdk/exceptions/ValueNotConvertableError.java
+++ b/src/main/java/dev/openfeature/sdk/exceptions/ValueNotConvertableError.java
@@ -4,6 +4,9 @@
import lombok.Getter;
import lombok.experimental.StandardException;
+/**
+ * The value can not be converted to a {@link dev.openfeature.sdk.Value}.
+ */
@StandardException
public class ValueNotConvertableError extends OpenFeatureError {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/dev/openfeature/sdk/internal/AutoCloseableLock.java b/src/main/java/dev/openfeature/sdk/internal/AutoCloseableLock.java
index 41fb5dc9..bf2f3042 100644
--- a/src/main/java/dev/openfeature/sdk/internal/AutoCloseableLock.java
+++ b/src/main/java/dev/openfeature/sdk/internal/AutoCloseableLock.java
@@ -1,5 +1,6 @@
package dev.openfeature.sdk.internal;
+@SuppressWarnings("checkstyle:MissingJavadocType")
public interface AutoCloseableLock extends AutoCloseable {
/**
diff --git a/src/main/java/dev/openfeature/sdk/internal/ObjectUtils.java b/src/main/java/dev/openfeature/sdk/internal/ObjectUtils.java
index 2318bdc4..ff16422e 100644
--- a/src/main/java/dev/openfeature/sdk/internal/ObjectUtils.java
+++ b/src/main/java/dev/openfeature/sdk/internal/ObjectUtils.java
@@ -1,11 +1,15 @@
package dev.openfeature.sdk.internal;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import lombok.experimental.UtilityClass;
+@SuppressWarnings("checkstyle:MissingJavadocType")
@UtilityClass
public class ObjectUtils {
diff --git a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
index 892dc34f..10d72c09 100644
--- a/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
+++ b/src/test/java/dev/openfeature/sdk/integration/StepDefinitions.java
@@ -45,7 +45,9 @@ public class StepDefinitions {
@BeforeAll()
public static void setup() {
- OpenFeatureAPI.getInstance().setProvider(new FlagdProvider());
+ FlagdProvider provider = new FlagdProvider();
+ provider.setDeadline(3000); // set a generous deadline, to prevent timeouts in actions
+ OpenFeatureAPI.getInstance().setProvider(provider);
client = OpenFeatureAPI.getInstance().getClient();
}
diff --git a/version.txt b/version.txt
index 3eefcb9d..7dea76ed 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.0.0
+1.0.1