From 1a632f6a7e08d4e6e3b32e7847ae953acea07094 Mon Sep 17 00:00:00 2001 From: Giulio Longfils Date: Thu, 28 Dec 2023 18:33:45 +0100 Subject: [PATCH] minor YamlUtils code cleaning --- .../giulong/spectrum/utils/YamlUtils.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/spectrum/src/main/java/io/github/giulong/spectrum/utils/YamlUtils.java b/spectrum/src/main/java/io/github/giulong/spectrum/utils/YamlUtils.java index 2a3c3557..4dc60e6c 100644 --- a/spectrum/src/main/java/io/github/giulong/spectrum/utils/YamlUtils.java +++ b/spectrum/src/main/java/io/github/giulong/spectrum/utils/YamlUtils.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import io.github.giulong.spectrum.browsers.Browser; import io.github.giulong.spectrum.internals.jackson.deserializers.*; -import io.github.giulong.spectrum.internals.jackson.views.Views; +import io.github.giulong.spectrum.internals.jackson.views.Views.Public; import io.github.giulong.spectrum.pojos.DynamicDeserializersConfiguration; import lombok.Getter; import lombok.SneakyThrows; @@ -30,6 +30,7 @@ public final class YamlUtils { private static final YamlUtils INSTANCE = new YamlUtils(); private static final Path RESOURCES = Path.of("src", "test", "resources"); + private final ClassLoader classLoader = YamlUtils.class.getClassLoader(); private final ObjectMapper propertiesMapper = new JavaPropsMapper(); private final ObjectMapper yamlMapper = new YAMLMapper() @@ -96,14 +97,13 @@ public boolean notExists(final String file, final boolean internal) { return false; } - @SneakyThrows public T read(final String file, final Class clazz, final boolean internal) { if (notExists(file, internal)) { return null; } log.debug("Reading {} file '{}' onto an instance of {}", internal ? "internal" : "client", file, clazz.getSimpleName()); - return yamlMapper.readValue(YamlUtils.class.getClassLoader().getResource(file), clazz); + return read(yamlMapper, file, clazz); } public T read(final String file, final Class clazz) { @@ -114,10 +114,9 @@ public T readInternal(final String file, final Class clazz) { return read(file, clazz, true); } - @SneakyThrows public T readProperties(final String file, final Class clazz) { log.debug("Reading properties file '{}' onto an instance of {}", file, clazz.getSimpleName()); - return propertiesMapper.readValue(YamlUtils.class.getClassLoader().getResource(file), clazz); + return read(propertiesMapper, file, clazz); } @SneakyThrows @@ -127,7 +126,7 @@ public T readNode(final String node, final String file, final Class clazz } log.debug("Reading node '{}' of {} file '{}' onto an instance of {}", node, internal ? "internal" : "client", file, clazz.getSimpleName()); - final JsonNode root = yamlMapper.readTree(YamlUtils.class.getClassLoader().getResource(file)); + final JsonNode root = yamlMapper.readTree(classLoader.getResource(file)); return yamlMapper.convertValue(root.at(node), clazz); } @@ -142,8 +141,10 @@ public T readInternalNode(final String node, final String file, final Class< @SneakyThrows public T readDynamicDeserializable(final String configFile, final Class clazz, final JsonNode jsonNode) { log.debug("Reading dynamic conf file '{}' onto an instance of {}", configFile, clazz.getSimpleName()); - final T t = dynamicConfYamlMapper.readValue(YamlUtils.class.getClassLoader().getResource(configFile), clazz); - return dynamicConfYamlMapper.readerForUpdating(t).readValue(jsonNode); + final T t = read(dynamicConfYamlMapper, configFile, clazz); + return dynamicConfYamlMapper + .readerForUpdating(t) + .readValue(jsonNode); } @SneakyThrows @@ -155,13 +156,23 @@ public void updateWithFile(final T t, final String file) { } log.debug("Updating the instance of {} with file '{}'", t.getClass().getSimpleName(), file); - yamlMapper.readerForUpdating(t).withView(Views.Public.class).readValue(YamlUtils.class.getClassLoader().getResource(file)); + yamlMapper + .readerForUpdating(t) + .withView(Public.class) + .readValue(classLoader.getResource(file)); } @SneakyThrows public void updateWithInternalFile(final T t, final String file) { log.debug("Updating the instance of {} with internal file '{}'", t.getClass().getSimpleName(), file); - yamlMapper.readerForUpdating(t).readValue(YamlUtils.class.getClassLoader().getResource(file)); + yamlMapper + .readerForUpdating(t) + .readValue(classLoader.getResource(file)); + } + + @SneakyThrows + public T read(final ObjectMapper objectMapper, final String fileName, final Class clazz) { + return objectMapper.readValue(classLoader.getResource(fileName), clazz); } @SneakyThrows