From fc1dc9a40e6386ffb5dfbbd33a911b49c32f0ff2 Mon Sep 17 00:00:00 2001 From: Bernd Warmuth Date: Mon, 13 Jan 2025 11:19:25 +0100 Subject: [PATCH] feat: stop using flag store for connection events Signed-off-by: Bernd Warmuth --- .../resolver/process/InProcessResolver.java | 22 ++++++++----------- .../process/InProcessResolverTest.java | 4 ---- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java index 21e15b7644..86111e0556 100644 --- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java +++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolver.java @@ -10,6 +10,7 @@ import dev.openfeature.contrib.providers.flagd.resolver.process.model.FeatureFlag; import dev.openfeature.contrib.providers.flagd.resolver.process.storage.FlagStore; import dev.openfeature.contrib.providers.flagd.resolver.process.storage.Storage; +import dev.openfeature.contrib.providers.flagd.resolver.process.storage.StorageState; import dev.openfeature.contrib.providers.flagd.resolver.process.storage.StorageStateChange; import dev.openfeature.contrib.providers.flagd.resolver.process.storage.connector.Connector; import dev.openfeature.contrib.providers.flagd.resolver.process.storage.connector.file.FileConnector; @@ -79,20 +80,15 @@ public void init() throws Exception { while (true) { final StorageStateChange storageStateChange = flagStore.getStateQueue().take(); - switch (storageStateChange.getStorageState()) { - case OK: - onConnectionEvent.accept(new ConnectionEvent( - ConnectionState.CONNECTED, - storageStateChange.getChangedFlagsKeys(), - storageStateChange.getSyncMetadata())); - break; - case ERROR: - onConnectionEvent.accept(new ConnectionEvent(false)); - break; - default: - log.info(String.format( - "Storage emitted unhandled status: %s", storageStateChange.getStorageState())); + if (storageStateChange.getStorageState() != StorageState.OK) { + log.info( + String.format("Storage returned NOK status: %s", storageStateChange.getStorageState())); + continue; } + onConnectionEvent.accept(new ConnectionEvent( + ConnectionState.CONNECTED, + storageStateChange.getChangedFlagsKeys(), + storageStateChange.getSyncMetadata())); } } catch (InterruptedException e) { log.warn("Storage state watcher interrupted", e); diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolverTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolverTest.java index 7e0a494a95..e49046d130 100644 --- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolverTest.java +++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/process/InProcessResolverTest.java @@ -114,10 +114,6 @@ public void eventHandling() throws Throwable { assertEquals(StorageState.OK, storageState.getStorageState()); assertEquals(val, storageState.getSyncMetadata().getValue(key).asString()); }); - - assertTimeoutPreemptively(Duration.ofMillis(200), () -> { - assertEquals(StorageState.ERROR, receiver.take().getStorageState()); - }); } @Test