Skip to content

Commit e893628

Browse files
committed
Extensions in subobjects of OpenAPI no longer work. Fixes #2449.
1 parent 9b6de3a commit e893628

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/GenericResponseService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ private Map<String, ApiResponse> getGenericMapResponse(Class<?> beanType) {
712712

713713
LinkedHashMap<String, ApiResponse> genericApiResponsesClone;
714714
try {
715-
ObjectMapper objectMapper = ObjectMapperProvider.createJson(springDocConfigProperties);
715+
ObjectMapper objectMapper = new ObjectMapper();
716716
genericApiResponsesClone = objectMapper.readValue(objectMapper.writeValueAsString(genericApiResponseMap), ApiResponses.class);
717717
return genericApiResponsesClone;
718718
}

springdoc-openapi-starter-common/src/main/java/org/springdoc/core/service/OpenAPIService.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -244,14 +244,12 @@ public OpenAPI build(Locale locale) {
244244
}
245245
else {
246246
try {
247-
ObjectMapper objectMapper = ObjectMapperProvider.createJson(springDocConfigProperties);
247+
ObjectMapper objectMapper = new ObjectMapper();
248248
calculatedOpenAPI = objectMapper.readValue(objectMapper.writeValueAsString(openAPI), OpenAPI.class);
249-
objectMapper.setSerializationInclusion(Include.ALWAYS);
250-
Map extensionsClone = objectMapper.readValue(objectMapper.writeValueAsString(openAPI.getExtensions()), Map.class);
251-
calculatedOpenAPI.extensions(extensionsClone);
252249
}
253250
catch (JsonProcessingException e) {
254251
LOGGER.warn("Json Processing Exception occurred: {}", e.getMessage());
252+
calculatedOpenAPI = openAPI;
255253
}
256254
}
257255

springdoc-openapi-starter-webmvc-api/src/test/java/test/org/springdoc/api/v30/app173/SpringDocApp173Test.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.Map;
2929

3030
import io.swagger.v3.oas.models.OpenAPI;
31+
import io.swagger.v3.oas.models.info.Info;
3132
import org.junit.jupiter.api.Test;
3233
import org.springdoc.core.utils.Constants;
3334
import test.org.springdoc.api.v30.AbstractSpringDocV30Test;
@@ -68,7 +69,9 @@ private void testApp(Locale locale) throws Exception {
6869
static class SpringDocTestApp {
6970
@Bean
7071
public OpenAPI openAPI() {
71-
return new OpenAPI().extensions(Map.of("TEST", "HELLO"));
72+
return new OpenAPI()
73+
.info(new Info().extensions(Map.of("TEST", "HELLO")))
74+
.extensions(Map.of("TEST", "HELLO"));
7275
}
7376
}
7477

springdoc-openapi-starter-webmvc-api/src/test/resources/results/3.0.1/app173.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
{
22
"openapi": "3.0.1",
33
"info": {
4-
"title": "OpenAPI definition",
5-
"version": "v0"
4+
"TEST": "HELLO"
65
},
76
"servers": [
87
{

0 commit comments

Comments
 (0)