From 6699de158ab11436eccb330ba100b3eac0a34f18 Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:25:02 +0200 Subject: [PATCH 1/6] Fix docs typo --- src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java index 46f5692..3fe6373 100644 --- a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java +++ b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java @@ -123,7 +123,7 @@ public void execute() { /** - * Read fully as string string. + * Read fully as string. * * @param inputStream the input stream * @return the string From a45ccca39f337dbe945f171ed7ab03cafab42a0d Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:35:04 +0200 Subject: [PATCH 2/6] Add org.json JSON dependency --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 12da2c4..466714a 100644 --- a/pom.xml +++ b/pom.xml @@ -73,6 +73,12 @@ 3.6.4 provided + + org.json + json + 20220320 + + From cd02d4110c9777e473320c72ef87b323501e4032 Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:35:31 +0200 Subject: [PATCH 3/6] Add format parameter --- src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java index 3fe6373..a083a2d 100644 --- a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java +++ b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java @@ -80,6 +80,12 @@ public class SpringDocMojo extends AbstractMojo { @Parameter(defaultValue = "false", property = "springdoc.skip") private boolean skip; + /** + * Formats the openapi.json file if set to true. Default is false. + */ + @Parameter(defaultValue = "false", property = "springdoc.format") + private boolean format; + /** * Headers to send in request */ From ab300dee2b53dec28fa2ca1b73157861cd8bc11f Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:37:39 +0200 Subject: [PATCH 4/6] Add json formatting --- .../java/org/springdoc/maven/plugin/SpringDocMojo.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java index a083a2d..299719a 100644 --- a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java +++ b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java @@ -19,6 +19,8 @@ import org.apache.maven.plugins.annotations.ResolutionScope; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; +import org.json.JSONObject; +import org.json.JSONTokener; /** * Generate a openapi specification file. @@ -116,6 +118,12 @@ public void execute() { int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { String result = this.readFullyAsString(connection.getInputStream()); + + if (format) { + JSONObject object = new JSONObject(new JSONTokener(result)); + result = object.toString(2); + } + outputDir.mkdirs(); Files.write(Paths.get(outputDir.getAbsolutePath() + "/" + outputFileName), result.getBytes(StandardCharsets.UTF_8)); if (attachArtifact) addArtifactToMaven(); From 7cd78a5d56aa497eac3cceafda86c5931bf0aa7e Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:39:46 +0200 Subject: [PATCH 5/6] Add formatting to README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index c5694fc..f0fc380 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,9 @@ It possible to customise the following plugin properties: * The default value is: openapi.json * skip: Skip execution if set to true. * The default value is: false +* format: Formats the json with indentation. + * The default value is: false + * Should be used with JSON only. * headers: List of headers to send in request * The default value is empty @@ -89,6 +92,7 @@ It possible to customise the following plugin properties: openapi.json /home/springdoc/maven-output false + true header1value header2value From 96e0c937e7f472faef7f9ab919521b395b1fdc81 Mon Sep 17 00:00:00 2001 From: Pavle Prica Date: Thu, 1 Sep 2022 16:41:11 +0200 Subject: [PATCH 6/6] Add check if outputfile is json --- src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java index 299719a..405d137 100644 --- a/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java +++ b/src/main/java/org/springdoc/maven/plugin/SpringDocMojo.java @@ -119,7 +119,7 @@ public void execute() { if (responseCode == HttpURLConnection.HTTP_OK) { String result = this.readFullyAsString(connection.getInputStream()); - if (format) { + if (format && outputFileName.endsWith(DEFAULT_OUTPUT_EXTENSION)) { JSONObject object = new JSONObject(new JSONTokener(result)); result = object.toString(2); }