Commit Graph

50 Commits

Author SHA1 Message Date
Todd Baert 5814c30fc7
chore: updates tooling to jdk18, adds missing javadoc
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-11-14 20:57:57 -05: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
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
Todd Baert f36b641395
Add proxy methods context->structure
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-24 11:03:22 -04:00
Todd Baert 360d2b7013
Add generic structure type, use context/getObject
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-23 16:54:08 -04:00
Justin Abrahms 465d1139d5
Remove guava dependency. Ensure unused dependencies are removed from pom.xml 2022-08-22 16:26:36 -07:00
Justin Abrahms 3051790370
Provide a mechanism to get all flags as Object 2022-08-18 08:20:51 -07:00
Todd Baert a307cea536
Handle null provider, all author code in try/catch
Signed-off-by: Todd Baert <toddbaert@gmail.com>
2022-08-15 08:57:55 -04:00
Michael Beemer 4dd0017e89
add double hook interface
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2022-08-12 16:33:11 -04:00
Justin Abrahms e4093c2482
Support passing targetingKey in as param to EvalContext 2022-08-11 15:52:39 -07:00
Robert Grassian e7b2a4503b test
Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-08-11 14:57:40 -07:00
Robert Grassian 54faaf99ae fix merge of eval context targeting key
Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-08-11 14:57:40 -07:00
Justin Abrahms 260d1686cd
hooks are the highest precedence in context merging followed by invocation.
Fixes #43
2022-08-08 19:43:32 -07:00
Justin Abrahms b0efa87bc3
Fix docs warnings 2022-08-07 23:01:34 -07:00
Justin Abrahms f6313fa335
Fix checkstyle issues (mostly adding javadoc) 2022-08-07 22:49:58 -07:00
Justin Abrahms 9ea9e08165
Add some missing javadoc 2022-08-07 22:19:32 -07:00
Justin Abrahms 4cbb87fbab
Support chaining evaluation context additions.
Refs #29
2022-08-07 21:08:45 -07:00
Justin Abrahms efc1c048b6
Add spotbugs & pmd for static analysis
Also move internal state validation into DoSomethingProvider since that sits in test code
2022-08-06 23:31:09 -07:00
Justin Abrahms df1a083398
Merge contexts from api and client 2022-08-06 19:39:50 -07:00
Justin Abrahms f5a49ea164
Drop multi-map implementation of context for a single type-annotated map 2022-08-06 16:13:37 -07:00
Justin Abrahms d71bf0851c
error in before results in default params 2022-08-05 14:38:47 -07:00
Justin Abrahms def7f57007
Provider hooks 2022-08-05 14:19:18 -07:00
Justin Abrahms f37bae77d7
Double support 2022-08-05 14:05:34 -07:00
Robert Grassian a60d530c95 use copy of map rather than iterator, tests
Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-08-03 10:56:42 -07:00
Robert Grassian 0edd3366e1 iterators to get all integer, string, boolean, or structure map entries
Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-08-03 10:56:42 -07:00
Thomas Poignant cfc94c5b77 Add method to get double
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
Signed-off-by: Robert Grassian <robert.grassian@split.io>
2022-08-03 10:56:42 -07:00
Thomas Poignant 0a714fa637 Make constructor public
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
2022-07-23 15:51:05 +02:00
Justin Abrahms d5f4ace4aa
Move to maven. 2022-06-23 11:54:56 -05:00