From d33d2f12cc87e5cd1e5b89cef52ba2bbfe229a3c Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Mon, 15 Jul 2024 13:58:26 +0200 Subject: [PATCH 1/3] Put documentation to the right function This is documentation for `toString()`, not for `toXmlString()`. Signed-off-by: Sebastian Schuberth --- .../org/cyclonedx/generators/xml/BomXmlGenerator.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/cyclonedx/generators/xml/BomXmlGenerator.java b/src/main/java/org/cyclonedx/generators/xml/BomXmlGenerator.java index 8f4653ae6..fe721d092 100644 --- a/src/main/java/org/cyclonedx/generators/xml/BomXmlGenerator.java +++ b/src/main/java/org/cyclonedx/generators/xml/BomXmlGenerator.java @@ -127,6 +127,10 @@ public Document generate() throws ParserConfigurationException { } + public String toXmlString() throws GeneratorException { + return toXML(bom, true); + } + /** * Creates a text representation of a CycloneDX BoM Document. This method calls {@link #toXmlString()} and will return * an empty string if {@link #toXmlString()} throws an exception. It's preferred to call {@link #toXmlString()} @@ -135,10 +139,6 @@ public Document generate() throws ParserConfigurationException { * @return a String of the BoM * @since 1.1.0 */ - public String toXmlString() throws GeneratorException { - return toXML(bom, true); - } - @Override public String toString() { try { From 9d7b7fcc567aa042e708a89fdf009e083b841d4a Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Mon, 15 Jul 2024 13:59:30 +0200 Subject: [PATCH 2/3] Make `toJsonString()` throw like `toXmlString()` Align JSON and XML functions to both throw to allow users to catch issues during string creations, as `toString()` swallows any exceptions silently. Signed-off-by: Sebastian Schuberth --- .../org/cyclonedx/generators/json/BomJsonGenerator.java | 6 +----- src/test/java/org/cyclonedx/Issue214RegressionTest.java | 3 +-- src/test/java/org/cyclonedx/parse/BaseParseTest.java | 3 ++- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java b/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java index b8c7f4f6e..53f60f59b 100644 --- a/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java +++ b/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java @@ -114,12 +114,8 @@ public JsonNode toJsonNode() { } } - public String toJsonString() { - try { + public String toJsonString() throws GeneratorException { return toJson(bom, true); - } catch (GeneratorException e) { - return ""; - } } @Override diff --git a/src/test/java/org/cyclonedx/Issue214RegressionTest.java b/src/test/java/org/cyclonedx/Issue214RegressionTest.java index 235d540ad..b63daeb1e 100644 --- a/src/test/java/org/cyclonedx/Issue214RegressionTest.java +++ b/src/test/java/org/cyclonedx/Issue214RegressionTest.java @@ -61,8 +61,7 @@ private void performXmlTest(final Version pSpecVersion) } private void performJsonTest(final Version pSpecVersion) - throws IOException, ReflectiveOperationException - { + throws IOException, ReflectiveOperationException, GeneratorException { final Bom inputBom = createIssue214Bom(); BomJsonGenerator generator = BomGeneratorFactory.createJson(pSpecVersion, inputBom); diff --git a/src/test/java/org/cyclonedx/parse/BaseParseTest.java b/src/test/java/org/cyclonedx/parse/BaseParseTest.java index 97034bdae..216533b67 100644 --- a/src/test/java/org/cyclonedx/parse/BaseParseTest.java +++ b/src/test/java/org/cyclonedx/parse/BaseParseTest.java @@ -18,6 +18,7 @@ */ package org.cyclonedx.parse; +import org.cyclonedx.exception.GeneratorException; import org.cyclonedx.Format; import org.cyclonedx.generators.BomGeneratorFactory; import org.cyclonedx.parsers.BomParserFactory; @@ -75,7 +76,7 @@ void generateBomXml(final String testName, final Bom bom) throws ParserConfigura } } - void generateBomJson(final String testName, final Bom bom) { + void generateBomJson(final String testName, final Bom bom) throws GeneratorException { List jsonVersions = Arrays.stream(Version.values()) .filter(v -> v.getFormats().contains(Format.JSON)) .collect(Collectors.toList()); From 36f81906b910ac27386573a399fbbf3a83d581da Mon Sep 17 00:00:00 2001 From: Sebastian Schuberth Date: Mon, 15 Jul 2024 14:01:28 +0200 Subject: [PATCH 3/3] Document `BomJsonGenerator.toString()` This aligns with `BomXmlGenerator`. Signed-off-by: Sebastian Schuberth --- .../org/cyclonedx/generators/json/BomJsonGenerator.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java b/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java index 53f60f59b..a462d6bb1 100644 --- a/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java +++ b/src/main/java/org/cyclonedx/generators/json/BomJsonGenerator.java @@ -118,6 +118,13 @@ public String toJsonString() throws GeneratorException { return toJson(bom, true); } + /** + * Creates a text representation of a CycloneDX BoM Document. This method calls {@link #toJsonString()} and will return + * an empty string if {@link #toJsonString()} throws an exception. It's preferred to call {@link #toJsonString()} + * directly so that exceptions can be caught. + * + * @return a String of the BoM + */ @Override public String toString() { try {