io.atleon.core.ConfigSource Maven / Gradle / Ivy
package io.atleon.core;
import io.atleon.util.ConfigLoading;
import reactor.core.publisher.Mono;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* A reactive Provider that creates configurations for reactive resources. In addition to
* supporting {@link ConfigInterceptor}s, extensions of this class support {@link ConfigProcessor}s,
* which allow reactive (non-blocking) enrichment of properties before generating the resulting
* Config objects.
*
* @param The type of Config to reactively produce
* @param The type of this ConfigFactory
*/
public abstract class ConfigSource> extends ConfigProvider, S> {
public static final String PROCESSORS_PROPERTY = "atleon.config.processors";
protected ConfigSource() {
}
protected ConfigSource(String name) {
super(name);
}
protected ConfigSource(Function