Skip to content

Commit 2da4e13

Browse files
committed
Merge branch 'master' into swagger-snapshot
# Conflicts: # pom.xml
2 parents 2e773fd + a6e2f2f commit 2da4e13

File tree

4 files changed

+22
-14
lines changed

4 files changed

+22
-14
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Available on [Maven Central](https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%2
2222
<dependency>
2323
<groupId>com.qdesrame</groupId>
2424
<artifactId>openapi-diff</artifactId>
25-
<version>1.1.1</version>
25+
<version>1.2.0</version>
2626
</dependency>
2727
```
2828

@@ -47,6 +47,8 @@ usage: openapi-diff <old> <new>
4747
output in file
4848
--off No information printed
4949
--query <property=value> use query param for authorisation
50+
--state Only output diff state: no_changes,
51+
incompatible, compatible
5052
--trace be extra verbose
5153
--version print the version information and exit
5254
--warn Print warning information

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<groupId>com.qdesrame</groupId>
1111
<artifactId>openapi-diff</artifactId>
12-
<version>1.1.2-SNAPSHOT</version>
12+
<version>1.2.1-SNAPSHOT</version>
1313
<packaging>jar</packaging>
1414

1515
<name>openapi-diff</name>

src/main/java/com/qdesrame/openapi/diff/Main.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public static void main(String... args) {
2323
Options options = new Options();
2424
options.addOption(Option.builder("h").longOpt("help").desc("print this message").build());
2525
options.addOption(Option.builder().longOpt("version").desc("print the version information and exit").build());
26+
options.addOption(Option.builder().longOpt("state").desc("Only output diff state: no_changes, incompatible, compatible").build());
2627
options.addOption(Option.builder().longOpt("trace").desc("be extra verbose").build());
2728
options.addOption(Option.builder().longOpt("debug").desc("Print debugging information").build());
2829
options.addOption(Option.builder().longOpt("info").desc("Print additional information").build());
@@ -81,6 +82,9 @@ public static void main(String... args) {
8182
logLevel));
8283
}
8384
}
85+
if (line.hasOption("state")) {
86+
logLevel = "OFF";
87+
}
8488
LogManager.getRootLogger().setLevel(Level.toLevel(logLevel));
8589

8690
if (line.getArgList().size() < 2) {
@@ -126,7 +130,12 @@ public static void main(String... args) {
126130
System.exit(2);
127131
}
128132
}
129-
System.exit(result.isDiff() ? 1 : 0);
133+
if (line.hasOption("state")) {
134+
System.out.println(result.isDiff() ? result.isDiffBackwardCompatible() ? "compatible" : "incompatible" : "no_changes");
135+
System.exit(0);
136+
} else {
137+
System.exit(result.isDiff() ? 1 : 0);
138+
}
130139
} catch (ParseException e) {
131140
// oops, something went wrong
132141
System.err.println("Parsing failed. Reason: " + e.getMessage());

src/main/java/com/qdesrame/openapi/diff/output/MarkdownRender.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -236,16 +236,9 @@ private String schema(int deepness, ComposedSchema schema) {
236236
if (schema.getAllOf() != null && schema.getAllOf() != null) {
237237
LOGGER.debug("All of schema");
238238
schema.getAllOf().stream()
239-
.map(schema1 -> refPointer.resolveRef(diff.getNewSpecOpenApi().getComponents(), schema1, schema1.get$ref()))
239+
.map(this::resolve)
240240
.forEach(composedChild -> sb.append(schema(deepness, composedChild)));
241241
}
242-
// if (schema.getOneOf() != null && schema.getOneOf() != null) {
243-
// LOGGER.debug("One of schema");
244-
// sb.append(format("%sOne of:\n\n", indent(deepness)));
245-
// schema.getOneOf().stream()
246-
// .map(schema1 -> refPointer.resolveRef(diff.getNewSpecOpenApi().getComponents(), schema1, schema1.get$ref()))
247-
// .forEach(composedChild -> sb.append(schema(deepness + 1, composedChild)));
248-
// }
249242
return sb.toString();
250243
}
251244

@@ -256,7 +249,7 @@ private String schema(int deepness, Schema schema) {
256249
if (schema instanceof ComposedSchema) {
257250
sb.append(schema(deepness, (ComposedSchema) schema));
258251
} else if (schema instanceof ArraySchema) {
259-
sb.append(items(deepness, ((ArraySchema) schema).getItems()));
252+
sb.append(items(deepness, resolve(((ArraySchema) schema).getItems())));
260253
}
261254
return sb.toString();
262255
}
@@ -273,9 +266,9 @@ private String properties(final int deepness, String title, Map<String, Schema>
273266
StringBuilder sb = new StringBuilder("");
274267
if (properties != null) {
275268
properties.forEach((key, value) -> {
276-
sb.append(property(deepness, title, key, value));
269+
sb.append(property(deepness, title, key, resolve(value)));
277270
if (showContent) {
278-
sb.append(schema(deepness + 1, value));
271+
sb.append(schema(deepness + 1, resolve(value)));
279272
}
280273
});
281274
}
@@ -386,4 +379,8 @@ private String indent(int deepness) {
386379
}
387380
return sb.toString();
388381
}
382+
383+
private Schema resolve(Schema schema) {
384+
return refPointer.resolveRef(diff.getNewSpecOpenApi().getComponents(), schema, schema.get$ref());
385+
}
389386
}

0 commit comments

Comments
 (0)