...
Code Block |
---|
/**
* This class wraps a set of {@link ConfigProvider} instances and uses them to perform
* transformations.
*/
public class ConfigTransformer {
private static final Pattern DEFAULT_PATTERN = Pattern.compile("\\$\\{(.*?):((.*?):)?(.*?)\\}");
private final Map<String, ConfigProvider> configProviders;
private final Pattern pattern;
public ConfigTransformer(Map<String, ConfigProvider> configProviders) {
this(configProviders, DEFAULT_PATTERN);
}
public ConfigTransformer(Map<String, ConfigProvider> configProviders, Pattern pattern) {
this.configProviders = configProviders;
this.pattern = pattern;
}
public Map<String, String> transform(Map<String, String> configs, ConfigChangeCallback callback) {
...
}
} |
An implementation of ConfigProvider
called FileConfigProvider
will be provided that can use secrets from a Properties file. When using the FileConfigProvider
with the variable syntax ${file:path:key
}, the path
will be the path to the file and the key
will be the property key.
...