Skip to content

Commit 99e25ce

Browse files
authored
fix: selector not being sent in sync call (#1220)
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 34f83c5 commit 99e25ce

File tree

5 files changed

+13
-10
lines changed

5 files changed

+13
-10
lines changed

Diff for: providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnector.java

+10-6
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,16 @@ public GrpcStreamConnector(final FlagdOptions options, Consumer<FlagdProviderEve
5151
FlagSyncServiceGrpc::newStub,
5252
FlagSyncServiceGrpc::newBlockingStub,
5353
onConnectionEvent,
54-
stub -> stub.syncFlags(SyncFlagsRequest.getDefaultInstance(), new GrpcStreamHandler(streamReceiver)));
54+
stub -> {
55+
String localSelector = selector;
56+
57+
final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder();
58+
if (localSelector != null) {
59+
syncRequest.setSelector(localSelector);
60+
}
61+
62+
stub.syncFlags(syncRequest.build(), new GrpcStreamHandler(streamReceiver));
63+
});
5564
}
5665

5766
/** Initialize gRPC stream connector. */
@@ -98,14 +107,9 @@ void observeEventStream(final BlockingQueue<QueuePayload> writeTo, final AtomicB
98107
Exception metadataException = null;
99108

100109
log.debug("Initializing sync stream request");
101-
final SyncFlagsRequest.Builder syncRequest = SyncFlagsRequest.newBuilder();
102110
final GetMetadataRequest.Builder metadataRequest = GetMetadataRequest.newBuilder();
103111
GetMetadataResponse metadataResponse = GetMetadataResponse.getDefaultInstance();
104112

105-
if (selector != null) {
106-
syncRequest.setSelector(selector);
107-
}
108-
109113
try (CancellableContext context = Context.current().withCancellation()) {
110114

111115
try {

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

+1-1
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"})
31+
@ExcludeTags({"unixsocket", "targetURI", "reconnect", "customCert", "events"})
3232
@Testcontainers
3333
public class RunFileTest {
3434

Diff for: providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/RunInProcessTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
@IncludeEngines("cucumber")
2525
@SelectDirectories("test-harness/gherkin")
2626
// if you want to run just one feature file, use the following line instead of @SelectDirectories
27-
// @SelectFile("test-harness/gherkin/connection.feature")
27+
// @SelectFile("test-harness/gherkin/selector.feature")
2828
@ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty")
2929
@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "dev.openfeature.contrib.providers.flagd.e2e.steps")
3030
@ConfigurationParameter(key = OBJECT_FACTORY_PROPERTY_NAME, value = "io.cucumber.picocontainer.PicoFactory")

Diff for: providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/e2e/steps/ProviderSteps.java

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ public ProviderSteps(State state) {
4040

4141
@BeforeAll
4242
public static void beforeAll() throws IOException {
43-
State.resolverType = Config.Resolver.RPC;
4443
sharedTempDir = Files.createDirectories(
4544
Paths.get("tmp/" + RandomStringUtils.randomAlphanumeric(8).toLowerCase() + "/"));
4645
container = new FlagdContainer()

Diff for: providers/flagd/test-harness

0 commit comments

Comments
 (0)