Skip to content

Commit 2ad479f

Browse files
author
bnasslahsen
committed
springdoc-openapi-kotlin and springdoc-openapi-common do not agree on conditions for auto configuration. fixes #1734.
1 parent c948b31 commit 2ad479f

File tree

12 files changed

+34
-1
lines changed

12 files changed

+34
-1
lines changed

springdoc-openapi-data-rest/src/main/java/org/springdoc/data/rest/SpringDocDataRestConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.springdoc.core.OperationService;
3434
import org.springdoc.core.RequestBodyService;
3535
import org.springdoc.core.SpringDocConfigProperties;
36+
import org.springdoc.core.SpringDocConfiguration;
3637
import org.springdoc.core.converters.models.DefaultPageable;
3738
import org.springdoc.core.providers.ObjectMapperProvider;
3839
import org.springdoc.data.rest.core.DataRestOperationService;
@@ -43,6 +44,7 @@
4344
import org.springdoc.data.rest.customisers.QuerydslPredicateOperationCustomizer;
4445
import org.springdoc.data.rest.utils.SpringDocDataRestUtils;
4546

47+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4648
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4749
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4850
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -77,6 +79,7 @@
7779
@Lazy(false)
7880
@Configuration(proxyBeanMethods = false)
7981
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
82+
@ConditionalOnBean(SpringDocConfiguration.class)
8083
public class SpringDocDataRestConfiguration {
8184

8285
/**

springdoc-openapi-groovy/src/main/java/org/springdoc/groovy/SpringDocGroovyConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323
package org.springdoc.groovy;
2424

2525
import groovy.lang.MetaClass;
26+
import org.springdoc.core.SpringDocConfiguration;
2627
import org.springdoc.core.SpringDocUtils;
2728
import org.springdoc.core.converters.RequestTypeToIgnoreConverter;
2829
import org.springdoc.core.providers.ObjectMapperProvider;
2930

31+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3032
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3133
import org.springframework.context.annotation.Bean;
3234
import org.springframework.context.annotation.Configuration;
@@ -41,6 +43,7 @@
4143
@Lazy(false)
4244
@Configuration(proxyBeanMethods = false)
4345
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
46+
@ConditionalOnBean(SpringDocConfiguration.class)
4447
public class SpringDocGroovyConfiguration {
4548

4649
/**

springdoc-openapi-hateoas/src/main/java/org/springdoc/hateoas/SpringDocHateoasConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@
2727
import com.fasterxml.jackson.core.JsonGenerator;
2828
import com.fasterxml.jackson.databind.SerializerProvider;
2929
import org.springdoc.core.SpringDocConfigProperties;
30+
import org.springdoc.core.SpringDocConfiguration;
3031
import org.springdoc.core.customizers.GlobalOpenApiCustomizer;
3132
import org.springdoc.core.providers.ObjectMapperProvider;
3233
import org.springdoc.hateoas.converters.CollectionModelContentConverter;
3334
import org.springdoc.hateoas.converters.OpenApiHateoasLinksCustomiser;
3435
import org.springdoc.hateoas.converters.RepresentationModelLinksOASMixin;
3536

37+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3638
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3739
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3840
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -55,6 +57,7 @@
5557
@Configuration(proxyBeanMethods = false)
5658
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
5759
@ConditionalOnClass(LinkRelationProvider.class)
60+
@ConditionalOnBean(SpringDocConfiguration.class)
5861
public class SpringDocHateoasConfiguration {
5962

6063
/**

springdoc-openapi-javadoc/src/main/java/org/springdoc/openapi/javadoc/SpringDocJavadocConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@
2222

2323
package org.springdoc.openapi.javadoc;
2424

25+
import org.springdoc.core.SpringDocConfiguration;
2526
import org.springdoc.core.providers.JavadocProvider;
2627
import org.springdoc.core.providers.ObjectMapperProvider;
2728

29+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2830
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2931
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3032
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
@@ -41,6 +43,7 @@
4143
@Lazy(false)
4244
@Configuration(proxyBeanMethods = false)
4345
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
46+
@ConditionalOnBean(SpringDocConfiguration.class)
4447
@ConditionalOnWebApplication
4548
public class SpringDocJavadocConfiguration {
4649

springdoc-openapi-kotlin/src/main/java/org/springdoc/kotlin/SpringDocKotlinConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@
2626
import io.swagger.v3.oas.models.media.ByteArraySchema;
2727
import kotlin.Deprecated;
2828
import kotlin.coroutines.Continuation;
29-
import kotlin.jvm.internal.Intrinsics;
29+
import org.springdoc.core.SpringDocConfiguration;
3030
import org.springdoc.core.providers.ObjectMapperProvider;
3131

32+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3233
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3334
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3435
import org.springframework.context.annotation.Bean;
@@ -45,6 +46,7 @@
4546
@Lazy(false)
4647
@Configuration(proxyBeanMethods = false)
4748
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
49+
@ConditionalOnBean(SpringDocConfiguration.class)
4850
public class SpringDocKotlinConfiguration {
4951

5052
/**

springdoc-openapi-kotlin/src/main/java/org/springdoc/kotlin/SpringDocKotlinxConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
package org.springdoc.kotlin;
2424

2525
import kotlinx.coroutines.flow.Flow;
26+
import org.springdoc.core.SpringDocConfiguration;
2627

28+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2729
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2830
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2931
import org.springframework.context.annotation.Configuration;
@@ -40,6 +42,7 @@
4042
@ConditionalOnClass(Flow.class)
4143
@Configuration(proxyBeanMethods = false)
4244
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
45+
@ConditionalOnBean(SpringDocConfiguration.class)
4346
public class SpringDocKotlinxConfiguration {
4447

4548
/**

springdoc-openapi-native/src/main/java/org/springdoc/nativex/core/SpringDocHints.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@
138138
import org.springdoc.ui.AbstractSwaggerWelcome;
139139

140140
import org.springframework.beans.factory.InitializingBean;
141+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
141142
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
142143
import org.springframework.context.annotation.Configuration;
143144
import org.springframework.context.annotation.Lazy;
@@ -309,6 +310,7 @@
309310
@Configuration(proxyBeanMethods = false)
310311
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
311312
@ResourceHint(patterns = SpringDocHints.SPRINGDOC_CONFIG_PROPERTIES)
313+
@ConditionalOnBean(SpringDocConfiguration.class)
312314
public class SpringDocHints implements InitializingBean {
313315

314316
/**

springdoc-openapi-security/src/main/java/org/springdoc/security/SpringDocSecurityConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import io.swagger.v3.oas.models.responses.ApiResponses;
3838
import org.slf4j.Logger;
3939
import org.slf4j.LoggerFactory;
40+
import org.springdoc.core.SpringDocConfiguration;
4041
import org.springdoc.core.customizers.OpenApiCustomiser;
4142

4243
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -69,6 +70,7 @@
6970
@Lazy(false)
7071
@Configuration(proxyBeanMethods = false)
7172
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
73+
@ConditionalOnBean(SpringDocConfiguration.class)
7274
public class SpringDocSecurityConfiguration {
7375

7476
/**

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/core/MultipleOpenApiSupportConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springdoc.core.OpenAPIService;
3232
import org.springdoc.core.OperationService;
3333
import org.springdoc.core.SpringDocConfigProperties;
34+
import org.springdoc.core.SpringDocConfiguration;
3435
import org.springdoc.core.SpringDocProviders;
3536
import org.springdoc.webflux.api.MultipleOpenApiActuatorResource;
3637
import org.springdoc.webflux.api.MultipleOpenApiWebFluxResource;
@@ -39,6 +40,7 @@
3940
import org.springframework.boot.actuate.autoconfigure.web.server.ConditionalOnManagementPort;
4041
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
4142
import org.springframework.boot.actuate.endpoint.web.reactive.WebFluxEndpointHandlerMapping;
43+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4244
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4345
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4446
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -61,6 +63,7 @@
6163
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
6264
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
6365
@Conditional(MultipleOpenApiSupportCondition.class)
66+
@ConditionalOnBean(SpringDocConfiguration.class)
6467
public class MultipleOpenApiSupportConfiguration {
6568

6669
/**

springdoc-openapi-webflux-core/src/main/java/org/springdoc/webflux/core/SpringDocWebFluxConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.springdoc.core.RequestBodyService;
3535
import org.springdoc.core.ReturnTypeParser;
3636
import org.springdoc.core.SpringDocConfigProperties;
37+
import org.springdoc.core.SpringDocConfiguration;
3738
import org.springdoc.core.SpringDocProviders;
3839
import org.springdoc.core.customizers.OpenApiCustomiser;
3940
import org.springdoc.core.customizers.OperationCustomizer;
@@ -53,6 +54,7 @@
5354
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties;
5455
import org.springframework.boot.actuate.endpoint.web.reactive.ControllerEndpointHandlerMapping;
5556
import org.springframework.boot.actuate.endpoint.web.reactive.WebFluxEndpointHandlerMapping;
57+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
5658
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
5759
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
5860
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -75,6 +77,7 @@
7577
@Configuration(proxyBeanMethods = false)
7678
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
7779
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
80+
@ConditionalOnBean(SpringDocConfiguration.class)
7881
public class SpringDocWebFluxConfiguration {
7982

8083
/**

0 commit comments

Comments
 (0)