From 02fba0ae37cc3f70a366d56b2cab0d1235acc65e Mon Sep 17 00:00:00 2001 From: Bruno Farache Date: Tue, 27 Apr 2021 12:21:05 -0300 Subject: [PATCH 1/3] Close streams properly --- .../commands/RetrieveSystemDigest.java | 59 +++++++------ .../monitoring/MonitoringImportService.java | 5 +- .../elastic/support/scrub/ScrubProcessor.java | 10 +-- .../elastic/support/util/ArchiveUtils.java | 66 +++++++------- .../elastic/support/util/JsonYamlUtils.java | 87 +++++++++---------- .../com/elastic/support/util/SystemUtils.java | 14 --- .../commands/TestKibanaGetDetails.java | 2 +- .../commands/TestRunKibanaQueries.java | 2 +- .../rest/TestRestConfigFileValidity.java | 3 +- 9 files changed, 120 insertions(+), 128 deletions(-) diff --git a/src/main/java/com/elastic/support/diagnostics/commands/RetrieveSystemDigest.java b/src/main/java/com/elastic/support/diagnostics/commands/RetrieveSystemDigest.java index bf1dba7f..8fb82d9a 100644 --- a/src/main/java/com/elastic/support/diagnostics/commands/RetrieveSystemDigest.java +++ b/src/main/java/com/elastic/support/diagnostics/commands/RetrieveSystemDigest.java @@ -27,52 +27,55 @@ public class RetrieveSystemDigest implements Command { private final Logger logger = LogManager.getLogger(RetrieveSystemDigest.class); public void execute(DiagnosticContext context) { - try { SystemInfo si = new SystemInfo(); HardwareAbstractionLayer hal = si.getHardware(); OperatingSystem os = si.getOperatingSystem(); File sysFileJson = new File(context.tempDir + SystemProperties.fileSeparator + "system-digest.json"); - OutputStream outputStreamJson = new FileOutputStream(sysFileJson); - BufferedWriter jsonWriter = new BufferedWriter(new OutputStreamWriter(outputStreamJson)); - String jsonInfo = si.toPrettyJSON(); - jsonWriter.write(jsonInfo); - jsonWriter.close(); + + try ( + OutputStream outputStreamJson = new FileOutputStream(sysFileJson); + BufferedWriter jsonWriter = new BufferedWriter(new OutputStreamWriter(outputStreamJson)); + ) { + String jsonInfo = si.toPrettyJSON(); + jsonWriter.write(jsonInfo); + } File sysFile = new File(context.tempDir + SystemProperties.fileSeparator + "system-digest.txt"); - OutputStream outputStream = new FileOutputStream(sysFile); - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream)); - printComputerSystem(writer, hal.getComputerSystem()); - writer.newLine(); + try ( + OutputStream outputStream = new FileOutputStream(sysFile); + BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream)); + ) { + printComputerSystem(writer, hal.getComputerSystem()); + writer.newLine(); - printProcessor(writer, hal.getProcessor()); - writer.newLine(); + printProcessor(writer, hal.getProcessor()); + writer.newLine(); - printMemory(writer, hal.getMemory()); - writer.newLine(); + printMemory(writer, hal.getMemory()); + writer.newLine(); - printCpu(writer, hal.getProcessor()); - writer.newLine(); + printCpu(writer, hal.getProcessor()); + writer.newLine(); - printProcesses(writer, os, hal.getMemory()); - writer.newLine(); + printProcesses(writer, os, hal.getMemory()); + writer.newLine(); - printDisks(writer, hal.getDiskStores()); - writer.newLine(); + printDisks(writer, hal.getDiskStores()); + writer.newLine(); - printFileSystem(writer, os.getFileSystem()); - writer.newLine(); + printFileSystem(writer, os.getFileSystem()); + writer.newLine(); - printNetworkInterfaces(writer, hal.getNetworkIFs()); - writer.newLine(); + printNetworkInterfaces(writer, hal.getNetworkIFs()); + writer.newLine(); - printNetworkParameters(writer, os.getNetworkParams()); - writer.newLine(); + printNetworkParameters(writer, os.getNetworkParams()); + writer.newLine(); + } - writer.close(); logger.info("Finished querying SysInfo."); - } catch (final Exception e) { logger.info("Failed saving system-digest.txt file.", e); } diff --git a/src/main/java/com/elastic/support/monitoring/MonitoringImportService.java b/src/main/java/com/elastic/support/monitoring/MonitoringImportService.java index 8f5c5988..e6aec6b5 100644 --- a/src/main/java/com/elastic/support/monitoring/MonitoringImportService.java +++ b/src/main/java/com/elastic/support/monitoring/MonitoringImportService.java @@ -24,9 +24,8 @@ public class MonitoringImportService extends ElasticRestClientService { private Logger logger = LogManager.getLogger(MonitoringImportService.class); private static final String SCROLL_ID = "{ \"scroll_id\" : \"{{scrollId}}\" }"; - void execImport(MonitoringImportInputs inputs){ - - Map configMap = JsonYamlUtils.readYamlFromClasspath(Constants.DIAG_CONFIG, true); + void execImport(MonitoringImportInputs inputs) throws DiagnosticException { + Map configMap = JsonYamlUtils.readYamlFromClasspath(Constants.DIAG_CONFIG, true); MonitoringImportConfig config = new MonitoringImportConfig(configMap); try (RestClient client = getClient(inputs, config)){ diff --git a/src/main/java/com/elastic/support/scrub/ScrubProcessor.java b/src/main/java/com/elastic/support/scrub/ScrubProcessor.java index ddfe6317..e77e7cf9 100644 --- a/src/main/java/com/elastic/support/scrub/ScrubProcessor.java +++ b/src/main/java/com/elastic/support/scrub/ScrubProcessor.java @@ -1,6 +1,7 @@ package com.elastic.support.scrub; import com.elastic.support.Constants; +import com.elastic.support.diagnostics.DiagnosticException; import com.elastic.support.util.JsonYamlUtils; import com.fasterxml.jackson.databind.JsonNode; import org.apache.commons.lang3.ObjectUtils; @@ -33,8 +34,7 @@ public class ScrubProcessor { - public ScrubProcessor(String nodes) { - + public ScrubProcessor(String nodes) throws DiagnosticException { this(); if (StringUtils.isNotEmpty(nodes)) { @@ -42,9 +42,9 @@ public ScrubProcessor(String nodes) { } } - public ScrubProcessor() { - scrubConfig = - JsonYamlUtils.readYamlFromClasspath("scrub.yml", false); + public ScrubProcessor() throws DiagnosticException { + scrubConfig = JsonYamlUtils.readYamlFromClasspath("scrub.yml", false); + Collection auto = (Collection) scrubConfig.get("auto-scrub"); if (auto != null) { autoScrub.addAll(auto); diff --git a/src/main/java/com/elastic/support/util/ArchiveUtils.java b/src/main/java/com/elastic/support/util/ArchiveUtils.java index b3ba0aba..da098b04 100644 --- a/src/main/java/com/elastic/support/util/ArchiveUtils.java +++ b/src/main/java/com/elastic/support/util/ArchiveUtils.java @@ -39,39 +39,42 @@ public static File createArchive(String dir, String archiveFileName) throws Diag } } - public static File createZipArchive(String dir, String archiveFileName) throws IOException { + private static File createZipArchive(String dir, String archiveFileName) throws IOException { File srcDir = new File(dir); String filename = dir + "-" + archiveFileName + ".zip"; File file = new File(filename); - FileOutputStream fout = new FileOutputStream(filename); - ZipArchiveOutputStream taos = new ZipArchiveOutputStream(fout); - archiveResultsZip(archiveFileName, taos, srcDir, "", true); - taos.close(); - logger.info(Constants.CONSOLE, "Archive: " + filename + " was created"); - - return file; + try ( + FileOutputStream fout = new FileOutputStream(filename); + ZipArchiveOutputStream taos = new ZipArchiveOutputStream(fout) + ) { + archiveResultsZip(archiveFileName, taos, srcDir, "", true); + logger.info(Constants.CONSOLE, "Archive: " + filename + " was created"); + return file; + } } - public static File createTarArchive(String dir, String archiveFileName) throws IOException { + private static File createTarArchive(String dir, String archiveFileName) throws IOException { File srcDir = new File(dir); String filename = dir + "-" + archiveFileName + ".tar.gz"; File file = new File(filename); - FileOutputStream fout = new FileOutputStream(filename); - CompressorOutputStream cout = new GzipCompressorOutputStream(fout); - TarArchiveOutputStream taos = new TarArchiveOutputStream(cout); - taos.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_STAR); - taos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU); - archiveResultsTar(archiveFileName, taos, srcDir, "", true); - taos.close(); + try ( + FileOutputStream fout = new FileOutputStream(filename); + CompressorOutputStream cout = new GzipCompressorOutputStream(fout); + TarArchiveOutputStream taos = new TarArchiveOutputStream(cout) + ) { + taos.setBigNumberMode(TarArchiveOutputStream.BIGNUMBER_STAR); + taos.setLongFileMode(TarArchiveOutputStream.LONGFILE_GNU); + archiveResultsTar(archiveFileName, taos, srcDir, "", true); - logger.info(Constants.CONSOLE, "Archive: " + filename + " was created"); + logger.info(Constants.CONSOLE, "Archive: " + filename + " was created"); - return file; + return file; + } } - public static void archiveResultsZip(String archiveFilename, ZipArchiveOutputStream taos, File file, String path, boolean append) { + private static void archiveResultsZip(String archiveFilename, ZipArchiveOutputStream taos, File file, String path, boolean append) { String relPath = ""; try { @@ -84,11 +87,10 @@ public static void archiveResultsZip(String archiveFilename, ZipArchiveOutputStr taos.putArchiveEntry(tae); if (file.isFile()) { - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); - IOUtils.copy(bis, taos); - taos.closeArchiveEntry(); - bis.close(); - + try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { + IOUtils.copy(bis, taos); + taos.closeArchiveEntry(); + } } else if (file.isDirectory()) { taos.closeArchiveEntry(); for (File childFile : file.listFiles()) { @@ -100,7 +102,7 @@ public static void archiveResultsZip(String archiveFilename, ZipArchiveOutputStr } } - public static void archiveResultsTar(String archiveFilename, TarArchiveOutputStream taos, File file, String path, boolean append) { + private static void archiveResultsTar(String archiveFilename, TarArchiveOutputStream taos, File file, String path, boolean append) { String relPath = ""; try { @@ -113,13 +115,13 @@ public static void archiveResultsTar(String archiveFilename, TarArchiveOutputStr taos.putArchiveEntry(tae); if (file.isFile()) { - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); - IOUtils.copy(bis, taos); - taos.closeArchiveEntry(); - bis.close(); - + try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { + IOUtils.copy(bis, taos); + taos.closeArchiveEntry(); + } } else if (file.isDirectory()) { taos.closeArchiveEntry(); + for (File childFile : file.listFiles()) { archiveResultsTar(archiveFilename, taos, childFile, relPath, false); } @@ -183,7 +185,9 @@ else if (entry.isDirectory()) { logger.error(e); } finally { - ais.close(); + if (ais != null) { + ais.close(); + } } } diff --git a/src/main/java/com/elastic/support/util/JsonYamlUtils.java b/src/main/java/com/elastic/support/util/JsonYamlUtils.java index 886fab0b..cd796baa 100644 --- a/src/main/java/com/elastic/support/util/JsonYamlUtils.java +++ b/src/main/java/com/elastic/support/util/JsonYamlUtils.java @@ -1,5 +1,6 @@ package com.elastic.support.util; +import com.elastic.support.diagnostics.DiagnosticException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; @@ -18,7 +19,6 @@ import java.io.InputStream; import java.util.*; - public class JsonYamlUtils { private static final Logger logger = LoggerFactory.getLogger(JsonYamlUtils.class); @@ -57,9 +57,7 @@ public static JsonNode createJsonNodeFromString(String nodeString) { } public static JsonNode createJsonNodeFromClasspath(String path) { - try { - InputStream is; - is = JsonYamlUtils.class.getClassLoader().getResourceAsStream(path); + try (InputStream is = JsonYamlUtils.class.getClassLoader().getResourceAsStream(path)) { String nodeString = new String(IOUtils.toByteArray(is)); ObjectMapper mapper = new ObjectMapper(); return mapper.readTree(nodeString); @@ -74,56 +72,54 @@ public static void writeYaml(String path, Map tree) { DumperOptions options = new DumperOptions(); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); Yaml yaml = new Yaml(options); - FileWriter writer = new FileWriter(path); - yaml.dump(tree, writer); + try (FileWriter writer = new FileWriter(path)) { + yaml.dump(tree, writer); + } } catch (IOException e) { logger.info("Error writing YAML to: {}", path); throw new RuntimeException(e); } } - public static Map readYamlFromClasspath(String path, boolean isBlock) { - try { + public static Map readYamlFromClasspath(String path, boolean isBlock) throws DiagnosticException { + try ( InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(path); - Map doc = JsonYamlUtils.readYaml(inputStream, isBlock); - SystemUtils.streamClose(path, inputStream); - return doc; - } catch (Exception e) { + ) { + return JsonYamlUtils.readYaml(inputStream, isBlock); + } + catch (Exception e) { logger.info("Error reading YAML from {}", path); - throw new RuntimeException(e); + throw new DiagnosticException("Error reading YAML file",e); } } - public static Map readYamlFromPath(String path, boolean isBlock) throws Exception { - File fl = FileUtils.getFile(path); - InputStream inputStream = new FileInputStream(fl); - Map doc = JsonYamlUtils.readYaml(inputStream, isBlock); - SystemUtils.streamClose(path, inputStream); - return doc; + public static Map readYamlFromPath(String path, boolean isBlock) throws DiagnosticException { + try ( + InputStream inputStream = new FileInputStream(FileUtils.getFile(path)) + ) { + return JsonYamlUtils.readYaml(inputStream, isBlock); + } + catch (Exception e) { + logger.info("Error reading YAML from {}", path); + throw new DiagnosticException("Error reading YAML file",e); + } } - public static Map readYaml(InputStream in, boolean isBlock) throws Exception { - Map doc = null; + public static Map readYaml(InputStream in, boolean isBlock) { + DumperOptions options = new DumperOptions(); - try { - DumperOptions options = new DumperOptions(); - if (isBlock) { - options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); - } + if (isBlock) { + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + } - Yaml yaml = new Yaml(options); - doc = (Map) yaml.load(in); + Yaml yaml = new Yaml(options); + Map doc = yaml.load(in); - } catch (Exception e) { - logger.info("Error encountered retrieving yml file.", e); - } - finally { - return nullSafeYamlMap(doc); - } - } + return nullSafeYamlMap(doc); +} - public static Map flattenYaml(Map map) { - Map result = new LinkedHashMap<>(); + public static Map flattenYaml(Map map) { + Map result = new LinkedHashMap<>(); buildFlattenedMap(result, map, null); return result; } @@ -145,11 +141,10 @@ public static Map flattenNode(JsonNode node) { } } - public static void buildFlattenedMap(Map result, Map source, String path) { + public static void buildFlattenedMap(Map result, Map source, String path) { + for (Map.Entry entry : source.entrySet()) { + String key = entry.getKey(); - Set> entries = source.entrySet(); - for (Map.Entry entry : entries) { - String key = entry.getKey().toString(); if (StringUtils.isNoneEmpty(path)) { if (key.startsWith("[")) { key = path + key; @@ -157,12 +152,15 @@ public static void buildFlattenedMap(Map result, Map source, String path) { key = path + "." + key; } } + Object value = entry.getValue(); + if (value instanceof String) { result.put(key, value); } else if (value instanceof Map) { // Need a compound key - Map map = (Map) value; + @SuppressWarnings("unchecked") + Map map = (Map) value; buildFlattenedMap(result, map, key); //} else if (value instanceof List) { // result.put(key, value); @@ -181,10 +179,11 @@ public static void buildFlattenedMap(Map result, Map source, String path) { } } - private static Map nullSafeYamlMap(Map doc){ + private static Map nullSafeYamlMap(Map doc){ if (doc == null){ - doc = new HashMap(); + doc = new HashMap<>(); } + return doc; } diff --git a/src/main/java/com/elastic/support/util/SystemUtils.java b/src/main/java/com/elastic/support/util/SystemUtils.java index a47ed15c..0def19d0 100644 --- a/src/main/java/com/elastic/support/util/SystemUtils.java +++ b/src/main/java/com/elastic/support/util/SystemUtils.java @@ -42,20 +42,6 @@ public static void writeToFile(String content, String dest) throws DiagnosticExc } } - public static void streamClose(String path, InputStream instream) { - - if (instream != null) { - try { - instream.close(); - } catch (Throwable t) { - logger.error(Constants.CONSOLE, "Error encountered when attempting to close file {}", path); - } - } else { - logger.error(Constants.CONSOLE, "Error encountered when attempting to close file: null InputStream {}", path); - } - - } - public static void nukeDirectory(String dir){ try { File tmp = new File(dir); diff --git a/src/test/java/com/elastic/support/diagnostics/commands/TestKibanaGetDetails.java b/src/test/java/com/elastic/support/diagnostics/commands/TestKibanaGetDetails.java index 876f91e7..ea839a1b 100644 --- a/src/test/java/com/elastic/support/diagnostics/commands/TestKibanaGetDetails.java +++ b/src/test/java/com/elastic/support/diagnostics/commands/TestKibanaGetDetails.java @@ -147,7 +147,7 @@ public void testClusterFindTargetNode() { } @Test - public void testFunctionGetStats() { + public void testFunctionGetStats() throws DiagnosticException { mockServer .when( diff --git a/src/test/java/com/elastic/support/diagnostics/commands/TestRunKibanaQueries.java b/src/test/java/com/elastic/support/diagnostics/commands/TestRunKibanaQueries.java index fd776597..2c6dca48 100644 --- a/src/test/java/com/elastic/support/diagnostics/commands/TestRunKibanaQueries.java +++ b/src/test/java/com/elastic/support/diagnostics/commands/TestRunKibanaQueries.java @@ -84,7 +84,7 @@ public void tearDown() { } - private DiagnosticContext initializeKibana(String version) { + private DiagnosticContext initializeKibana(String version) throws DiagnosticException { DiagnosticContext context = new DiagnosticContext(); RestEntryConfig builder = new RestEntryConfig(version); diff --git a/src/test/java/com/elastic/support/rest/TestRestConfigFileValidity.java b/src/test/java/com/elastic/support/rest/TestRestConfigFileValidity.java index 1ae3d582..dde04e52 100644 --- a/src/test/java/com/elastic/support/rest/TestRestConfigFileValidity.java +++ b/src/test/java/com/elastic/support/rest/TestRestConfigFileValidity.java @@ -1,5 +1,6 @@ package com.elastic.support.rest; +import com.elastic.support.diagnostics.DiagnosticException; import com.elastic.support.util.JsonYamlUtils; import com.vdurmont.semver4j.Semver; import org.apache.logging.log4j.LogManager; @@ -17,7 +18,7 @@ public class TestRestConfigFileValidity { protected static Semver sem= new Semver("9.9.999", Semver.SemverType.NPM); @Test - public void validateElasticConfigVersioning(){ + public void validateElasticConfigVersioning() throws DiagnosticException { // validates whether each set of version entries has exactly one valid outcome. Map restEntriesConfig = JsonYamlUtils.readYamlFromClasspath("elastic-rest.yml", true); validateEntries(restEntriesConfig); From 173277c9583b46366084b3566cdb92d124e120a8 Mon Sep 17 00:00:00 2001 From: Bruno Farache Date: Tue, 27 Apr 2021 16:05:59 -0300 Subject: [PATCH 2/3] Delete unused methods and useless comments --- .../elastic/support/util/JsonYamlUtils.java | 68 ------------------- 1 file changed, 68 deletions(-) diff --git a/src/main/java/com/elastic/support/util/JsonYamlUtils.java b/src/main/java/com/elastic/support/util/JsonYamlUtils.java index cd796baa..46ff0b25 100644 --- a/src/main/java/com/elastic/support/util/JsonYamlUtils.java +++ b/src/main/java/com/elastic/support/util/JsonYamlUtils.java @@ -3,9 +3,7 @@ import com.elastic.support.diagnostics.DiagnosticException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,8 +11,6 @@ import org.yaml.snakeyaml.Yaml; import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.util.*; @@ -24,12 +20,6 @@ public class JsonYamlUtils { private static final Logger logger = LoggerFactory.getLogger(JsonYamlUtils.class); public static ObjectMapper mapper = new ObjectMapper(); - public static ObjectMapper formatMapper = new ObjectMapper().enable(SerializationFeature.INDENT_OUTPUT); - - public static JsonNode createJsonNodeFromFileName(String fileName) { - File jsonFile = FileUtils.getFile(fileName); - return createJsonNodeFromFile(jsonFile); - } public static JsonNode createJsonNodeFromFileName(String dir, String fileName) { File jsonFile = FileUtils.getFile(dir, fileName); @@ -56,31 +46,6 @@ public static JsonNode createJsonNodeFromString(String nodeString) { } } - public static JsonNode createJsonNodeFromClasspath(String path) { - try (InputStream is = JsonYamlUtils.class.getClassLoader().getResourceAsStream(path)) { - String nodeString = new String(IOUtils.toByteArray(is)); - ObjectMapper mapper = new ObjectMapper(); - return mapper.readTree(nodeString); - } catch (IOException e) { - logger.info("Error creating JSON node {}", path); - throw new RuntimeException(e); - } - } - - public static void writeYaml(String path, Map tree) { - try { - DumperOptions options = new DumperOptions(); - options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); - Yaml yaml = new Yaml(options); - try (FileWriter writer = new FileWriter(path)) { - yaml.dump(tree, writer); - } - } catch (IOException e) { - logger.info("Error writing YAML to: {}", path); - throw new RuntimeException(e); - } - } - public static Map readYamlFromClasspath(String path, boolean isBlock) throws DiagnosticException { try ( InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(path); @@ -93,18 +58,6 @@ public static Map readYamlFromClasspath(String path, boolean isB } } - public static Map readYamlFromPath(String path, boolean isBlock) throws DiagnosticException { - try ( - InputStream inputStream = new FileInputStream(FileUtils.getFile(path)) - ) { - return JsonYamlUtils.readYaml(inputStream, isBlock); - } - catch (Exception e) { - logger.info("Error reading YAML from {}", path); - throw new DiagnosticException("Error reading YAML file",e); - } - } - public static Map readYaml(InputStream in, boolean isBlock) { DumperOptions options = new DumperOptions(); @@ -124,16 +77,10 @@ public static Map flattenYaml(Map map) { return result; } - public static Map flattenMap(Map map){ - return flattenYaml(map); - } - public static Map flattenNode(JsonNode node) { try { ObjectMapper mapper = new ObjectMapper(); Map jsonMap = mapper.convertValue(node, Map.class); - //String json = mapper.writeValueAsString(node) - //Map jsonMap = mapper.readValue(json, new TypeReference() {}); Map flat = flattenYaml(jsonMap); return flat; } catch (Exception e) { @@ -158,14 +105,10 @@ public static void buildFlattenedMap(Map result, Map map = (Map) value; buildFlattenedMap(result, map, key); - //} else if (value instanceof List) { - // result.put(key, value); } else if (value instanceof Collection) { - // Need a compound key @SuppressWarnings("unchecked") Collection collection = (Collection) value; int count = 0; @@ -186,15 +129,4 @@ private static Map nullSafeYamlMap(Map doc){ return doc; } - - private static Map listToMap(List input){ - int sz = input.size(); - Map output = new LinkedHashMap<>(); - for(int i=0; i < sz; i++){ - output.put("idx_" + i, input.get(i)); - } - - return output; - - } } From 279345dff9ef69ad6cbd481fae771f7f8a210743 Mon Sep 17 00:00:00 2001 From: Bruno Farache Date: Tue, 27 Apr 2021 17:24:04 -0300 Subject: [PATCH 3/3] Remove unused code --- .../elastic/support/util/JsonYamlUtils.java | 69 ++----------------- 1 file changed, 5 insertions(+), 64 deletions(-) diff --git a/src/main/java/com/elastic/support/util/JsonYamlUtils.java b/src/main/java/com/elastic/support/util/JsonYamlUtils.java index 46ff0b25..ec0dea7e 100644 --- a/src/main/java/com/elastic/support/util/JsonYamlUtils.java +++ b/src/main/java/com/elastic/support/util/JsonYamlUtils.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.DumperOptions; @@ -23,12 +22,10 @@ public class JsonYamlUtils { public static JsonNode createJsonNodeFromFileName(String dir, String fileName) { File jsonFile = FileUtils.getFile(dir, fileName); - return createJsonNodeFromFile(jsonFile); - } - public static JsonNode createJsonNodeFromFile(File jsonFile) { try { String fileString = FileUtils.readFileToString(jsonFile, "UTF8"); + return JsonYamlUtils.createJsonNodeFromString(fileString); } catch (IOException e) { logger.info("Error reading in JSON string from file: {}", jsonFile); @@ -38,8 +35,7 @@ public static JsonNode createJsonNodeFromFile(File jsonFile) { public static JsonNode createJsonNodeFromString(String nodeString) { try { - ObjectMapper mapper = new ObjectMapper(); - return mapper.readTree(nodeString); + return new ObjectMapper().readTree(nodeString); } catch (IOException e) { logger.info("Error creating JSON node from input string: {}", nodeString); throw new RuntimeException(e); @@ -52,13 +48,13 @@ public static Map readYamlFromClasspath(String path, boolean isB ) { return JsonYamlUtils.readYaml(inputStream, isBlock); } - catch (Exception e) { + catch (IOException e) { logger.info("Error reading YAML from {}", path); throw new DiagnosticException("Error reading YAML file",e); } } - public static Map readYaml(InputStream in, boolean isBlock) { + private static Map readYaml(InputStream in, boolean isBlock) { DumperOptions options = new DumperOptions(); if (isBlock) { @@ -68,63 +64,8 @@ public static Map readYaml(InputStream in, boolean isBlock) { Yaml yaml = new Yaml(options); Map doc = yaml.load(in); - return nullSafeYamlMap(doc); -} - - public static Map flattenYaml(Map map) { - Map result = new LinkedHashMap<>(); - buildFlattenedMap(result, map, null); - return result; - } - - public static Map flattenNode(JsonNode node) { - try { - ObjectMapper mapper = new ObjectMapper(); - Map jsonMap = mapper.convertValue(node, Map.class); - Map flat = flattenYaml(jsonMap); - return flat; - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - public static void buildFlattenedMap(Map result, Map source, String path) { - for (Map.Entry entry : source.entrySet()) { - String key = entry.getKey(); - - if (StringUtils.isNoneEmpty(path)) { - if (key.startsWith("[")) { - key = path + key; - } else { - key = path + "." + key; - } - } - - Object value = entry.getValue(); - - if (value instanceof String) { - result.put(key, value); - } else if (value instanceof Map) { - @SuppressWarnings("unchecked") - Map map = (Map) value; - buildFlattenedMap(result, map, key); - } else if (value instanceof Collection) { - @SuppressWarnings("unchecked") - Collection collection = (Collection) value; - int count = 0; - for (Object object : collection) { - buildFlattenedMap(result, - Collections.singletonMap("[" + (count++) + "]", object), key); - } - } else { - result.put(key, value == null ? "" : value); - } - } - } - - private static Map nullSafeYamlMap(Map doc){ if (doc == null){ - doc = new HashMap<>(); + return new HashMap<>(); } return doc;