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