Make DynamicConfigurationManager not-really-Managed.
This commit is contained in:
parent
5e1a572bd8
commit
b413f665d8
|
@ -324,6 +324,8 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
ExecutorService gcmSenderExecutor = environment.lifecycle().executorService(name(getClass(), "gcmSender-%d")).maxThreads(1).minThreads(1).build();
|
ExecutorService gcmSenderExecutor = environment.lifecycle().executorService(name(getClass(), "gcmSender-%d")).maxThreads(1).minThreads(1).build();
|
||||||
|
|
||||||
DynamicConfigurationManager dynamicConfigurationManager = new DynamicConfigurationManager(config.getAppConfig().getApplication(), config.getAppConfig().getEnvironment(), config.getAppConfig().getConfigurationName());
|
DynamicConfigurationManager dynamicConfigurationManager = new DynamicConfigurationManager(config.getAppConfig().getApplication(), config.getAppConfig().getEnvironment(), config.getAppConfig().getConfigurationName());
|
||||||
|
dynamicConfigurationManager.start();
|
||||||
|
|
||||||
ExperimentEnrollmentManager experimentEnrollmentManager = new ExperimentEnrollmentManager(dynamicConfigurationManager);
|
ExperimentEnrollmentManager experimentEnrollmentManager = new ExperimentEnrollmentManager(dynamicConfigurationManager);
|
||||||
|
|
||||||
ClientPresenceManager clientPresenceManager = new ClientPresenceManager(clientPresenceCluster, recurringJobExecutor, keyspaceNotificationDispatchExecutor);
|
ClientPresenceManager clientPresenceManager = new ClientPresenceManager(clientPresenceCluster, recurringJobExecutor, keyspaceNotificationDispatchExecutor);
|
||||||
|
@ -392,7 +394,6 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
environment.lifecycle().manage(messagePersister);
|
environment.lifecycle().manage(messagePersister);
|
||||||
environment.lifecycle().manage(clientPresenceManager);
|
environment.lifecycle().manage(clientPresenceManager);
|
||||||
environment.lifecycle().manage(featureFlagsManager);
|
environment.lifecycle().manage(featureFlagsManager);
|
||||||
environment.lifecycle().manage(dynamicConfigurationManager);
|
|
||||||
|
|
||||||
AWSCredentials credentials = new BasicAWSCredentials(config.getCdnConfiguration().getAccessKey(), config.getCdnConfiguration().getAccessSecret());
|
AWSCredentials credentials = new BasicAWSCredentials(config.getCdnConfiguration().getAccessKey(), config.getCdnConfiguration().getAccessSecret());
|
||||||
AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
|
AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
|
||||||
|
|
|
@ -11,7 +11,6 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import io.dropwizard.lifecycle.Managed;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
@ -21,10 +20,9 @@ import org.whispersystems.textsecuregcm.util.Util;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
public class DynamicConfigurationManager implements Managed {
|
public class DynamicConfigurationManager {
|
||||||
|
|
||||||
private final String application;
|
private final String application;
|
||||||
private final String environment;
|
private final String environment;
|
||||||
|
@ -33,7 +31,6 @@ public class DynamicConfigurationManager implements Managed {
|
||||||
private final AmazonAppConfig appConfigClient;
|
private final AmazonAppConfig appConfigClient;
|
||||||
|
|
||||||
private final AtomicReference<DynamicConfiguration> configuration = new AtomicReference<>();
|
private final AtomicReference<DynamicConfiguration> configuration = new AtomicReference<>();
|
||||||
private final AtomicBoolean running = new AtomicBoolean(true);
|
|
||||||
private final Logger logger = LoggerFactory.getLogger(DynamicConfigurationManager.class);
|
private final Logger logger = LoggerFactory.getLogger(DynamicConfigurationManager.class);
|
||||||
|
|
||||||
private GetConfigurationResult lastConfigResult;
|
private GetConfigurationResult lastConfigResult;
|
||||||
|
@ -67,7 +64,6 @@ public class DynamicConfigurationManager implements Managed {
|
||||||
return configuration.get();
|
return configuration.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void start() {
|
public void start() {
|
||||||
configuration.set(retrieveInitialDynamicConfiguration());
|
configuration.set(retrieveInitialDynamicConfiguration());
|
||||||
|
|
||||||
|
@ -77,21 +73,14 @@ public class DynamicConfigurationManager implements Managed {
|
||||||
}
|
}
|
||||||
|
|
||||||
new Thread(() -> {
|
new Thread(() -> {
|
||||||
while (running.get()) {
|
try {
|
||||||
try {
|
retrieveDynamicConfiguration().ifPresent(configuration::set);
|
||||||
retrieveDynamicConfiguration().ifPresent(configuration::set);
|
} catch (Throwable t) {
|
||||||
} catch (Throwable t) {
|
logger.warn("Error retrieving dynamic configuration", t);
|
||||||
logger.warn("Error retrieving dynamic configuration", t);
|
|
||||||
}
|
|
||||||
|
|
||||||
Util.sleep(5000);
|
|
||||||
}
|
}
|
||||||
}).start();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
Util.sleep(5000);
|
||||||
public void stop() {
|
}).start();
|
||||||
running.set(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<DynamicConfiguration> retrieveDynamicConfiguration() throws JsonProcessingException {
|
private Optional<DynamicConfiguration> retrieveDynamicConfiguration() throws JsonProcessingException {
|
||||||
|
|
Loading…
Reference in New Issue