Skip to content
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

feat!: use evaluation context interface #112

Merged
merged 8 commits into from
Oct 6, 2022

Conversation

toddbaert
Copy link
Member

@toddbaert toddbaert commented Oct 4, 2022

This attempts to defer our immutability issues. It does this by:

  • Extracting the read operations of EvaluationContext into and interface called EvaluationContext
  • renaming the old EvaluationContext to MutableContext, and making it implement EvaluationContext
  • Extracting the read operations of Structure into and interface called Structure
  • renaming the old Structure to MutableStructure, and making it implement Structure
  • all SDK methods now work with the new EvaluationContext interface

We can now implement whatever context we like - context that lock with mutexes, immutable contexts, whatever.

@toddbaert toddbaert marked this pull request as draft October 4, 2022 20:08
@toddbaert toddbaert changed the title POC - use evaluation context interface poc: use evaluation context interface Oct 4, 2022
@codecov-commenter
Copy link

codecov-commenter commented Oct 4, 2022

Codecov Report

Merging #112 (700cf54) into main (faca917) will decrease coverage by 0.62%.
The diff coverage is 84.80%.

@@             Coverage Diff              @@
##               main     #112      +/-   ##
============================================
- Coverage     91.84%   91.21%   -0.63%     
- Complexity      175      177       +2     
============================================
  Files            19       19              
  Lines           380      387       +7     
  Branches         23       23              
============================================
+ Hits            349      353       +4     
- Misses           20       23       +3     
  Partials         11       11              
Flag Coverage Δ
unittests 91.21% <84.80%> (-0.63%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...rc/main/java/dev/openfeature/sdk/NoOpProvider.java 96.55% <ø> (ø)
.../main/java/dev/openfeature/sdk/MutableContext.java 68.08% <68.08%> (ø)
...ain/java/dev/openfeature/sdk/MutableStructure.java 92.85% <92.85%> (ø)
src/main/java/dev/openfeature/sdk/HookSupport.java 97.56% <100.00%> (ø)
...in/java/dev/openfeature/sdk/OpenFeatureClient.java 97.64% <100.00%> (+0.02%) ⬆️

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@toddbaert toddbaert changed the title poc: use evaluation context interface chore: poc, use evaluation context interface Oct 4, 2022
@toddbaert toddbaert force-pushed the poc/eval-context-interface branch 2 times, most recently from 282b9c1 to b635d1c Compare October 5, 2022 20:12
Signed-off-by: Todd Baert <toddbaert@gmail.com>
@toddbaert toddbaert force-pushed the poc/eval-context-interface branch 3 times, most recently from 87516b0 to 5418242 Compare October 5, 2022 20:34
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
@toddbaert toddbaert changed the title chore: poc, use evaluation context interface feat!: use evaluation context interface Oct 5, 2022
@toddbaert toddbaert marked this pull request as ready for review October 5, 2022 21:03
@toddbaert
Copy link
Member Author

@justinabrahms I've marked this ready. I've tested this locally in the flagd providers and it works as expected. Please review the names and interfaces, especially.

@toddbaert toddbaert requested a review from skyerus October 5, 2022 21:09
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Copy link
Member

@justinabrahms justinabrahms left a comment

Choose a reason for hiding this comment

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

I'm not entirely clear why we're passing around MutableContexts so much. I'd guess that it would be only used by users and providers / hooks would all use the interface?

src/main/java/dev/openfeature/sdk/Client.java Outdated Show resolved Hide resolved
src/main/java/dev/openfeature/sdk/Client.java Outdated Show resolved Hide resolved
src/main/java/dev/openfeature/sdk/EvaluationContext.java Outdated Show resolved Hide resolved
src/main/java/dev/openfeature/sdk/MutableContext.java Outdated Show resolved Hide resolved
Comment on lines +82 to +88
EvaluationContext apiContext = openfeatureApi.getEvaluationContext() != null
? openfeatureApi.getEvaluationContext()
: new MutableContext();
EvaluationContext clientContext = openfeatureApi.getEvaluationContext() != null
? this.getEvaluationContext()
: new MutableContext();
EvaluationContext mergedCtx = apiContext.merge(clientContext.merge(invocationCtx));
Copy link
Member

Choose a reason for hiding this comment

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

Why did this change?

Copy link
Member Author

@toddbaert toddbaert Oct 6, 2022

Choose a reason for hiding this comment

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

Merge was previously a static method. I don't think it can be any longer, since we have to instantiate a new instance of whatever implementation we are dealing with.

Previously, merge could easily handle if once of the context passed were null. With the new instance method, we have to make sure the the context is not null before calling it. In many of the tests, this.getEvaluationContext() and openfeatureApi.getEvaluationContext() were null.

I could change this snippet to not create the empty MutableContexts to save some GC, but it would be fairly ugly I think.

toddbaert and others added 2 commits October 5, 2022 20:35
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
@toddbaert
Copy link
Member Author

I'm not entirely clear why we're passing around MutableContexts so much. I'd guess that it would be only used by users and providers / hooks would all use the interface?

There may be a few cases where I use it unnecessarily, but in some cases we need to create an instance within the client/API. I'll see what I can do to minimize these.

@toddbaert
Copy link
Member Author

toddbaert commented Oct 6, 2022

I'm not entirely clear why we're passing around MutableContexts so much. I'd guess that it would be only used by users and providers / hooks would all use the interface?

There may be a few cases where I use it unnecessarily, but in some cases we need to create an instance within the client/API. I'll see what I can do to minimize these.

@justinabrahms I've eliminated quite a few of these in this commit. Thanks for catching that. There are a few more cases that can't quite as easily be eliminated, which I've pointed out in comments.

@kinyoklion
Copy link
Member

It is possible that I am maybe not completely following this, but I think if the idea is to put contexts behind an interface, and then to later be able to swap them with minimal breakage, would you not want both mutable, and readonly access, to be interfaces, and for the instances to be created with factories (not builders, but just make me a new mutable instance)?

This would be especially important if the thought is that different implementations might exist to cater to different sensitives.

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Map<String, Object> hints = Collections.unmodifiableMap(flagOptions.getHookHints());
ctx = ObjectUtils.defaultIfNull(ctx, () -> new EvaluationContext());
ctx = ObjectUtils.defaultIfNull(ctx, () -> new MutableContext());
Copy link
Member Author

Choose a reason for hiding this comment

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

@justinabrahms I think this is a case we need to instantiate something. We need to pass some kind of context to the hooks (I don't think we want it to be null if none happens to have been set).

I don't think this is a problem, since in the hook it will be an EvaluationContext interface which (unless unsafely casted) can only be used for reads.

Copy link
Member

Choose a reason for hiding this comment

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

Yep. I'm all for this idea. We should be able to swap this in the future in a backwards compatible way, provided that the underlying context is of the EvaluationContext type.

@toddbaert
Copy link
Member Author

It is possible that I am maybe not completely following this, but I think if the idea is to put contexts behind an interface, and then to later be able to swap them with minimal breakage, would you not want both mutable, and readonly access, to be interfaces, and for the instances to be created with factories (not builders, but just make me a new mutable instance)?

This would be especially important if the thought is that different implementations might exist to cater to different sensitives.

I could be missing something, but the SDK itself never needs to mutate a context. That only occurs in application author code. For this reason, I think only the read operations are relevant to the interface. I think with the current scheme, we could implement an ImmutableContext that takes a map in it's constructor, or can be built with a builder, but is immutable after instantiation. It could be used everywhere a MutableContext is.

@kinyoklion
Copy link
Member

kinyoklion commented Oct 6, 2022

It is possible that I am maybe not completely following this, but I think if the idea is to put contexts behind an interface, and then to later be able to swap them with minimal breakage, would you not want both mutable, and readonly access, to be interfaces, and for the instances to be created with factories (not builders, but just make me a new mutable instance)?
This would be especially important if the thought is that different implementations might exist to cater to different sensitives.

I could be missing something, but the SDK itself never needs to mutate a context. That only occurs in application author code. For this reason, I think only the read operations are relevant to the interface. I think with the current scheme, we could implement an ImmutableContext that takes a map in it's constructor, or can be built with a builder, but is immutable after instantiation. It could be used everywhere a MutableContext is.

I guess I mostly concerned with before hooks. They could come from a number of places and would need to be able to create some level of mutable context. A provider hook specifically. I guess they could make anything that complies with the interface, and the considerations are more constrained in that case. (If I were implementing one though, I would just want to make whatever instance type was canonical, or whatever mutable type the application is using.)

@toddbaert
Copy link
Member Author

I guess they could make anything that complies with the interface, and the considerations are more constrained in that case.

The considerations more constrained, and additionally, the before hook also allows authors to return an instance of a context, which is merged with the ambient context as per the spec. This is the idiomatic way to alter the context from a before hook.

I think I see your point though, that hook authors have to make a choice here, and it's somewhat disconnected from whatever instances the application author is choosing to instantiate. I will think about that some more. I'm not sure how much of a problem it is.

@kinyoklion
Copy link
Member

I think I see your point though, that hook authors have to make a choice here, and it's somewhat disconnected from whatever instances the application author is choosing to instantiate. I will think about that some more. I'm not sure how much of a problem it is.

It probably isn't too much of a concern. I can imagine a provider making a context, keeping that in the provider, and then always returning it in the before hook. As long as they don't ever change the content it would likely be fine. If you make a context within the hook and then don't re-use it, then it isn't really a problem.

Map<String, Object> hints = Collections.unmodifiableMap(flagOptions.getHookHints());
ctx = ObjectUtils.defaultIfNull(ctx, () -> new EvaluationContext());
ctx = ObjectUtils.defaultIfNull(ctx, () -> new MutableContext());
Copy link
Member

Choose a reason for hiding this comment

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

Yep. I'm all for this idea. We should be able to swap this in the future in a backwards compatible way, provided that the underlying context is of the EvaluationContext type.

@justinabrahms justinabrahms enabled auto-merge (squash) October 6, 2022 05:30
@justinabrahms justinabrahms merged commit e9732b5 into main Oct 6, 2022
@justinabrahms justinabrahms deleted the poc/eval-context-interface branch October 6, 2022 05:32
pbhandari9541 pushed a commit to pbhandari9541/java-sdk that referenced this pull request Nov 3, 2022
* POC - use evaluation context interface

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* make .merge non-static

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* improve naming

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* add @OverRide

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* Update src/main/java/dev/openfeature/sdk/EvaluationContext.java

Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>

* Update src/main/java/dev/openfeature/sdk/MutableContext.java

Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>

* address PR feedback

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>
justinabrahms added a commit that referenced this pull request Nov 4, 2022
* chore: add integration tests (#77)

* chore: add integration tests

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* improve POM spacing

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(main): release dev.openfeature.javasdk 0.2.2 (#76)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* feat!: errorCode as enum, reason as string (#80)

* feat!: errorCode as enum, reason as string

- makes errorCode an enum
- makes reason a string
- adds errorMessage to resolution/evaluation details

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: add CODEOWNERS (#85)

Create CODEOWNERS

refs #83

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Configure Renovate (#86)

chore(deps): add renovate.json

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency com.github.spotbugs:spotbugs to v4.7.2 (#87)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency com.github.spotbugs:spotbugs-maven-plugin to v4.7.2.0 (#88)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.4.1 (#90)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.13 (#91)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* fix(deps): update junit5 monorepo (#92)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-pmd-plugin to v3.19.0 (#97)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* fix(deps): update dependency io.cucumber:cucumber-bom to v7.8.0 (#100)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.mockito:mockito-core to v4.8.0 (#99)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update codecov/codecov-action action to v3 (#102)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-gpg-plugin to v1.6 (#96)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-source-plugin to v3 (#105)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.10.1 (#95)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-gpg-plugin to v3 (#104)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.2.0 (#94)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/cache action to v3 (#101)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.45.1 (#93)

* chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.45.1

* scope property went away in the latest version

jshiell/checkstyle-idea#525 (comment)

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>

* scope wasn't deleted on the other one

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* refactor!: Change the package name. Everyone knows it's java (or it doesn't matter) (#111)

* Change the package name. Everyone knows it's java (or it doesn't matter)

Fixes #82

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Missed 2 strings

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* remove broken flagd import until changes absorbed

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Justin Abrahms <justin@abrah.ms>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Write perms should be as tightly scoped as possible. (#107)

* Add a dependabot file to keep deps up to date

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Move write permissions to the specific job, rather than globally

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Run code scanning (slow auto-build) weekly

Signed-off-by: Justin Abrahms <justin@abrah.ms>

Signed-off-by: Justin Abrahms <justin@abrah.ms>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: fix dependabot pr titles (#118)

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Bump cucumber-bom from 7.8.0 to 7.8.1 (#115)

Bump cucumber-bom from 7.8.0 to 7.8.1

Bumps [cucumber-bom](https://github.com/cucumber/cucumber-jvm) from 7.8.0 to 7.8.1.
- [Release notes](https://github.com/cucumber/cucumber-jvm/releases)
- [Changelog](https://github.com/cucumber/cucumber-jvm/blob/main/CHANGELOG.md)
- [Commits](cucumber/cucumber-jvm@v7.8.0...v7.8.1)

---
updated-dependencies:
- dependency-name: io.cucumber:cucumber-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: add SAST scanning (#108)

* add SAST scanning

Refs #84

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Java scanning only

Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Try codeql on the normal build to see how much longer it is.

Signed-off-by: Justin Abrahms <justin@abrah.ms>

Signed-off-by: Justin Abrahms <justin@abrah.ms>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* feat!: use evaluation context interface (#112)

* POC - use evaluation context interface

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* make .merge non-static

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* improve naming

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* add @OverRide

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* Update src/main/java/dev/openfeature/sdk/EvaluationContext.java

Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>

* Update src/main/java/dev/openfeature/sdk/MutableContext.java

Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>

* address PR feedback

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* feat: Support for generating CycloneDX sboms (#119)

Signed-off-by: Justin Abrahms <justin@abrah.ms>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: [StepSecurity] ci: Harden GitHub Actions (#120)

* [StepSecurity] ci: Harden GitHub Actions in release.yml

* [StepSecurity] ci: Harden GitHub Actions in static-code-scanning.yaml

* [StepSecurity] ci: Harden GitHub Actions in lint-pr.yml

* [StepSecurity] ci: Harden GitHub Actions in merge.yml

* [StepSecurity] ci: Harden GitHub Actions in pullrequest.yml

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: I don't think we use that permission? (#123)

I don't think we use that permission?

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Document where to find our SBOMs (#124)

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/cache digest to a3f5edc (#121)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/setup-java digest to e150063 (#125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Remove more perms (#130)

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.cyclonedx:cyclonedx-maven-plugin to v2.7.1 (#128)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update github/codeql-action digest to 3d39294 (#127)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update codecov/codecov-action digest to e0fbd59 (#126)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Bump actions/checkout from 3.0.2 to 3.1.0 (#139)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@2541b12...93ea575)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Bump actions/setup-java from e150063ee446b60ce2e35b040e81846da9001576 to a82e6d00200608b0b4c131bc9a89f7349786bd33 (#140)

chore: Bump actions/setup-java

Bumps [actions/setup-java](https://github.com/actions/setup-java) from e150063ee446b60ce2e35b040e81846da9001576 to a82e6d00200608b0b4c131bc9a89f7349786bd33.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](actions/setup-java@e150063...a82e6d0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: bump spotbugs-maven-plugin from 4.7.2.0 to 4.7.2.1 (#136)

Bumps [spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.7.2.0 to 4.7.2.1.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](spotbugs/spotbugs-maven-plugin@spotbugs-maven-plugin-4.7.2.0...spotbugs-maven-plugin-4.7.2.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: exclude component in git tag (#143)

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update dependency org.cyclonedx:cyclonedx-maven-plugin to v2.7.2 (#141)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* feat!: add rw locks to client/api, hook accessor name (#131)

* fix: add read/write locks to client/api

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* dont lock entire evaluation

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* add tests

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* fixup comment

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* fixup pom comment

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* increase lock granularity, imporove tests

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* fix spotbugs

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* remove commented test

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/setup-java digest to 3617c43 (#132)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update amannn/action-semantic-pull-request digest to b314c1b (#135)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Remove dependabot. I like renovate better (#142)

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update amannn/action-semantic-pull-request digest to 7c194c2 (#144)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update github/codeql-action digest to 44edb7c (#133)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/checkout digest to 8230315 (#122)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(main): release 0.3.0 (#114)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: re-enable integration tests (#146)

Update test harness and re-enable integration test profile

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* 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 <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* fix: merge eval context (#149)

fix merge eval context

Signed-off-by: Robert Grassian <robert.grassian@split.io>

Signed-off-by: Robert Grassian <robert.grassian@split.io>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(main): release 0.3.1 (#150)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update github/codeql-action digest to 297ec80 (#147)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: update test/spec association numbers, badge (#156)

* chore: update test/spec association numbers

Signed-off-by: Todd Baert <toddbaert@gmail.com>

* chore: update spec tag

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/cache digest to 2b04a41 (#158)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(security): [Snyk] Security upgrade com.github.spotbugs:spotbugs from 4.7.2 to 4.7.3 (#157)

fix: pom.xml to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JAVA-ORGAPACHECOMMONS-3043138

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Add docs link (#165)

Signed-off-by: Todd Baert <toddbaert@gmail.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore: Mark project as active. (#167)

Mark project as active.

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(main): release 1.0.0 (#168)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* chore(deps): update actions/cache digest to 8bec1e4 (#159)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

* changes spotbug scope to provided.

Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>
Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Justin Abrahms <justin@abrah.ms>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Robert Grassian <robert.grassian@split.io>
Signed-off-by: Pramesh <p_bhandari@hotmail.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Step Security Bot <bot@stepsecurity.io>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Robert Grassian <89157164+rgrassian-split@users.noreply.github.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: Bhandari, Pramesh(AWF) <pabhandari@ebay.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants