Skip to content

Commit 43064a6

Browse files
Applied PR feedback
1 parent 840f4e1 commit 43064a6

27 files changed

+26
-37
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package datadog.smoketest.springboot.openfeature;
2+
3+
import datadog.trace.api.openfeature.Provider;
4+
import dev.openfeature.sdk.Client;
5+
import dev.openfeature.sdk.OpenFeatureAPI;
6+
import org.springframework.context.annotation.Bean;
7+
import org.springframework.context.annotation.Configuration;
8+
9+
@Configuration
10+
public class OpenFeatureConfiguration {
11+
12+
@Bean
13+
public Client openFeatureClient() {
14+
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
15+
api.setProviderAndWait(new Provider());
16+
return api.getClient();
17+
}
18+
}
Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44

55
import dev.openfeature.sdk.Client;
66
import dev.openfeature.sdk.EvaluationContext;
7-
import dev.openfeature.sdk.FeatureProvider;
87
import dev.openfeature.sdk.FlagEvaluationDetails;
98
import dev.openfeature.sdk.MutableContext;
10-
import dev.openfeature.sdk.OpenFeatureAPI;
119
import dev.openfeature.sdk.Structure;
1210
import dev.openfeature.sdk.Value;
1311
import java.util.HashMap;
@@ -16,7 +14,6 @@
1614
import org.slf4j.Logger;
1715
import org.slf4j.LoggerFactory;
1816
import org.springframework.http.ResponseEntity;
19-
import org.springframework.web.bind.annotation.GetMapping;
2017
import org.springframework.web.bind.annotation.PostMapping;
2118
import org.springframework.web.bind.annotation.RequestBody;
2219
import org.springframework.web.bind.annotation.RequestMapping;
@@ -30,19 +27,8 @@ public class OpenFeatureController {
3027

3128
private final Client client;
3229

33-
public OpenFeatureController() {
34-
OpenFeatureAPI api = OpenFeatureAPI.getInstance();
35-
api.setProviderAndWait(new datadog.trace.api.openfeature.Provider());
36-
this.client = api.getClient();
37-
}
38-
39-
@GetMapping("/provider-metadata")
40-
public Map<String, Object> getProviderMetadata() {
41-
FeatureProvider provider = OpenFeatureAPI.getInstance().getProvider();
42-
Map<String, Object> response = new HashMap<>();
43-
response.put("providerClass", provider.getClass());
44-
response.put("metadata", provider.getMetadata().getName());
45-
return response;
30+
public OpenFeatureController(final Client client) {
31+
this.client = client;
4632
}
4733

4834
@PostMapping(
@@ -53,7 +39,6 @@ public ResponseEntity<?> evaluate(@RequestBody final EvaluateRequest request) {
5339
try {
5440
final EvaluationContext context = context(request);
5541
FlagEvaluationDetails<?> details;
56-
String reason;
5742
switch (request.getVariationType()) {
5843
case "BOOLEAN":
5944
details =
Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
3535

3636
final springBootShadowJar = System.getProperty("datadog.smoketest.springboot.shadowJar.path")
3737
final command = [javaPath()]
38+
command.add('-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005')
3839
command.addAll(defaultJavaProperties)
3940
command.add('-Ddd.trace.debug=true')
4041
command.add('-Ddd.remote_config.enabled=true')
@@ -55,22 +56,6 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
5556
}
5657
}
5758

58-
void 'test open feature provider metadata'() {
59-
setup:
60-
final url = "http://localhost:${httpPort}/openfeature/provider-metadata"
61-
final request = new Request.Builder().url(url).get().build()
62-
63-
when:
64-
final response = client.newCall(request).execute()
65-
66-
then:
67-
response.code() == 200
68-
final responseBody = new JsonSlurper().parse(response.body().byteStream())
69-
responseBody['metadata'] == 'datadog-openfeature-provider'
70-
responseBody['providerClass'] == 'datadog.trace.api.openfeature.Provider'
71-
responseBody != null
72-
}
73-
7459
void 'test remote config'() {
7560
when:
7661
final rcRequest = waitForRcClientRequest {req ->
@@ -84,6 +69,7 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
8469

8570
void 'test open feature evaluation'() {
8671
setup:
72+
setRemoteConfig("datadog/2/FFE_FLAGS/1/config", rcPayload)
8773
final url = "http://localhost:${httpPort}/openfeature/evaluate"
8874
final request = new Request.Builder()
8975
.url(url)
@@ -96,9 +82,9 @@ class OpenFeatureProviderSmokeTest extends AbstractServerSmokeTest {
9682
then:
9783
response.code() == 200
9884
final responseBody = new JsonSlurper().parse(response.body().byteStream())
99-
assert responseBody.value == testCase.result.value
100-
assert responseBody.variant == testCase.result.variant
101-
assert responseBody.flagMetadata?.allocationKey == testCase.result.flagMetadata?.allocationKey
85+
responseBody.value == testCase.result.value
86+
responseBody.variant == testCase.result.variant
87+
responseBody.flagMetadata?.allocationKey == testCase.result.flagMetadata?.allocationKey
10288
if (testCase.result.flagMetadata?.doLog) {
10389
waitForEvpProxyMessage(exposurePoll) {
10490
final exposure = it.v2 as ExposuresRequest

0 commit comments

Comments
 (0)