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 465268f9..a0dfa09f 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 @@ -8,8 +8,13 @@ import org.openapitools.openapidiff.core.model.ChangedOpenApi; public class JsonRender implements Render { - private final ObjectMapper objectMapper = - new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); + private final ObjectMapper objectMapper; + + public JsonRender() { + objectMapper = new ObjectMapper(); + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + objectMapper.findAndRegisterModules(); + } @Override public String render(ChangedOpenApi diff) { diff --git a/core/src/test/java/org/openapitools/openapidiff/core/JsonRenderTest.java b/core/src/test/java/org/openapitools/openapidiff/core/JsonRenderTest.java index 547ced02..aba54ea4 100644 --- a/core/src/test/java/org/openapitools/openapidiff/core/JsonRenderTest.java +++ b/core/src/test/java/org/openapitools/openapidiff/core/JsonRenderTest.java @@ -14,4 +14,12 @@ public void renderDoesNotFailWhenPropertyHasBeenRemoved() { OpenApiCompare.fromLocations("missing_property_1.yaml", "missing_property_2.yaml"); assertThat(render.render(diff)).isNotBlank(); } + + @Test + public void renderDoesNotFailForJsr310Types() { + JsonRender render = new JsonRender(); + ChangedOpenApi diff = + OpenApiCompare.fromLocations("jsr310_property_1.yaml", "jsr310_property_2.yaml"); + assertThat(render.render(diff)).isNotBlank(); + } } diff --git a/core/src/test/resources/jsr310_property_1.yaml b/core/src/test/resources/jsr310_property_1.yaml new file mode 100644 index 00000000..7257579c --- /dev/null +++ b/core/src/test/resources/jsr310_property_1.yaml @@ -0,0 +1,23 @@ +openapi: 3.0.1 +info: + title: Title + version: 1.0.0 + description: Description +paths: + /: + get: + summary: Simple GET + operationId: simpleGet + responses: + default: + description: Default response + content: + application/json: + schema: + properties: + someDateTime: + description: Date time + example: 2021-11-03T13:50:47Z + type: string + format: date-time + description: Simple GET \ No newline at end of file diff --git a/core/src/test/resources/jsr310_property_2.yaml b/core/src/test/resources/jsr310_property_2.yaml new file mode 100644 index 00000000..a51d7abc --- /dev/null +++ b/core/src/test/resources/jsr310_property_2.yaml @@ -0,0 +1,22 @@ +openapi: 3.0.1 +info: + title: Title + version: 1.0.0 + description: Description +paths: + /: + get: + summary: Simple GET + operationId: simpleGet + responses: + default: + description: Default response + content: + application/json: + schema: + properties: + someDateTime: + description: Date time + example: 2021-11-03T13:50:47Z + type: string + description: Simple GET \ No newline at end of file