Commit Graph

81 Commits

Author SHA1 Message Date
Todd Baert bad5b0a7f5
feat: events (#476)
* feat: events

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: fix bad import, fix test

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: add more coverage of internal

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: remove unused imports

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: unsed imports

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: make inner static

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: more tests, run ready immediately

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: improve reliability of error tests

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

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

Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: review feedback, add comments

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: add provider repo tests, fitest warnings

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

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

Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: shorten javadoc links, shutdown tasks, use methods refs

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: flaky test

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

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

Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: feedback from justin

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: improve javadoc

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* fixup: test race condition fixes

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
2023-07-12 09:22:16 -07:00
Todd Baert 693721e36c
feat: add empty constructors to data classes (#491)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-06-28 10:40:10 -04:00
Todd Baert ecfeddf0f6
chore: rename flag metadata (#478)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-06-16 13:53:31 -04:00
Kavindu Dodanduwa 93dde1d259
chore: expose get value for metadata (#468)
expose get value for metadata

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
2023-06-09 07:57:08 -07:00
Kavindu Dodanduwa 3ed40a3887
feat: add flag metadata (#459)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-06-06 21:44:49 -04:00
Lars Opitz 5f173ff860
feat: add initialize and shutdown behavior (#456)
Signed-off-by: Lars Opitz <Lars@Lars-Opitz.de>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-06-06 21:36:47 -04:00
Justin Abrahms d4c43d74bc
feat: Support mapping a client to a given provider. (#388)
* Support mapping a client to a given provider.

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

* Add a few javadocs.

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

* Special case the null client name

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

* Add some missing test cases.

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

* Moving to an object map unwraps the values.

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

* Fix equality test.

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

* Carry targeting key when copying over null object.

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

* Test provider name, not object equality.

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

* Client-based getProvider is now an overload; Use read lock, not write lock.

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

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

Co-authored-by: Lars Opitz <lars@lars-opitz.de>
Signed-off-by: Justin Abrahms <justin@abrah.ms>

* Simplify locking logic around providers.

There's no such thing as "API without a provider set" anymore. We now default to NoOpProvider in the API (not client).

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

* Add a few missing tests

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

---------

Signed-off-by: Justin Abrahms <justin@abrah.ms>
Co-authored-by: Lars Opitz <lars@lars-opitz.de>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-05-19 15:27:31 -07:00
Todd Baert a5c93aca0a
chore: rename integration tests e2e (#417)
* chore: rename integration tests e2e

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>

* Update pom.xml

Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-05-03 04:36:22 +00:00
Kavindu Dodanduwa d8e7d9e10c
fix: validate list content to be values (#350)
validate list content

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Justin Abrahms <jabrahms@ebay.com>
2023-03-22 16:46:53 +00:00
apulbere 0a27a77fc1
fix: handling of double and integer (#316)
Signed-off-by: apulbere <apulbere@yahoo.com>
2023-03-08 08:49:05 -05:00
Ryan Lamb 464820d5da
fix: Do not throw null reference exception accessing a missing item. (#300)
Signed-off-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
2023-02-16 12:20:51 -08:00
Thiyagu GK d78c99ce16
feat: remove the deprecated setTargetingKey method in EvaluationContext. (#290)
remove the deprecated setTargetingKey method in EvaluationContext.

Signed-off-by: thiyagu06 <thiyagu103@gmail.com>
2023-02-10 15:32:34 -05:00
Justin Abrahms 07ecea1bf9
chore: Update slf4j (#284)
* Update slf4j

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

* Move to a different log testing method

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

* Fix logger in another place too

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

---------

Signed-off-by: Justin Abrahms <jabrahms@ebay.com>
2023-02-10 14:09:57 -05:00
Javier Collado bd4e12e16f
fix: MutableContext and ImmutableContext merge are made recursive (#280)
MutableContext and ImmutableContext merge are made recursive

Signed-off-by: Javier Collado <javicv@gmail.com>
Co-authored-by: Thiyagu GK <thiyagu103@gmail.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-02-08 12:22:43 -05:00
Kavindu Dodanduwa 93499975d0
fix: improve error logs for evaluation failure (#276)
improve error logs for evaluation failure

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-02-03 11:36:51 -05:00
Thiyagu GK 6c14d87c2e
feat: added implementation of immutable evaluation context (#210)
added immutable context implementation

Signed-off-by: thiyagu06 <thiyagu103@gmail.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-01-30 23:29:50 -05:00
Todd Baert 6cb3fe485b
chore: update test annotations, spec badge (#265)
Update the test annotations with new spec verbiage, and update the spec compliance badge.
The functional changes have already been merged/released.

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-01-26 18:52:58 +00:00
Todd Baert d069a8fa9d
feat: add STATIC, CACHED reasons (#240)
feat: add STATIC, CACHED reasons.

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

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-01-19 07:18:52 +00:00
Todd Baert f8ac46f00a
chore: update cuke submodule, tests (#231)
* chore: update cuke submodule, tests

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

* fixup: add note about flagd caching

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

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2023-01-10 09:28:17 -08:00
renovate[bot] 60d2cbbc14
chore(deps): update dependency dev.openfeature.contrib.providers:flagd to v0.5.2 (#181)
* chore(deps): update dependency dev.openfeature.contrib.providers:flagd to v0.5.2

* chore: relax gRPC deadline in integration test

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

Signed-off-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2022-11-28 14:53:49 -05:00
Todd Baert 1a40c97d23
chore: fix issues with compilation on later JDKs (#178)
chore: fix compile/lint issues on  8+

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

Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-11-20 23:25:45 -08:00
Todd Baert 6a299d7228
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>
2022-10-17 14:05:26 -07:00
Robert Grassian fad0f35fc8
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>
2022-10-13 16:24:25 -07:00
Todd Baert 5da918205b
chore: re-enable integration tests (#146)
Update test harness and re-enable integration test profile
2022-10-13 12:55:03 -04:00
Todd Baert 2192932863
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>
2022-10-11 22:43:50 +00:00
Todd Baert e9732b582d
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>
2022-10-06 05:32:29 +00:00
Justin Abrahms 6eeeddd2ea
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>
2022-10-05 11:46:04 -07:00
Todd Baert 84f220d813
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
2022-09-30 12:41:48 -04:00
Todd Baert f8d62eea2f
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>
2022-09-20 09:48:34 -04:00
Thomas Poignant 2eec1a5519
feat: Add asObjectMap to get the EvaluationContext as Map<String,Object> (#75)
* Add asObjectMap to get the EvaluationContext as Map<String,Object>

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* Fix liniting issue

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

* fix PMD issue

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
2022-09-16 15:17:58 +01:00
Robert Grassian 81ab0710ea
fix: isList check in Value checks type of list (#70)
* isList check of Value checks type of list

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

* test for empty list

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

Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-09-13 15:09:59 -07:00
Todd Baert 60fad0507a
Throw on invalid values
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-09 13:59:18 -04:00
Todd Baert 5d262470e8
feat!: use value for object resolver
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-09 11:27:29 -04:00
Todd Baert 3e62414222
feat!: use instant not zoneddatetime
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-09 10:46:00 -04:00
Todd Baert 0152a1eef9
feat: add object to value wrapper
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-09 10:44:12 -04:00
Todd Baert 4fa0a08389
!feat: Make evaluation context setters consistent
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-08 11:14:29 -04:00
Todd Baert 7e6259c14f
breaking: store all numbers as doubles
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-09-07 12:31:40 -04:00
Justin Abrahms 7fa39bcd04
Keep tests in line with spec changes 2022-08-29 11:18:46 -07:00
Justin Abrahms 50225388af
Remove unused parameter 2022-08-29 10:53:40 -07:00
Justin Abrahms 4ec5258d95
Remove flag eval options from provider API 2022-08-29 10:50:54 -07:00
Todd Baert 3cf5a6ffbb
fix: update provider object eval, T -> Structure
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-28 11:43:41 -04:00
Justin Abrahms 4662444f7a
PMD fixes
Signed-off-by: Justin Abrahms <justin@abrah.ms>
2022-08-26 09:36:43 -07:00
Justin Abrahms c86b4c1886
Docs for Value
Clear up warning of parameterized types.

Signed-off-by: Justin Abrahms <justin@abrah.ms>
2022-08-26 08:56:04 -07:00
Justin Abrahms aeb14f61e3
Show what using EvaluationContext looks like in dev experience tests
Signed-off-by: Justin Abrahms <justin@abrah.ms>
2022-08-26 08:55:57 -07:00
Justin Abrahms 2ad492a79c
@Delegate was copying over methods we didn't care about, which made usage of the API ambiguous.
Signed-off-by: Justin Abrahms <justin@abrah.ms>
2022-08-26 08:55:54 -07:00
Justin Abrahms 2e5b26f2e4
Document what a Structure is as well as why we need to use it for providers.
Signed-off-by: Justin Abrahms <justin@abrah.ms>
2022-08-26 08:55:50 -07:00
Todd Baert 84dbd4c819
store times as ZonedDateTime
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-26 10:58:37 -04:00
Todd Baert 6eed1a3107
Remove unused enum
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-25 13:11:04 -04:00
Todd Baert b81b944561
Adding JSON node value abstraction
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-25 10:06:26 -04:00
Todd Baert a862325354
Encapsuate instead of inherent Strcuture
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-24 12:41:50 -04:00