diff --git a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java index 2b359d236..541c2fd15 100644 --- a/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java +++ b/providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java @@ -51,7 +51,16 @@ public GrpcStreamConnector(final FlagdOptions options, Consumer stub.syncFlags(SyncFlagsRequest.getDefaultInstance(), new GrpcStreamHandler(streamReceiver))); + stub -> { + String localSelector = selector; + + final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder(); + if (localSelector != null) { + syncRequest.setSelector(localSelector); + } + + stub.syncFlags(syncRequest.build(), new GrpcStreamHandler(streamReceiver)); + }); } /** Initialize gRPC stream connector. */ @@ -98,14 +107,9 @@ void observeEventStream(final BlockingQueue writeTo, final AtomicB Exception metadataException = null; log.debug("Initializing sync stream request"); - final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder(); final GetMetadataRequest.Builder metadataRequest = GetMetadataRequest.newBuilder(); GetMetadataResponse metadataResponse = GetMetadataResponse.getDefaultInstance(); - if (selector != null) { - syncRequest.setSelector(selector); - } - try (CancellableContext context = Context.current().withCancellation()) { try { diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java index 7d499390c..099e2f4c9 100644 --- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java +++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunFileTest.java @@ -28,7 +28,7 @@ @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps") @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory") @IncludeTags("file") -@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert"}) +@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events"}) @Testcontainers public class RunFileTest { diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java index 0c0b32420..3a1c33f03 100644 --- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java +++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java @@ -24,7 +24,7 @@ @IncludeEngines("cucumber") @SelectDirectories("test-harness/gherkin") // if you want to run just one feature file, use the following line instead of @SelectDirectories -// @SelectFile("test-harness/gherkin/connection.feature") +// @SelectFile("test-harness/gherkin/selector.feature") @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty") @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps") @ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory") diff --git a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java index ce0fc4234..77f3ddabd 100644 --- a/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java +++ b/providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java @@ -40,7 +40,6 @@ public ProviderSteps(State state) { @BeforeAll public static void beforeAll() throws IOException { - State.resolverType = Config.Resolver.RPC; sharedTempDir = Files.createDirectories( Paths.get("tmp/" + RandomStringUtils.randomAlphanumeric(8).toLowerCase() + "/")); container = new FlagdContainer() diff --git a/providers/flagd/test-harness b/providers/flagd/test-harness index ec1d75c3b..f5afee5aa 160000 --- a/providers/flagd/test-harness +++ b/providers/flagd/test-harness @@ -1 +1 @@ -Subproject commit ec1d75c3b93c1cc54828e517ad744a5150d0598a +Subproject commit f5afee5aa8e94bb9fc0becbb5928a5b4bd44729a