Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions src/main/java/com/uid2/operator/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -306,20 +306,19 @@ private Future<IConfigService> initialiseConfigService() throws Exception {
.put("scanPeriod", 10000))
);

Future.all(dynamicConfigFuture, staticConfigFuture, featureFlagConfigRetriever.getConfig())
Future.all(staticConfigFuture, featureFlagConfigRetriever.getConfig())
.onComplete(ar -> {
if (ar.succeeded()) {
CompositeFuture configServiceManagerCompositeFuture = ar.result();
IConfigService dynamicConfigService = configServiceManagerCompositeFuture.resultAt(0);
IConfigService staticConfigService = configServiceManagerCompositeFuture.resultAt(1);
JsonObject featureFlagConfig = configServiceManagerCompositeFuture.resultAt(2);
IConfigService staticConfigService = configServiceManagerCompositeFuture.resultAt(0);
JsonObject featureFlagConfig = configServiceManagerCompositeFuture.resultAt(1);

boolean remoteConfigFeatureFlag = featureFlagConfig
.getJsonObject("remote_config")
.getBoolean("enabled", false);

ConfigServiceManager configServiceManager = new ConfigServiceManager(
vertx, dynamicConfigService, staticConfigService, remoteConfigFeatureFlag);
vertx, staticConfigService, remoteConfigFeatureFlag);

setupFeatureFlagListener(configServiceManager, featureFlagConfigRetriever);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,13 @@
public class ConfigServiceManager {
private final Vertx vertx;
private final DelegatingConfigService delegatingConfigService;
private final IConfigService dynamicConfigService;
private final IConfigService staticConfigService;
private static final Logger logger = LoggerFactory.getLogger(ConfigServiceManager.class);

public ConfigServiceManager(Vertx vertx, IConfigService dynamicConfigService, IConfigService staticConfigService, boolean useDynamicConfig) {
public ConfigServiceManager(Vertx vertx, IConfigService staticConfigService, boolean useDynamicConfig) {
this.vertx = vertx;
this.dynamicConfigService = dynamicConfigService;
this.staticConfigService = staticConfigService;
this.delegatingConfigService = new DelegatingConfigService(useDynamicConfig ? dynamicConfigService : staticConfigService);
this.delegatingConfigService = new DelegatingConfigService(staticConfigService);
}

public Future<Void> updateConfigService(boolean useDynamicConfig) {
Expand All @@ -27,13 +25,13 @@ public Future<Void> updateConfigService(boolean useDynamicConfig) {
if (lockAsyncResult.succeeded()) {
Lock lock = lockAsyncResult.result();
try {
if (useDynamicConfig) {
/*if (useDynamicConfig) {
logger.info("Switching to DynamicConfigService");
delegatingConfigService.updateConfigService(dynamicConfigService);
} else {
} else {*/
logger.info("Switching to StaticConfigService");
delegatingConfigService.updateConfigService(staticConfigService);
}
// }
promise.complete();
} catch (Exception e) {
promise.fail(e);
Expand Down
34 changes: 17 additions & 17 deletions src/test/java/com/uid2/operator/ConfigServiceManagerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,23 +36,23 @@ void setUp(Vertx vertx) {
IConfigService staticConfigService = mock(IConfigService.class);
when(staticConfigService.getConfig()).thenReturn(staticConfig);

configServiceManager = new ConfigServiceManager(vertx, dynamicConfigService, staticConfigService, true);
// configServiceManager = new ConfigServiceManager(vertx, dynamicConfigService, staticConfigService, true);
}

@Test
void testRemoteFeatureFlag(VertxTestContext testContext) {
IConfigService delegatingConfigService = configServiceManager.getDelegatingConfigService();

configServiceManager.updateConfigService(true)
.compose(updateToDynamic -> {
testContext.verify(() -> assertEquals(bootstrapConfig, delegatingConfigService.getConfig()));

return configServiceManager.updateConfigService(false);
})
.onSuccess(updateToStatic -> testContext.verify(() -> {
assertEquals(staticConfig, delegatingConfigService.getConfig());
testContext.completeNow();
}))
.onFailure(testContext::failNow);
}
// @Test
// void testRemoteFeatureFlag(VertxTestContext testContext) {
// IConfigService delegatingConfigService = configServiceManager.getDelegatingConfigService();
//
// configServiceManager.updateConfigService(true)
// .compose(updateToDynamic -> {
// testContext.verify(() -> assertEquals(bootstrapConfig, delegatingConfigService.getConfig()));
//
// return configServiceManager.updateConfigService(false);
// })
// .onSuccess(updateToStatic -> testContext.verify(() -> {
// assertEquals(staticConfig, delegatingConfigService.getConfig());
// testContext.completeNow();
// }))
// .onFailure(testContext::failNow);
// }
}
Loading