-
Notifications
You must be signed in to change notification settings - Fork 43
feat!: use evaluation context interface #112
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
Conversation
b2b83e1
to
7548ac5
Compare
Codecov Report
@@ 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
Flags with carried forward coverage won't be shown. Click here to find out more.
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
7548ac5
to
27b862b
Compare
282b9c1
to
b635d1c
Compare
Signed-off-by: Todd Baert <toddbaert@gmail.com>
87516b0
to
5418242
Compare
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
5418242
to
097fc86
Compare
@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. |
There was a problem hiding this 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?
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)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did this change?
There was a problem hiding this comment.
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.
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>
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. |
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>
daa34cd
to
700cf54
Compare
Map<String, Object> hints = Collections.unmodifiableMap(flagOptions.getHookHints()); | ||
ctx = ObjectUtils.defaultIfNull(ctx, () -> new EvaluationContext()); | ||
ctx = ObjectUtils.defaultIfNull(ctx, () -> new MutableContext()); |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
I could be missing something, but the SDK itself never needs to mutate a context. That only occurs in |
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.) |
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 |
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()); |
There was a problem hiding this comment.
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.
* 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>
* 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>
This attempts to defer our immutability issues. It does this by:
EvaluationContext
into and interface calledEvaluationContext
EvaluationContext
toMutableContext
, and making it implementEvaluationContext
Structure
into and interface calledStructure
Structure
toMutableStructure
, and making it implementStructure
EvaluationContext
interfaceWe can now implement whatever context we like - context that lock with mutexes, immutable contexts, whatever.