From ab230ddd721aaaec9e359c39053dc922f496323f Mon Sep 17 00:00:00 2001 From: zhaoyuango Date: Mon, 18 Mar 2024 20:46:02 -0400 Subject: [PATCH 1/4] fix issue #3 we are removing config utility classes --- .../java/io/vacco/oruzka/util/OzConfig.java | 46 ------------------- src/test/java/io/vacco/oruzka/OzUtilSpec.java | 9 ---- src/test/resources/fs-config-00.yml | 3 -- src/test/resources/fs-config-01.yml | 3 -- .../io/vacco/oruzka/clp-config-00.yml | 4 -- 5 files changed, 65 deletions(-) delete mode 100644 src/main/java/io/vacco/oruzka/util/OzConfig.java delete mode 100644 src/test/resources/fs-config-00.yml delete mode 100644 src/test/resources/fs-config-01.yml delete mode 100644 src/test/resources/io/vacco/oruzka/clp-config-00.yml 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 From c95b300bda2c37f082a8a8acba80785e9f5e396e Mon Sep 17 00:00:00 2001 From: zhaoyuango Date: Tue, 19 Mar 2024 00:53:31 -0400 Subject: [PATCH 2/4] removing config util classes --- build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 65bf8ed..2680c7f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,5 @@ +import io.vacco.oss.gitflow.schema.GsConstants.testImplementation + plugins { id("io.vacco.oss.gitflow") version "0.9.8" } group = "io.vacco.oruzka" @@ -16,4 +18,5 @@ configure { dependencies { testImplementation("com.esotericsoftware.yamlbeans:yamlbeans:1.15") + } From c719b10e5994ee62e2712910dbdb140324ed23cf Mon Sep 17 00:00:00 2001 From: zhaoyuango Date: Tue, 19 Mar 2024 20:45:22 -0400 Subject: [PATCH 3/4] fix issue #3 we are removing config utility classes --- build.gradle.kts | 3 --- 1 file changed, 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2680c7f..65bf8ed 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,3 @@ -import io.vacco.oss.gitflow.schema.GsConstants.testImplementation - plugins { id("io.vacco.oss.gitflow") version "0.9.8" } group = "io.vacco.oruzka" @@ -18,5 +16,4 @@ configure { dependencies { testImplementation("com.esotericsoftware.yamlbeans:yamlbeans:1.15") - } From 22d201e5d0c0e3ed3b8909e192c89c76b9f1944f Mon Sep 17 00:00:00 2001 From: zhaoyuango Date: Wed, 20 Mar 2024 22:03:21 -0400 Subject: [PATCH 4/4] updated project version number --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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()