Skip to content

Commit 2c9c843

Browse files
committed
Merge branch 'main' into improve-wait-logic-to-a-more-elegant-solution-#1160
# Conflicts: # providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java # providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/EventSteps.java
2 parents 619a67f + 122119b commit 2c9c843

File tree

12 files changed

+38
-31
lines changed

12 files changed

+38
-31
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
cache: maven
2525

2626
- name: Cache local Maven repository
27-
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
27+
uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4
2828
with:
2929
path: ~/.m2/repository
3030
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}

.github/workflows/release-please.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232

3333
- name: Cache local Maven repository
3434
if: ${{ steps.release.outputs.releases_created }}
35-
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4
35+
uses: actions/cache@0c907a75c2c80ebcb7f088228285e798b750cf8f # v4
3636
with:
3737
path: ~/.m2/repository
3838
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"providers/flagd": "0.11.2",
2+
"providers/flagd": "0.11.3",
33
"hooks/open-telemetry": "3.2.1",
44
"providers/go-feature-flag": "0.4.2",
55
"providers/flagsmith": "0.0.9",

providers/flagd/CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Changelog
22

3+
## [0.11.3](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.11.2...dev.openfeature.contrib.providers.flagd-v0.11.3) (2025-02-18)
4+
5+
6+
### 🐛 Bug Fixes
7+
8+
* enriched context lost on some events ([#1226](https://github.com/open-feature/java-sdk-contrib/issues/1226)) ([aefa941](https://github.com/open-feature/java-sdk-contrib/commit/aefa9410442baa5d801350e9b039ea27b9b8a41d))
9+
10+
11+
### 🧹 Chore
12+
13+
* **deps:** update dependency providers/flagd/test-harness to v2.2.0 ([#1223](https://github.com/open-feature/java-sdk-contrib/issues/1223)) ([5f75991](https://github.com/open-feature/java-sdk-contrib/commit/5f75991a59a2bb098ef5b927ecdace61e1baf0fd))
14+
* **deps:** update providers/flagd/spec digest to 54952f3 ([#1218](https://github.com/open-feature/java-sdk-contrib/issues/1218)) ([5a19a8d](https://github.com/open-feature/java-sdk-contrib/commit/5a19a8ddf881b9591b9416d4b859d8c656a63519))
15+
* **deps:** update providers/flagd/test-harness digest to ec1d75c ([#1198](https://github.com/open-feature/java-sdk-contrib/issues/1198)) ([3fe0871](https://github.com/open-feature/java-sdk-contrib/commit/3fe0871d4765228983cc6da5de0bf8b2f66854a6))
16+
* update testbed ([#1225](https://github.com/open-feature/java-sdk-contrib/issues/1225)) ([020c9a1](https://github.com/open-feature/java-sdk-contrib/commit/020c9a14fedddd3fec450a87db45dead0c33f4c2))
17+
318
## [0.11.2](https://github.com/open-feature/java-sdk-contrib/compare/dev.openfeature.contrib.providers.flagd-v0.11.1...dev.openfeature.contrib.providers.flagd-v0.11.2) (2025-02-13)
419

520

providers/flagd/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ This provider is designed to use flagd's [evaluation protocol](https://github.co
88
<dependency>
99
<groupId>dev.openfeature.contrib.providers</groupId>
1010
<artifactId>flagd</artifactId>
11-
<version>0.11.2</version>
11+
<version>0.11.3</version>
1212
</dependency>
1313
```
1414
<!-- x-release-please-end-version -->

providers/flagd/pom.xml

Lines changed: 2 additions & 2 deletions
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.11.2</version> <!--x-release-please-version -->
13+
<version>0.11.3</version> <!--x-release-please-version -->
1414

1515
<properties>
1616
<!-- exclusion expression for e2e tests -->
@@ -158,7 +158,7 @@
158158
<dependency>
159159
<groupId>io.rest-assured</groupId>
160160
<artifactId>rest-assured</artifactId>
161-
<version>5.5.0</version>
161+
<version>5.5.1</version>
162162
<scope>test</scope>
163163
</dependency>
164164
<!-- uncomment for logoutput during test runs -->

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/FlagdProvider.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ public List<Hook> getProviderHooks() {
118118

119119
@Override
120120
public void initialize(EvaluationContext evaluationContext) throws Exception {
121-
log.info("called initialize");
122121
synchronized (syncResources) {
123122
if (syncResources.isInitialized()) {
124123
return;
@@ -183,19 +182,6 @@ public ProviderEvaluation<Value> getObjectEvaluation(String key, Value defaultVa
183182
return flagResolver.objectEvaluation(key, defaultValue, ctx);
184183
}
185184

186-
/**
187-
* An unmodifiable view of a Structure representing the latest result of the
188-
* SyncMetadata.
189-
* Set on initial connection and updated with every reconnection.
190-
* see:
191-
* https://buf.build/open-feature/flagd/docs/main:flagd.sync.v1#flagd.sync.v1.FlagSyncService.GetMetadata
192-
*
193-
* @return Object map representing sync metadata
194-
*/
195-
protected Structure getSyncMetadata() {
196-
return syncResources.getSyncMetadata();
197-
}
198-
199185
/**
200186
* The updated context mixed into all evaluations based on the sync-metadata.
201187
*
@@ -205,6 +191,7 @@ EvaluationContext getEnrichedContext() {
205191
return syncResources.getEnrichedContext();
206192
}
207193

194+
@SuppressWarnings("checkstyle:fallthrough")
208195
private void onProviderEvent(FlagdProviderEvent flagdProviderEvent) {
209196
log.info("FlagdProviderEvent event {} ", flagdProviderEvent.getEvent());
210197
synchronized (syncResources) {
@@ -228,11 +215,15 @@ private void onProviderEvent(FlagdProviderEvent flagdProviderEvent) {
228215
onConfigurationChanged(flagdProviderEvent);
229216
break;
230217
}
231-
onReady();
232-
syncResources.setPreviousEvent(ProviderEvent.PROVIDER_READY);
233-
break;
234-
218+
// intentional fall through
235219
case PROVIDER_READY:
220+
/*
221+
* Sync metadata is used to enrich the context, and is immutable in flagd,
222+
* so we only need it to be fetched once at READY.
223+
*/
224+
if (flagdProviderEvent.getSyncMetadata() != null) {
225+
syncResources.setEnrichedContext(contextEnricher.apply(flagdProviderEvent.getSyncMetadata()));
226+
}
236227
onReady();
237228
syncResources.setPreviousEvent(ProviderEvent.PROVIDER_READY);
238229
break;

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/FlagdProviderTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,6 @@ void updatesSyncMetadataWithCallback() throws Exception {
671671
provider.initialize(ctx);
672672

673673
// the onConnectionEvent should have updated the sync metadata and the
674-
assertEquals(val, provider.getSyncMetadata().getValue(key).asString());
675674
assertEquals(val, provider.getEnrichedContext().getValue(key).asString());
676675

677676
// call the hook manually and make sure the enriched context is returned

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
2929
@ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")
3030
@IncludeTags("file")
31-
@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events"})
31+
@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events", "contextEnrichment"})
3232
@Testcontainers
3333
public class RunFileTest {
3434

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/EventSteps.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
@Slf4j
1818
public class EventSteps extends AbstractSteps {
1919

20+
private static final int EVENT_TIMEOUT_MS = 12_000;
21+
2022
public EventSteps(State state) {
2123
super(state);
2224
state.events = new LinkedList<>();
@@ -46,13 +48,13 @@ public void a_stale_event_handler(String eventType) {
4648
}
4749

4850
@When("a {} event was fired")
49-
public void eventWasFired(String eventType) throws InterruptedException {
50-
eventHandlerShouldBeExecutedWithin(eventType, 10000);
51+
public void eventWasFired(String eventType) {
52+
eventHandlerShouldBeExecutedWithin(eventType, EVENT_TIMEOUT_MS);
5153
}
5254

5355
@Then("the {} event handler should have been executed")
5456
public void eventHandlerShouldBeExecuted(String eventType) {
55-
eventHandlerShouldBeExecutedWithin(eventType, 10000);
57+
eventHandlerShouldBeExecutedWithin(eventType, EVENT_TIMEOUT_MS);
5658
}
5759

5860
@Then("the {} event handler should have been executed within {int}ms")

0 commit comments

Comments
 (0)