diff --git a/build.gradle.kts b/build.gradle.kts index 65bf8ed..03ff92c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { id("io.vacco.oss.gitflow") version "0.9.8" } group = "io.vacco.oruzka" -version = "0.1.5.1" +version = "0.2.0" configure { addJ8Spec() diff --git a/src/main/java/io/vacco/oruzka/util/OzConfig.java b/src/main/java/io/vacco/oruzka/util/OzConfig.java deleted file mode 100644 index 040e21b..0000000 --- a/src/main/java/io/vacco/oruzka/util/OzConfig.java +++ /dev/null @@ -1,46 +0,0 @@ -package io.vacco.oruzka.util; - -import io.vacco.oruzka.core.OFnSupplier; -import io.vacco.oruzka.core.OzCheck; - -import java.io.File; -import java.net.URL; -import java.util.*; -import java.util.function.Function; -import java.util.stream.*; - -/** - * Minimal class for loading configuration classes. - * Configuration loading order is class path sources, then file/environment sources. - * Data is serialized/deserialized with the functions of your choosing. - */ -public class OzConfig { - - public static T load(Function> loadFn, - Function, T> mapFn, URL... sources) { - List> srcVals = Arrays.stream(sources).map(loadFn).collect(Collectors.toList()); - Optional> om = new OzPatchLeft().onMultiple(srcVals); - OzCheck.isTrue(om.isPresent(), OzCheck.MISSING_DATA); - Map merged = om.get(); - return mapFn.apply(merged); - } - - public static T loadFrom(Function> loadFn, - Function, T> mapFn, - String[] classpathSources, String[] fileSources) { - return load(loadFn, mapFn, Stream.concat( - Arrays.stream(classpathSources).map(OzConfig.class::getResource), - Arrays.stream(fileSources) - .map(path -> new File(path).getAbsoluteFile()) - .map(f -> OFnSupplier.tryGet(() -> f.toURI().toURL())) - ).toArray(URL[]::new)); - } - - public static T loadEnv(Function> loadFn, - Function, T> mapFn, - String envProperty, String ... classpathSources) { - String envRaw = System.getenv(envProperty); - return loadFrom(loadFn, mapFn, classpathSources, envRaw != null ? envRaw.split(",") : new String[]{}); - } - -} diff --git a/src/test/java/io/vacco/oruzka/OzUtilSpec.java b/src/test/java/io/vacco/oruzka/OzUtilSpec.java index a96ed76..24071c1 100644 --- a/src/test/java/io/vacco/oruzka/OzUtilSpec.java +++ b/src/test/java/io/vacco/oruzka/OzUtilSpec.java @@ -5,7 +5,6 @@ import com.esotericsoftware.yamlbeans.YamlWriter; import io.vacco.oruzka.core.OFnSupplier; import io.vacco.oruzka.io.OzIo; -import io.vacco.oruzka.util.OzConfig; import io.vacco.oruzka.util.OzPatchLeft; import j8spec.junit.J8SpecRunner; import org.junit.runner.RunWith; @@ -110,14 +109,6 @@ private static MyConfig fromMap(Map src) { assertTrue(f.isPresent()); System.out.println(f.get()); }); - it("can load config data from multiple sources", () -> { - MyConfig cfg = OzConfig.loadFrom( - OzUtilSpec::readYaml, OzUtilSpec::fromMap, - new String[] {"/io/vacco/oruzka/clp-config-00.yml"}, - new String[] {"./src/test/resources/fs-config-00.yml", "./src/test/resources/fs-config-01.yml"} - ); - System.out.println(cfg); - }); }); } } diff --git a/src/test/resources/fs-config-00.yml b/src/test/resources/fs-config-00.yml deleted file mode 100644 index d81eefd..0000000 --- a/src/test/resources/fs-config-00.yml +++ /dev/null @@ -1,3 +0,0 @@ -resourcePackages: [io.vacco.test.debug] -hostName: test-server.vacco.io -port: 8443 diff --git a/src/test/resources/fs-config-01.yml b/src/test/resources/fs-config-01.yml deleted file mode 100644 index 954fd78..0000000 --- a/src/test/resources/fs-config-01.yml +++ /dev/null @@ -1,3 +0,0 @@ -provider: ClassPath -hostName: prod.vacco.io -port: 443 diff --git a/src/test/resources/io/vacco/oruzka/clp-config-00.yml b/src/test/resources/io/vacco/oruzka/clp-config-00.yml deleted file mode 100644 index 7f2038e..0000000 --- a/src/test/resources/io/vacco/oruzka/clp-config-00.yml +++ /dev/null @@ -1,4 +0,0 @@ -provider: FileSystem -resourcePackages: [io.vacco.test.default] -hostName: localhost -port: 8080