From 36e20538b3e17692f9f0a96d86277f860ce15836 Mon Sep 17 00:00:00 2001 From: Claudio Nave Date: Sat, 15 Jun 2024 20:42:51 +0200 Subject: [PATCH] Ensure compatibility with previous version of spring data --- .../SpringDocPageableConfiguration.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java index d301d7d53..b12aeb55b 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocPageableConfiguration.java @@ -43,6 +43,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.data.domain.Pageable; +import org.springframework.data.web.PagedModel; import org.springframework.data.web.config.EnableSpringDataWebSupport; import org.springframework.data.web.config.SpringDataWebSettings; @@ -85,15 +86,16 @@ PageableOpenAPIConverter pageableOpenAPIConverter(ObjectMapperProvider objectMap */ @Bean @ConditionalOnMissingBean - @ConditionalOnBean(SpringDataWebSettings.class) + @ConditionalOnClass({ PagedModel.class, SpringDataWebSettings.class }) @Lazy(false) - PageOpenAPIConverter pageOpenAPIConverter(SpringDataWebSettings settings, + PageOpenAPIConverter pageOpenAPIConverter(Optional settings, ObjectMapperProvider objectMapperProvider) { - return new PageOpenAPIConverter( - settings.pageSerializationMode() == EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO, - objectMapperProvider); + boolean replacePageWithPagedModel = settings.map(SpringDataWebSettings::pageSerializationMode) + .map(EnableSpringDataWebSupport.PageSerializationMode.VIA_DTO::equals) + .orElse(false); + return new PageOpenAPIConverter(replacePageWithPagedModel, objectMapperProvider); } - + /** * Delegating method parameter customizer delegating method parameter customizer. *