From 651b211e58cb29f612c49c7028c1a2be529d5aaa Mon Sep 17 00:00:00 2001 From: eacolina Date: Wed, 22 Jun 2022 13:53:54 -0400 Subject: [PATCH 1/2] Write diff directly to file --- .../java/org/openapitools/openapidiff/cli/Main.java | 4 ++-- .../openapidiff/core/model/ChangedOpenApi.java | 5 +++-- .../openapidiff/core/output/JsonRender.java | 12 ++++++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java b/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java index 8fb2ff000..d5185d073 100644 --- a/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java +++ b/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java @@ -196,9 +196,9 @@ public static void main(String... args) { } if (line.hasOption("json")) { JsonRender jsonRender = new JsonRender(); - String output = jsonRender.render(result); String outputFile = line.getOptionValue("json"); - writeOutput(output, outputFile); + jsonRender.renderToFile(result, outputFile); + System.out.println("Succesfully wrote diff to output file"); } if (line.hasOption("state")) { System.out.println(result.isChanged().getValue()); diff --git a/core/src/main/java/org/openapitools/openapidiff/core/model/ChangedOpenApi.java b/core/src/main/java/org/openapitools/openapidiff/core/model/ChangedOpenApi.java index a1c796ac5..e1bdd20bd 100644 --- a/core/src/main/java/org/openapitools/openapidiff/core/model/ChangedOpenApi.java +++ b/core/src/main/java/org/openapitools/openapidiff/core/model/ChangedOpenApi.java @@ -1,5 +1,6 @@ package org.openapitools.openapidiff.core.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.models.OpenAPI; import java.util.List; import java.util.Objects; @@ -8,8 +9,8 @@ import org.openapitools.openapidiff.core.utils.EndpointUtils; public class ChangedOpenApi implements ComposedChanged { - private OpenAPI oldSpecOpenApi; - private OpenAPI newSpecOpenApi; + @JsonIgnore private OpenAPI oldSpecOpenApi; + @JsonIgnore private OpenAPI newSpecOpenApi; private List newEndpoints; private List missingEndpoints; private List changedOperations; diff --git a/core/src/main/java/org/openapitools/openapidiff/core/output/JsonRender.java b/core/src/main/java/org/openapitools/openapidiff/core/output/JsonRender.java index e1cf5ee49..465268f94 100644 --- a/core/src/main/java/org/openapitools/openapidiff/core/output/JsonRender.java +++ b/core/src/main/java/org/openapitools/openapidiff/core/output/JsonRender.java @@ -3,6 +3,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import java.nio.file.Paths; import org.openapitools.openapidiff.core.model.ChangedOpenApi; public class JsonRender implements Render { @@ -17,4 +19,14 @@ public String render(ChangedOpenApi diff) { throw new RuntimeException("Could not serialize diff as JSON", e); } } + + public void renderToFile(ChangedOpenApi diff, String file) { + try { + objectMapper.writeValue(Paths.get(file).toFile(), diff); + } catch (JsonProcessingException e) { + throw new RuntimeException("Could not serialize diff as JSON", e); + } catch (IOException e) { + throw new RuntimeException("Could not write to JSON file", e); + } + } } From 6f0da56a12cbaa0e9e433573da24b0ac2ea0553e Mon Sep 17 00:00:00 2001 From: Eduardo Colina Date: Wed, 22 Jun 2022 14:27:25 -0400 Subject: [PATCH 2/2] Update cli/src/main/java/org/openapitools/openapidiff/cli/Main.java Co-authored-by: Jochen Schalanda --- cli/src/main/java/org/openapitools/openapidiff/cli/Main.java | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java b/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java index d5185d073..21503e08a 100644 --- a/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java +++ b/cli/src/main/java/org/openapitools/openapidiff/cli/Main.java @@ -198,7 +198,6 @@ public static void main(String... args) { JsonRender jsonRender = new JsonRender(); String outputFile = line.getOptionValue("json"); jsonRender.renderToFile(result, outputFile); - System.out.println("Succesfully wrote diff to output file"); } if (line.hasOption("state")) { System.out.println(result.isChanged().getValue());