You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-13Lines changed: 21 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,7 +86,7 @@ Add the Featurevisor Java SDK as a dependency with your desired version:
86
86
<dependency>
87
87
<groupId>com.featurevisor</groupId>
88
88
<artifactId>featurevisor-java</artifactId>
89
-
<version>0.1.0</version>
89
+
<version>3.0.0</version>
90
90
</dependency>
91
91
</dependencies>
92
92
```
@@ -133,6 +133,8 @@ Featurevisor f = Featurevisor.createFeaturevisor(
133
133
134
134
Most applications only need `Featurevisor.createFeaturevisor`, the `Featurevisor` instance type, and `Featurevisor.FeaturevisorOptions`. Public extension and observability types include `FeaturevisorModule`, `FeaturevisorDiagnostic`, and the datafile model types.
135
135
136
+
Concurrent evaluations are safe after an instance is configured. Do not call state-changing methods such as `setDatafile`, `setContext`, `setSticky`, `addModule`, `removeModule`, or `close` concurrently with evaluations or with each other. Apply those changes from a serialized update path. Module, event, and diagnostic callbacks must synchronize mutable state that they capture.
137
+
136
138
## Initialization
137
139
138
140
The SDK can be initialized by passing [datafile](https://featurevisor.com/docs/building-datafiles/) content directly:
@@ -572,7 +574,7 @@ You can listen to these events that can occur at various stages in your applicat
The returned object will always contain the following properties:
652
+
The returned `Evaluation` exposes the following properties:
651
653
652
654
-`featureKey`: the feature key
653
655
-`reason`: the reason how the value was evaluated
@@ -749,6 +751,8 @@ FeaturevisorModule module = new FeaturevisorModule("diagnostic-module")
749
751
750
752
## Child instance
751
753
754
+
A child snapshots the parent keys that exist when it is spawned. Child values win for those keys. Parent keys introduced later are still inherited. Calling `close()` removes both child-owned listeners and subscriptions delegated to the parent.
755
+
752
756
When dealing with purely client-side applications, it is understandable that there is only one user involved, like in browser or mobile applications.
753
757
754
758
But when using Featurevisor SDK in server-side applications, where a single server instance can handle multiple user requests simultaneously, it is important to isolate the context for each request.
@@ -774,8 +778,11 @@ Similar to parent SDK, child instances also support several additional methods:
774
778
775
779
-`setContext`
776
780
-`setSticky`
781
+
-`evaluateFlag`
777
782
-`isEnabled`
783
+
-`evaluateVariation`
778
784
-`getVariation`
785
+
-`evaluateVariable`
779
786
-`getVariable`
780
787
-`getVariableBoolean`
781
788
-`getVariableString`
@@ -916,9 +923,10 @@ $ make verify-artifacts
916
923
917
924
### Releasing
918
925
919
-
- Manually create a new release on [GitHub](https://github.com/featurevisor/featurevisor-java/releases)
920
-
- Tag it with a prefix of `v`, like `v1.0.0`
921
-
- GitHub Actions publishes the parent POM, Java SDK, and OpenFeature provider to [GitHub Packages](https://github.com/orgs/featurevisor/packages?repo_name=featurevisor-java)
926
+
1. Merge the release changes into `main`.
927
+
2. Tag the release with a `v` prefix, such as `v3.0.0`, and push the tag.
928
+
3. GitHub Actions verifies and publishes the parent POM, Java SDK, and OpenFeature provider to [GitHub Packages](https://github.com/orgs/featurevisor/packages?repo_name=featurevisor-java).
929
+
4. Create the corresponding [GitHub release](https://github.com/featurevisor/featurevisor-java/releases).
0 commit comments