Kavindu Dodanduwa
6c8657d520
chore: various improvements as suggested by sonar ( #797 )
...
* various improvements as suggested by sonar
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* revert clonable change
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
---------
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-02-13 08:39:45 -08:00
Todd Baert
da47b7f9c0
fix: setProviderAndWait must throw ( #794 )
...
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-08 15:19:20 -05:00
Giovanni Liva
36f5832727
perf: improve error handling ( #739 )
...
* perf: improve error handling
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
* add synchronized keyword
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
---------
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-22 12:56:48 -05:00
Kavindu Dodanduwa
3319e55870
fix: tolerate duplicate provider registrations ( #725 )
...
* fix provider mulitple regiration issue
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* fix lint
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* fix tests
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* improve test and add check for unused imports
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
---------
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-12-12 12:43:14 -08:00
Todd Baert
3ab330a759
fix: null handling with Structure, Value ( #663 )
...
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-10-24 14:46:26 -04:00
Todd Baert
fe5a20f2c3
feat: implement spec 0.7.0 changes ( #655 )
...
* feat: implement spec 0.7.0 changes
* run any event handler immediately if the provider is in the associated state, not just ready
* add providerName to event details
* add STALE provider state
* update/add associated tests
* also fixed spec/test associations mismatches from previous changes
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Thiyagu GK <thiyagu103@gmail.com>
2023-10-23 10:04:52 -04:00
Todd Baert
8c595b0227
fix: RejectedExecutionException on shutdown ( #652 )
...
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-12 16:15:48 -04:00
Kavindu Dodanduwa
c66b99579f
fix: make executor threads deamon ( #601 )
...
* make executor threads deamon
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* unify annotation usage
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
---------
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-09-08 11:54:01 -07:00
Liran M
d063bf292c
fix: NPE on named provider init/shutdown ( #595 )
...
* fix NPE on named provider init
* add condition for not calling shutdown on null old provider
Signed-off-by: liran2000 <liran2000@gmail.com>
2023-09-07 16:11:58 -04:00
Liran M
506e89fd34
feat: add method to set provider and block during init ( #563 )
...
* feat: spec 1.1.8 - setProviderAndWait
The API SHOULD provide functions to set a provider and wait for the initialize function to return or throw
Signed-off-by: liran2000 <liran2000@gmail.com>
* remove method overloading from package private class
Signed-off-by: liran2000 <liran2000@gmail.com>
* add test case for spec 2.4.5
Signed-off-by: liran2000 <liran2000@gmail.com>
* minor updates
Signed-off-by: liran2000 <liran2000@gmail.com>
---------
Signed-off-by: liran2000 <liran2000@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-28 15:43:59 -04:00
Todd Baert
1f28921fec
chore: fix jacoco coverage minimum, throw in memory provider ( #561 )
...
chore: fix codecov, throw in memory provider
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-16 12:37:21 -04:00
Liran M
a741568762
feat: In-memory provider for e2e testing and minimal usage ( #546 )
...
* Adds InMemoryProvider to enable simple testing and basic usage
Signed-off-by: liran2000 <liran2000@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-15 15:04:55 -04:00
Kavindu Dodanduwa
fb42a92e9b
fix: ability to set provider after shutdown ( #556 )
...
* fix shutdown
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
* Grammer fix for code comment
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
---------
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
2023-08-11 13:48:14 -04:00
Todd Baert
37fd2be673
fix: getState now mandatory on EventProvider ( #531 )
...
* fix: getState mandatory on EventProvider
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
* fixup: update test class
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
* Update src/test/java/dev/openfeature/sdk/EventProviderTest.java
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
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>
2023-08-04 15:45:25 -04:00
Todd Baert
8789f90d33
chore: fix race with events tests ( #545 )
...
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-04 15:31:39 -04:00
Thomas Poignant
6253aee3b3
fix: Implement equals for the ImmutableMetadata object ( #512 )
2023-07-17 16:52:00 +02:00
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
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
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
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
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
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
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
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
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