HelidonMpConfigFactory.java
package io.extact.rms.platform.config.helidon;
import java.net.URL;
import java.nio.file.Paths;
import org.eclipse.microprofile.config.spi.ConfigSource;
import io.helidon.config.mp.MpConfigSources;
import io.helidon.config.yaml.mp.YamlMpConfigSource;
import lombok.extern.slf4j.Slf4j;
import io.extact.rms.platform.config.MpConfigFactory;
@Slf4j
public class HelidonMpConfigFactory implements MpConfigFactory {
@Override
public ConfigSource createFromExternalPath(String path) {
ConfigSource source = null;
if (path.endsWith(".properties")) {
source = MpConfigSources.create(Paths.get(path));
}
if (path.endsWith(".yaml")) {
source = YamlMpConfigSource.create(Paths.get(path));
}
if (source == null) {
throw new IllegalArgumentException("Unknown config file ->" + path);
}
log.info("load config from [{}]", path);
return source;
}
@Override
public ConfigSource createFromUrl(URL configUrl) {
ConfigSource source = null;
if (configUrl.toString().endsWith(".properties")) {
source = MpConfigSources.create(configUrl);
}
if (configUrl.toString().endsWith(".yaml")) {
source = YamlMpConfigSource.create(configUrl);
}
if (source == null) {
throw new IllegalArgumentException("Unknown config file ->" + configUrl);
}
log.info("load config from [{}]", configUrl);
return source;
}
}