public abstract class PollingProjectConfigManager extends java.lang.Object implements ProjectConfigManager, java.lang.AutoCloseable, OptimizelyConfigManager
poll() method
which is responsible for fetching a given ProjectConfig.
If this class is never started then calls will be made directly to poll()
since no scheduled execution is being performed.
Calling getConfig() should block until the ProjectConfig
is initially set. A default ProjectConfig can be provided to bootstrap the initial ProjectConfig
return value and prevent blocking.| Constructor and Description |
|---|
PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit) |
PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit,
long blockingTimeoutPeriod,
java.util.concurrent.TimeUnit blockingTimeoutUnit,
NotificationCenter notificationCenter) |
PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit,
NotificationCenter notificationCenter) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
ProjectConfig |
getCachedConfig()
Access to current cached project configuration, This is to make sure that config returns without any wait, even if it is null.
|
ProjectConfig |
getConfig()
If the instance was never started, then call getConfig() directly from the inner ProjectConfigManager.
|
NotificationCenter |
getNotificationCenter() |
OptimizelyConfig |
getOptimizelyConfig()
Returns the cached
OptimizelyConfig |
java.lang.String |
getSDKKey()
Implementations of this method should return SDK key.
|
boolean |
isRunning() |
protected abstract ProjectConfig |
poll() |
protected void |
setSdkKey(java.lang.String sdkKey) |
void |
start() |
void |
stop() |
public PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit)
public PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit,
NotificationCenter notificationCenter)
public PollingProjectConfigManager(long period,
java.util.concurrent.TimeUnit timeUnit,
long blockingTimeoutPeriod,
java.util.concurrent.TimeUnit blockingTimeoutUnit,
NotificationCenter notificationCenter)
protected abstract ProjectConfig poll()
public ProjectConfig getCachedConfig()
getCachedConfig in interface ProjectConfigManagerProjectConfigpublic NotificationCenter getNotificationCenter()
public ProjectConfig getConfig()
getConfig in interface ProjectConfigManagerpublic OptimizelyConfig getOptimizelyConfig()
OptimizelyConfiggetOptimizelyConfig in interface OptimizelyConfigManagerOptimizelyConfigpublic java.lang.String getSDKKey()
ProjectConfigManagergetSDKKey in interface ProjectConfigManagerpublic void start()
public void stop()
public void close()
close in interface java.lang.AutoCloseableprotected void setSdkKey(java.lang.String sdkKey)
public boolean isRunning()