Skip to content

Commit 0a73bbc

Browse files
authored
chore(flagd): refactoring codebase into multiple classes (#378)
Signed-off-by: Giovanni Liva <[email protected]> Signed-off-by: Giovanni Liva <[email protected]>
1 parent 3505d45 commit 0a73bbc

27 files changed

+1048
-810
lines changed

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
<junit.jupiter.version>5.10.0</junit.jupiter.version>
4848
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4949
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
50-
5150
</properties>
5251

5352
<dependencies>

providers/flagd/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ variables.
4545
| cache | FLAGD_CACHE | string | lru | lru,disabled |
4646
| maxCacheSize | FLAGD_MAX_CACHE_SIZE | int | 1000 | |
4747
| maxEventStreamRetries | FLAGD_MAX_EVENT_STREAM_RETRIES | int | 5 | |
48+
| retryBackoffMs | FLAGD_RETRY_BACKOFF_MS | int | 1000 | |
49+
| deadline | FLAGD_DEADLINE_MS | int | 500 | |
4850

4951
### OpenTelemetry support
5052

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package dev.openfeature.contrib.providers.flagd;
22

3-
final class Config {
3+
/**
4+
* Helper class to hold configuration default values.
5+
*/
6+
public final class Config {
47
static final String DEFAULT_PORT = "8013";
58
static final String DEFAULT_TLS = "false";
69
static final String DEFAULT_HOST = "localhost";
@@ -16,17 +19,19 @@ final class Config {
1619
static final String CACHE_ENV_VAR_NAME = "FLAGD_CACHE";
1720
static final String MAX_CACHE_SIZE_ENV_VAR_NAME = "FLAGD_MAX_CACHE_SIZE";
1821
static final String MAX_EVENT_STREAM_RETRIES_ENV_VAR_NAME = "FLAGD_MAX_EVENT_STREAM_RETRIES";
22+
static final String BASE_EVENT_STREAM_RETRY_BACKOFF_MS_ENV_VAR_NAME = "FLAGD_RETRY_BACKOFF_MS";
23+
static final String DEADLINE_MS_ENV_VAR_NAME = "FLAGD_DEADLINE_MS";
1924

20-
static final String STATIC_REASON = "STATIC";
21-
static final String CACHED_REASON = "CACHED";
25+
public static final String STATIC_REASON = "STATIC";
26+
public static final String CACHED_REASON = "CACHED";
2227

23-
static final String FLAG_KEY_FIELD = "flag_key";
24-
static final String CONTEXT_FIELD = "context";
25-
static final String VARIANT_FIELD = "variant";
26-
static final String VALUE_FIELD = "value";
27-
static final String REASON_FIELD = "reason";
28+
public static final String FLAG_KEY_FIELD = "flag_key";
29+
public static final String CONTEXT_FIELD = "context";
30+
public static final String VARIANT_FIELD = "variant";
31+
public static final String VALUE_FIELD = "value";
32+
public static final String REASON_FIELD = "reason";
2833

29-
static final String LRU_CACHE = "lru";
34+
public static final String LRU_CACHE = "lru";
3035
static final String DEFAULT_CACHE = LRU_CACHE;
3136

3237
static final int DEFAULT_MAX_EVENT_STREAM_RETRIES = 5;

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

Lines changed: 0 additions & 16 deletions
This file was deleted.

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@
44
import lombok.Builder;
55
import lombok.Getter;
66

7+
import static dev.openfeature.contrib.providers.flagd.Config.BASE_EVENT_STREAM_RETRY_BACKOFF_MS;
8+
import static dev.openfeature.contrib.providers.flagd.Config.BASE_EVENT_STREAM_RETRY_BACKOFF_MS_ENV_VAR_NAME;
79
import static dev.openfeature.contrib.providers.flagd.Config.CACHE_ENV_VAR_NAME;
10+
import static dev.openfeature.contrib.providers.flagd.Config.DEADLINE_MS_ENV_VAR_NAME;
811
import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_CACHE;
12+
import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_DEADLINE;
913
import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_HOST;
1014
import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_MAX_CACHE_SIZE;
1115
import static dev.openfeature.contrib.providers.flagd.Config.DEFAULT_MAX_EVENT_STREAM_RETRIES;
@@ -78,6 +82,21 @@ public class FlagdOptions {
7882
private int maxEventStreamRetries =
7983
fallBackToEnvOrDefault(MAX_EVENT_STREAM_RETRIES_ENV_VAR_NAME, DEFAULT_MAX_EVENT_STREAM_RETRIES);
8084

85+
/**
86+
* Backoff interval in milliseconds.
87+
* */
88+
@Builder.Default
89+
private int retryBackoffMs =
90+
fallBackToEnvOrDefault(BASE_EVENT_STREAM_RETRY_BACKOFF_MS_ENV_VAR_NAME, BASE_EVENT_STREAM_RETRY_BACKOFF_MS);
91+
92+
93+
/**
94+
* Deadline to connect to flagD in milliseconds.
95+
* */
96+
@Builder.Default
97+
private int deadline =
98+
fallBackToEnvOrDefault(DEADLINE_MS_ENV_VAR_NAME, DEFAULT_DEADLINE);
99+
81100
/**
82101
* Inject OpenTelemetry for the library runtime. Providing sdk will initiate distributed tracing for flagd grpc
83102
* connectivity.

0 commit comments

Comments
 (0)