Skip to content

Commit 3512291

Browse files
Merge remote-tracking branch 'origin/main' into go-feature-flag-provider-658d
2 parents c4c0f99 + 557074e commit 3512291

File tree

28 files changed

+444
-73
lines changed

28 files changed

+444
-73
lines changed

Diff for: .release-please-manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"providers/flagd": "0.5.10",
2+
"providers/flagd": "0.6.0",
33
"hooks/open-telemetry": "2.0.0",
44
"providers/go-feature-flag": "0.2.9",
55
"providers/flagsmith": "0.0.7",

Diff for: pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<properties>
4545
<maven.compiler.source>1.8</maven.compiler.source>
4646
<maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
47-
<junit.jupiter.version>5.9.3</junit.jupiter.version>
47+
<junit.jupiter.version>5.10.0</junit.jupiter.version>
4848
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4949
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
5050
</properties>
@@ -130,7 +130,7 @@
130130
<dependency>
131131
<groupId>org.junit.platform</groupId>
132132
<artifactId>junit-platform-suite</artifactId>
133-
<version>1.9.3</version>
133+
<version>1.10.0</version>
134134
<scope>test</scope>
135135
</dependency>
136136

Diff for: providers/env-var/pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<dependency>
2727
<groupId>org.apache.commons</groupId>
2828
<artifactId>commons-lang3</artifactId>
29-
<version>3.12.0</version>
29+
<version>3.13.0</version>
3030
</dependency>
3131
</dependencies>
3232
</project>

Diff for: providers/flagd/CHANGELOG.md

+27
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,32 @@
11
# Changelog
22

3+
## [0.6.0](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.5.10...dev.openfeature.contrib.providers.flagd-v0.6.0) (2023-07-27)
4+
5+
6+
### ⚠ BREAKING CHANGES
7+
8+
* add events support ([#361](https://github.com/open-feature/java-sdk-contrib/issues/361))
9+
* require newer SDK version
10+
11+
### Features
12+
13+
* add events support ([#361](https://github.com/open-feature/java-sdk-contrib/issues/361)) ([258ca10](https://github.com/open-feature/java-sdk-contrib/commit/258ca10c815e61f782442fb3b8c87cd1dd79fe75))
14+
15+
16+
### Bug Fixes
17+
18+
* **deps:** update dependency io.grpc:grpc-netty to v1.56.0 ([#340](https://github.com/open-feature/java-sdk-contrib/issues/340)) ([641f26b](https://github.com/open-feature/java-sdk-contrib/commit/641f26bb31d84724f9cdd50b92757fc4c0c9adcc))
19+
* **deps:** update dependency io.grpc:grpc-netty to v1.56.1 ([#349](https://github.com/open-feature/java-sdk-contrib/issues/349)) ([716cdfa](https://github.com/open-feature/java-sdk-contrib/commit/716cdfaff3ef88302300d2089103d167d9a38033))
20+
* **deps:** update dependency io.grpc:grpc-protobuf to v1.56.0 ([#341](https://github.com/open-feature/java-sdk-contrib/issues/341)) ([d57285d](https://github.com/open-feature/java-sdk-contrib/commit/d57285db67b795b185940d12e883a8c2fa8bd6f5))
21+
* **deps:** update dependency io.grpc:grpc-protobuf to v1.56.1 ([#350](https://github.com/open-feature/java-sdk-contrib/issues/350)) ([55e9f06](https://github.com/open-feature/java-sdk-contrib/commit/55e9f061a9ac5fe847029fd56461219572b77643))
22+
* **deps:** update dependency io.grpc:grpc-stub to v1.56.0 ([#342](https://github.com/open-feature/java-sdk-contrib/issues/342)) ([141baad](https://github.com/open-feature/java-sdk-contrib/commit/141baad57f966d3a3e90084613efbf6acbadd7ed))
23+
* **deps:** update dependency io.grpc:grpc-stub to v1.56.1 ([#351](https://github.com/open-feature/java-sdk-contrib/issues/351)) ([dbead5b](https://github.com/open-feature/java-sdk-contrib/commit/dbead5bd31e6368dcb4681476abec3deab28966a))
24+
* **deps:** update dependency io.netty:netty-transport-native-epoll to v4.1.93.final ([#326](https://github.com/open-feature/java-sdk-contrib/issues/326)) ([142d516](https://github.com/open-feature/java-sdk-contrib/commit/142d5164c17d9cfdc63c1853d181fd5f2e1dbcbe))
25+
* **deps:** update dependency io.netty:netty-transport-native-epoll to v4.1.94.final ([#346](https://github.com/open-feature/java-sdk-contrib/issues/346)) ([8e8cc05](https://github.com/open-feature/java-sdk-contrib/commit/8e8cc051df3fe7795162db3971c39d5152a3efc7))
26+
* **deps:** update dependency io.netty:netty-transport-native-epoll to v4.1.95.final ([#362](https://github.com/open-feature/java-sdk-contrib/issues/362)) ([147453e](https://github.com/open-feature/java-sdk-contrib/commit/147453ed4e0a8c2591686fe623de69fb5def3fa2))
27+
* **deps:** update dependency io.opentelemetry:opentelemetry-api to v1.27.0 ([#338](https://github.com/open-feature/java-sdk-contrib/issues/338)) ([a0d2753](https://github.com/open-feature/java-sdk-contrib/commit/a0d2753c1b80c5ce67025a4e31698bb67cc8dfc0))
28+
* **deps:** update dependency io.opentelemetry:opentelemetry-api to v1.28.0 ([#354](https://github.com/open-feature/java-sdk-contrib/issues/354)) ([220b01a](https://github.com/open-feature/java-sdk-contrib/commit/220b01a173f2c1067fce92e0ff39e2a17e5000ec))
29+
330
## [0.5.10](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.5.9...dev.openfeature.contrib.providers.flagd-v0.5.10) (2023-05-09)
431

532

Diff for: providers/flagd/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ A feature flag daemon with a Unix philosophy.
1010
<dependency>
1111
<groupId>dev.openfeature.contrib.providers</groupId>
1212
<artifactId>flagd</artifactId>
13-
<version>0.5.10</version>
13+
<version>0.6.0</version>
1414
</dependency>
1515
```
1616
<!-- x-release-please-end-version -->

Diff for: providers/flagd/pom.xml

+15-5
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111
<groupId>dev.openfeature.contrib.providers</groupId>
1212
<artifactId>flagd</artifactId>
13-
<version>0.5.10</version> <!--x-release-please-version -->
13+
<version>0.6.0</version> <!--x-release-please-version -->
1414

1515
<name>flagd</name>
1616
<description>FlagD provider for Java</description>
@@ -26,33 +26,43 @@
2626
</developers>
2727

2828
<dependencies>
29+
30+
<!-- override parent definition -->
31+
<dependency>
32+
<groupId>dev.openfeature</groupId>
33+
<artifactId>sdk</artifactId>
34+
<version>[1.4,2.0)</version>
35+
<scope>provided</scope>
36+
</dependency>
37+
38+
2939
<!-- we inherent dev.openfeature.javasdk and the test dependencies from the parent pom -->
3040

3141
<dependency>
3242
<groupId>io.grpc</groupId>
3343
<artifactId>grpc-netty</artifactId>
34-
<version>1.56.1</version>
44+
<version>1.57.0</version>
3545
</dependency>
3646

3747
<dependency>
3848
<!-- we only support unix sockets on linux, via epoll native lib -->
3949
<groupId>io.netty</groupId>
4050
<artifactId>netty-transport-native-epoll</artifactId>
41-
<version>4.1.95.Final</version>
51+
<version>4.1.96.Final</version>
4252
<!-- TODO: with 5+ (still alpha), arm is support and we should package multiple versions -->
4353
<classifier>linux-x86_64</classifier>
4454
</dependency>
4555

4656
<dependency>
4757
<groupId>io.grpc</groupId>
4858
<artifactId>grpc-protobuf</artifactId>
49-
<version>1.56.1</version>
59+
<version>1.57.0</version>
5060
</dependency>
5161

5262
<dependency>
5363
<groupId>io.grpc</groupId>
5464
<artifactId>grpc-stub</artifactId>
55-
<version>1.56.1</version>
65+
<version>1.57.0</version>
5666
</dependency>
5767

5868
<dependency>
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
package dev.openfeature.contrib.providers.flagd;
22

3+
import dev.openfeature.sdk.ProviderState;
4+
35
/**
46
* Defines behaviour required of event stream callbacks.
57
*/
68
interface EventStreamCallback {
7-
void setEventStreamAlive(boolean alive);
9+
void setState(ProviderState state);
810

911
void restartEventStream() throws Exception;
12+
13+
void emitSuccessReconnectionEvents();
14+
15+
void emitConfigurationChangeEvent();
1016
}

Diff for: providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/EventStreamObserver.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package dev.openfeature.contrib.providers.flagd;
22

33
import java.util.Map;
4+
5+
import dev.openfeature.sdk.ProviderState;
46
import io.grpc.stub.StreamObserver;
57
import lombok.extern.slf4j.Slf4j;
68
import dev.openfeature.flagd.grpc.Schema.EventStreamResponse;
@@ -16,7 +18,7 @@ public class EventStreamObserver implements StreamObserver<EventStreamResponse>
1618

1719
private static final String configurationChange = "configuration_change";
1820
private static final String providerReady = "provider_ready";
19-
private static final String flagsKey = "flags";
21+
static final String flagsKey = "flags";
2022

2123
EventStreamObserver(FlagdCache cache, EventStreamCallback callback) {
2224
this.cache = cache;
@@ -44,9 +46,10 @@ public void onError(Throwable t) {
4446
if (this.cache.getEnabled()) {
4547
this.cache.clear();
4648
}
47-
this.callback.setEventStreamAlive(false);
49+
this.callback.setState(ProviderState.ERROR);
4850
try {
4951
this.callback.restartEventStream();
52+
this.callback.emitSuccessReconnectionEvents();
5053
} catch (Exception e) {
5154
log.error("restart event stream", e);
5255
}
@@ -57,14 +60,14 @@ public void onCompleted() {
5760
if (this.cache.getEnabled()) {
5861
this.cache.clear();
5962
}
60-
this.callback.setEventStreamAlive(false);
63+
this.callback.setState(ProviderState.ERROR);
6164
}
6265

6366
private void handleConfigurationChangeEvent(EventStreamResponse value) {
67+
this.callback.emitConfigurationChangeEvent();
6468
if (!this.cache.getEnabled()) {
6569
return;
6670
}
67-
6871
Map<String, Value> data = value.getData().getFieldsMap();
6972
Value flagsValue = data.get(flagsKey);
7073
if (flagsValue == null) {
@@ -80,7 +83,7 @@ private void handleConfigurationChangeEvent(EventStreamResponse value) {
8083
}
8184

8285
private void handleProviderReadyEvent() {
83-
this.callback.setEventStreamAlive(true);
86+
this.callback.setState(ProviderState.READY);
8487
if (this.cache.getEnabled()) {
8588
this.cache.clear();
8689
}

Diff for: providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdCache.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package dev.openfeature.contrib.providers.flagd;
22

3-
import java.util.Collections;
4-
import java.util.Map;
5-
3+
import dev.openfeature.sdk.ProviderEvaluation;
64
import org.apache.commons.collections4.map.LRUMap;
75

8-
import dev.openfeature.sdk.ProviderEvaluation;
6+
import java.util.Collections;
7+
import java.util.Map;
98

109
import static dev.openfeature.contrib.providers.flagd.Config.LRU_CACHE;
1110

0 commit comments

Comments
 (0)