Package org.actioncontroller.config
Class ConfigObserver
- java.lang.Object
-
- org.actioncontroller.config.ConfigObserver
-
- All Implemented Interfaces:
FileListener
public class ConfigObserver extends Object implements FileListener
Used to monitor a set of configuration files and notifyConfigListeners on initialization and change. Given a directory and an application name, appropriate resources and files are monitored with aConfigDirectoryLoader. If the system property `profile` or `profiles` is set, additionally scans for all files on the format<applicationName>-<profile>.properties
-
-
Constructor Summary
Constructors Constructor Description ConfigObserver(String applicationName)ConfigObserver(Path configDirectory, String applicationName)ConfigObserver(Path configDirectory, String applicationName, List<String> profiles)ConfigObserver(ConfigDirectoryLoader configLoader)
-
Method Summary
-
-
-
Method Detail
-
onConfigChange
public ConfigObserver onConfigChange(ConfigListener listener)
The generic observer method. CallConfigListener.onConfigChanged(java.util.Set<java.lang.String>, org.actioncontroller.config.ConfigMap)on the listener when this method is first called and again each time config changes.
-
onStringValue
public ConfigObserver onStringValue(String key, String defaultValue, ConfigValueListener<String> listener)
-
onUrlValue
public ConfigObserver onUrlValue(String key, URL defaultValue, ConfigValueListener<URL> listener)
-
onIntValue
public ConfigObserver onIntValue(String key, int defaultValue, ConfigValueListener<Integer> listener)
-
onLongValue
public ConfigObserver onLongValue(String key, long defaultValue, ConfigValueListener<Long> listener)
-
onBooleanValue
public ConfigObserver onBooleanValue(String key, boolean defaultValue, ConfigValueListener<Boolean> listener)
-
onInetSocketAddress
public ConfigObserver onInetSocketAddress(String key, ConfigValueListener<Optional<InetSocketAddress>> listener)
-
onInetSocketAddress
public ConfigObserver onInetSocketAddress(String key, int defaultPort, ConfigValueListener<InetSocketAddress> listener)
-
onInetSocketAddress
public ConfigObserver onInetSocketAddress(String key, InetSocketAddress defaultAddress, ConfigValueListener<InetSocketAddress> listener)
-
onDurationValue
public ConfigObserver onDurationValue(String key, Duration defaultValue, ConfigValueListener<Duration> listener)
-
onPeriodValue
public ConfigObserver onPeriodValue(String key, Period defaultValue, ConfigValueListener<Period> listener)
-
onStringListValue
public ConfigObserver onStringListValue(String key, String defaultValue, ConfigValueListener<List<String>> listener)
-
onPrefixedValue
public <T> ConfigObserver onPrefixedValue(String prefix, ConfigValueListener<ConfigMap> listener)
-
onPrefixedValue
public <T> ConfigObserver onPrefixedValue(String prefix, ConfigListener.Transformer<T> transformer, ConfigValueListener<T> listener)
-
onSingleConfigValue
public <T> ConfigObserver onSingleConfigValue(String key, ConfigValueTransformer<String,T> transformer, T defaultValue, ConfigValueListener<T> listener)
-
onSingleOptionalValue
public <T> ConfigObserver onSingleOptionalValue(String key, ConfigValueTransformer<String,T> transformer, ConfigValueListener<Optional<T>> listener)
-
onPrefixedOptionalValue
public <T> ConfigObserver onPrefixedOptionalValue(String prefix, ConfigListener.Transformer<T> transformer, ConfigValueListener<Optional<T>> listener)
-
onPrefixedOptionalValue
public ConfigObserver onPrefixedOptionalValue(String prefix, ConfigValueListener<Optional<Map<String,String>>> listener)
-
transform
protected <T> T transform(ConfigMap configuration, ConfigListener.Transformer<T> transformer)
-
applyConfiguration
protected <T> void applyConfiguration(ConfigValueListener<T> listener, String prefix, T configuration)
-
handleConfigurationChanged
protected void handleConfigurationChanged(Set<String> changedKeys, ConfigMap newConfiguration)
-
listenToFileChange
public void listenToFileChange(String key, Path directory, Predicate<Path> pathPredicate)
- Specified by:
listenToFileChangein interfaceFileListener
-
-