diff --git a/plugin/src/main/java/org/owasp/benchmarkutils/score/Configuration.java b/plugin/src/main/java/org/owasp/benchmarkutils/score/Configuration.java index 3a45a04..f60a4f7 100644 --- a/plugin/src/main/java/org/owasp/benchmarkutils/score/Configuration.java +++ b/plugin/src/main/java/org/owasp/benchmarkutils/score/Configuration.java @@ -22,6 +22,7 @@ import java.io.InputStream; import java.io.SequenceInputStream; import java.util.Map; +import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; /** @@ -76,7 +77,30 @@ public class Configuration { public final Report report; - private static final Yaml yaml = new Yaml(); + private static Yaml yaml = new Yaml(defaultLoaderOptions()); + + /** + * Custom loader options to disable warning for duplicate key (which is not helpful, because + * it's intended behaviour to merge keys from multiple files) + */ + private static LoaderOptions defaultLoaderOptions() { + LoaderOptions loaderOptions = new LoaderOptions(); + + loaderOptions.setAllowDuplicateKeys(true); + + return loaderOptions; + } + + /** + * Used to disable warnings on duplicate keys. Occurs when providing an additional configuration file. + */ + static void disableWarnOnDuplicateKeys() { + LoaderOptions loaderOptions = defaultLoaderOptions(); + + loaderOptions.setWarnOnDuplicateKeys(false); + + yaml = new Yaml(loaderOptions); + } public static Configuration fromDefaultConfig() { return fromInputStream(resourceAsStream(DEFAULT_CONFIG), DEFAULT_SUCCESS_MESSAGE); diff --git a/plugin/src/test/java/org/owasp/benchmarkutils/score/BenchmarkScoreTest.java b/plugin/src/test/java/org/owasp/benchmarkutils/score/BenchmarkScoreTest.java index 87110fe..c7292db 100644 --- a/plugin/src/test/java/org/owasp/benchmarkutils/score/BenchmarkScoreTest.java +++ b/plugin/src/test/java/org/owasp/benchmarkutils/score/BenchmarkScoreTest.java @@ -28,13 +28,14 @@ public class BenchmarkScoreTest { - private static final String SEP = System.getProperty("line.separator"); + private static final String SEP = System.lineSeparator(); private final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); private final PrintStream originalOut = System.out; @BeforeEach public void setUpStreams() { System.setOut(new PrintStream(outContent)); + Configuration.disableWarnOnDuplicateKeys(); } @AfterEach diff --git a/plugin/src/test/java/org/owasp/benchmarkutils/score/ConfigurationTest.java b/plugin/src/test/java/org/owasp/benchmarkutils/score/ConfigurationTest.java index 5a4ad62..286b4c3 100644 --- a/plugin/src/test/java/org/owasp/benchmarkutils/score/ConfigurationTest.java +++ b/plugin/src/test/java/org/owasp/benchmarkutils/score/ConfigurationTest.java @@ -57,6 +57,8 @@ public void setUp() { out = new ByteArrayOutputStream(); System.setOut(new PrintStream(out)); + + Configuration.disableWarnOnDuplicateKeys(); } @Test