From ecb3782a463f0b09ca57f4bc15aabcb4f23c6f7f Mon Sep 17 00:00:00 2001 From: "Badr.NassLahsen" Date: Mon, 6 Jan 2025 11:04:39 +0100 Subject: [PATCH] java.lang.ClassNotFoundException: kotlin.reflect.full.KClasses when upgrade from 2.7.0 to 2.8.0. Fixes #2834 --- springdoc-openapi-starter-common/pom.xml | 5 +++++ .../configuration/SpringDocKotlinConfiguration.kt | 15 ++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/springdoc-openapi-starter-common/pom.xml b/springdoc-openapi-starter-common/pom.xml index 459240359..285b3dc32 100644 --- a/springdoc-openapi-starter-common/pom.xml +++ b/springdoc-openapi-starter-common/pom.xml @@ -72,6 +72,11 @@ kotlinx-coroutines-reactor provided + + org.jetbrains.kotlin + kotlin-reflect + provided + org.springframework.boot diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt index 82cd690a5..d11d0cb91 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocKotlinConfiguration.kt @@ -128,10 +128,15 @@ class SpringDocKotlinConfiguration() { return kotlinFunction.parameters[parameterIndex + 1] } - @Bean - @Lazy(false) - @ConditionalOnMissingBean - fun kotlinDeprecatedPropertyCustomizer(objectMapperProvider: ObjectMapperProvider): KotlinDeprecatedPropertyCustomizer { - return KotlinDeprecatedPropertyCustomizer(objectMapperProvider) + @ConditionalOnClass(name = ["kotlin.reflect.full.KClasses"]) + class KotlinReflectDependingConfiguration { + + @Bean + @Lazy(false) + @ConditionalOnMissingBean + fun kotlinDeprecatedPropertyCustomizer(objectMapperProvider: ObjectMapperProvider): KotlinDeprecatedPropertyCustomizer { + return KotlinDeprecatedPropertyCustomizer(objectMapperProvider) + } } + }