Skip to content

Commit bace240

Browse files
author
Nithin Tatikonda
committed
enable generating html file with mojo
1 parent 07c6a89 commit bace240

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

maven/src/main/java/org/openapitools/openapidiff/maven/OpenApiDiffMojo.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
import org.openapitools.openapidiff.core.OpenApiCompare;
1010
import org.openapitools.openapidiff.core.model.ChangedOpenApi;
1111
import org.openapitools.openapidiff.core.output.ConsoleRender;
12+
import org.openapitools.openapidiff.core.output.HtmlRender;
13+
14+
import java.io.File;
15+
import java.io.FileWriter;
16+
import java.io.IOException;
1217

1318
/** A Maven Mojo that diffs two OpenAPI specifications and reports on differences. */
1419
@Mojo(name = "diff", defaultPhase = LifecyclePhase.TEST)
@@ -25,6 +30,12 @@ public class OpenApiDiffMojo extends AbstractMojo {
2530
@Parameter(property = "failOnChanged", defaultValue = "false")
2631
Boolean failOnChanged = false;
2732

33+
@Parameter(property = "outputType")
34+
String outputType;
35+
36+
@Parameter(property = "outputFile")
37+
String outputFile;
38+
2839
@Parameter(property = "skip", defaultValue = "false")
2940
Boolean skip = false;
3041

@@ -37,7 +48,24 @@ public void execute() throws MojoExecutionException, MojoFailureException {
3748

3849
try {
3950
final ChangedOpenApi diff = OpenApiCompare.fromLocations(oldSpec, newSpec);
40-
getLog().info(new ConsoleRender().render(diff));
51+
52+
if (outputType == null || outputType.equals("")) {
53+
getLog().info(new ConsoleRender().render(diff));
54+
}
55+
56+
if (outputType.equalsIgnoreCase("html") || outputType.equalsIgnoreCase("html-detailed")) {
57+
boolean detailed = outputType.equalsIgnoreCase("html-detailed");
58+
File htmlFile = new File(outputFile);
59+
String htmlRender = new HtmlRender(detailed).render(diff);
60+
try {
61+
FileWriter fileWriter = new FileWriter(htmlFile);
62+
fileWriter.write(htmlRender);
63+
fileWriter.close();
64+
65+
} catch (IOException e) {
66+
throw new RuntimeException(e.getMessage());
67+
}
68+
}
4169

4270
if (failOnIncompatible && diff.isIncompatible()) {
4371
throw new BackwardIncompatibilityException("The API changes broke backward compatibility");

0 commit comments

Comments
 (0)