Skip to content

Commit b3f7b19

Browse files
committed
fixes #2862.
1 parent c585c23 commit b3f7b19

File tree

37 files changed

+115
-152
lines changed

37 files changed

+115
-152
lines changed

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/SpringDocUIConfiguration.java

-97
This file was deleted.

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/configuration/hints/SpringDocHints.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@
7878
import io.swagger.v3.oas.models.security.Scopes;
7979
import io.swagger.v3.oas.models.servers.ServerVariables;
8080
import org.apache.commons.lang3.reflect.FieldUtils;
81-
import org.springdoc.core.configuration.SpringDocUIConfiguration;
8281
import org.springdoc.core.properties.SpringDocConfigProperties.ModelConverters;
82+
import org.springdoc.core.properties.SwaggerUiConfigProperties;
8383

8484
import org.springframework.aot.hint.MemberCategory;
8585
import org.springframework.aot.hint.RuntimeHints;
@@ -206,7 +206,7 @@ public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
206206
//springdoc
207207
hints.reflection().registerField(FieldUtils.getDeclaredField(io.swagger.v3.core.converter.ModelConverters.class, "converters", true));
208208
hints.reflection().registerType(org.springdoc.core.utils.Constants.class, hint -> hint.withMembers(MemberCategory.DECLARED_FIELDS));
209-
hints.resources().registerPattern(SpringDocUIConfiguration.SPRINGDOC_CONFIG_PROPERTIES)
209+
hints.resources().registerPattern(SwaggerUiConfigProperties.SPRINGDOC_CONFIG_PROPERTIES)
210210
.registerResourceBundle("sun.util.resources.LocaleNames");
211211
}
212212

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/properties/SwaggerUiConfigProperties.java

+34-3
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,28 @@
2626

2727
package org.springdoc.core.properties;
2828

29+
import java.io.IOException;
30+
import java.util.Properties;
2931
import java.util.Set;
3032
import java.util.stream.Collectors;
3133

3234
import org.apache.commons.lang3.StringUtils;
3335
import org.springdoc.core.configuration.SpringDocConfiguration;
3436
import org.springdoc.core.utils.Constants;
3537

38+
import org.springframework.beans.factory.InitializingBean;
3639
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3740
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3841
import org.springframework.boot.context.properties.ConfigurationProperties;
3942
import org.springframework.context.annotation.Configuration;
4043
import org.springframework.context.annotation.Lazy;
44+
import org.springframework.core.io.ClassPathResource;
45+
import org.springframework.core.io.Resource;
46+
import org.springframework.core.io.support.PropertiesLoaderUtils;
4147

48+
import static org.springdoc.core.utils.Constants.SPRINGDOC_SWAGGER_PREFIX;
4249
import static org.springdoc.core.utils.Constants.SPRINGDOC_SWAGGER_UI_ENABLED;
50+
import static org.springframework.util.AntPathMatcher.DEFAULT_PATH_SEPARATOR;
4351

4452

4553
/**
@@ -49,17 +57,16 @@
4957
*/
5058
@Lazy(false)
5159
@Configuration(proxyBeanMethods = false)
52-
@ConfigurationProperties(prefix = "springdoc.swagger-ui")
60+
@ConfigurationProperties(prefix = SPRINGDOC_SWAGGER_PREFIX)
5361
@ConditionalOnProperty(name = SPRINGDOC_SWAGGER_UI_ENABLED, matchIfMissing = true)
5462
@ConditionalOnBean(SpringDocConfiguration.class)
55-
public class SwaggerUiConfigProperties extends AbstractSwaggerUiConfigProperties {
63+
public class SwaggerUiConfigProperties extends AbstractSwaggerUiConfigProperties implements InitializingBean {
5664

5765
/**
5866
* The Disable swagger default url.
5967
*/
6068
private boolean disableSwaggerDefaultUrl;
6169

62-
6370
/**
6471
* The Swagger ui version.
6572
*/
@@ -85,6 +92,30 @@ public class SwaggerUiConfigProperties extends AbstractSwaggerUiConfigProperties
8592
*/
8693
private boolean useRootPath;
8794

95+
/**
96+
* The constant SPRINGDOC_SWAGGERUI_VERSION.
97+
*/
98+
private static final String SPRINGDOC_SWAGGER_VERSION = SPRINGDOC_SWAGGER_PREFIX+".version";
99+
100+
/**
101+
* The constant SPRINGDOC_CONFIG_PROPERTIES.
102+
*/
103+
public static final String SPRINGDOC_CONFIG_PROPERTIES = "springdoc.config.properties";
104+
105+
106+
@Override
107+
public void afterPropertiesSet() {
108+
if (StringUtils.isEmpty(version)) {
109+
try {
110+
Resource resource = new ClassPathResource(DEFAULT_PATH_SEPARATOR + SPRINGDOC_CONFIG_PROPERTIES);
111+
Properties props = PropertiesLoaderUtils.loadProperties(resource);
112+
setVersion(props.getProperty(SPRINGDOC_SWAGGER_VERSION));
113+
}
114+
catch (IOException e) {
115+
throw new RuntimeException(e);
116+
}
117+
}
118+
}
88119
/**
89120
* Gets swagger ui version.
90121
*

Diff for: springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/Constants.java

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ public final class Constants {
4242
*/
4343
public static final String SPRINGDOC_PREFIX = "springdoc";
4444

45+
/**
46+
* The constant SPRINGDOC_SWAGGER_PREFIX.
47+
*/
48+
public static final String SPRINGDOC_SWAGGER_PREFIX =SPRINGDOC_PREFIX+".swagger-ui";
49+
4550
/**
4651
* The constant DEFAULT_API_DOCS_URL.
4752
*/

Diff for: springdoc-openapi-starter-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerConfig.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
package org.springdoc.webflux.ui;
2828

29+
import java.util.Optional;
30+
2931
import org.springdoc.core.configuration.SpringDocConfiguration;
3032
import org.springdoc.core.properties.SpringDocConfigProperties;
3133
import org.springdoc.core.properties.SwaggerUiConfigProperties;
@@ -34,10 +36,10 @@
3436
import org.springdoc.core.providers.ObjectMapperProvider;
3537
import org.springdoc.core.providers.SpringWebProvider;
3638
import org.springdoc.webflux.core.providers.SpringWebFluxProvider;
39+
3740
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
3841
import org.springframework.boot.actuate.autoconfigure.web.server.ConditionalOnManagementPort;
3942
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
40-
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties;
4143
import org.springframework.boot.actuate.endpoint.web.reactive.WebFluxEndpointHandlerMapping;
4244
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
4345
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -51,8 +53,6 @@
5153
import org.springframework.context.annotation.Lazy;
5254
import org.springframework.web.reactive.config.WebFluxConfigurer;
5355

54-
import java.util.Optional;
55-
5656
import static org.springdoc.core.utils.Constants.SPRINGDOC_SWAGGER_UI_ENABLED;
5757
import static org.springdoc.core.utils.Constants.SPRINGDOC_USE_MANAGEMENT_PORT;
5858
import static org.springdoc.core.utils.Constants.SPRINGDOC_USE_ROOT_PATH;

Diff for: springdoc-openapi-starter-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerWelcomeActuator.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,21 @@
2626

2727
package org.springdoc.webflux.ui;
2828

29+
import java.util.Map;
30+
2931
import io.swagger.v3.oas.annotations.Operation;
3032
import org.springdoc.core.properties.SpringDocConfigProperties;
3133
import org.springdoc.core.properties.SwaggerUiConfigParameters;
3234
import org.springdoc.core.properties.SwaggerUiConfigProperties;
35+
import reactor.core.publisher.Mono;
36+
3337
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
3438
import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpoint;
3539
import org.springframework.http.MediaType;
3640
import org.springframework.http.server.reactive.ServerHttpRequest;
3741
import org.springframework.http.server.reactive.ServerHttpResponse;
3842
import org.springframework.web.bind.annotation.GetMapping;
3943
import org.springframework.web.bind.annotation.ResponseBody;
40-
import reactor.core.publisher.Mono;
41-
42-
import java.util.Map;
4344

4445
import static org.springdoc.core.utils.Constants.DEFAULT_API_DOCS_ACTUATOR_URL;
4546
import static org.springdoc.core.utils.Constants.DEFAULT_SWAGGER_UI_ACTUATOR_PATH;

Diff for: springdoc-openapi-starter-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerWelcomeWebFlux.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,12 @@
3131
import org.springdoc.core.properties.SwaggerUiConfigParameters;
3232
import org.springdoc.core.properties.SwaggerUiConfigProperties;
3333
import org.springdoc.core.providers.SpringWebProvider;
34+
import reactor.core.publisher.Mono;
35+
3436
import org.springframework.http.server.reactive.ServerHttpRequest;
3537
import org.springframework.http.server.reactive.ServerHttpResponse;
3638
import org.springframework.stereotype.Controller;
3739
import org.springframework.web.bind.annotation.GetMapping;
38-
import reactor.core.publisher.Mono;
3940

4041
import static org.springdoc.core.utils.Constants.SWAGGER_CONFIG_FILE;
4142
import static org.springdoc.core.utils.Constants.SWAGGER_UI_PATH;
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
org.springdoc.webflux.ui.SwaggerConfig
22
org.springdoc.core.properties.SwaggerUiConfigProperties
3-
org.springdoc.core.properties.SwaggerUiOAuthProperties
4-
org.springdoc.core.configuration.SpringDocUIConfiguration
3+
org.springdoc.core.properties.SwaggerUiOAuthProperties

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/AbstractSpringDocTest.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package test.org.springdoc.ui;
2020

2121
import org.springdoc.core.configuration.SpringDocConfiguration;
22-
import org.springdoc.core.configuration.SpringDocUIConfiguration;
2322
import org.springdoc.core.properties.SpringDocConfigProperties;
2423
import org.springdoc.core.properties.SwaggerUiConfigParameters;
2524
import org.springdoc.core.properties.SwaggerUiConfigProperties;
@@ -41,7 +40,7 @@
4140
@WebFluxTest
4241
@ContextConfiguration(classes = { SpringDocConfiguration.class, SpringDocConfigProperties.class,
4342
SpringDocWebFluxConfiguration.class, SwaggerUiConfigParameters.class, SwaggerUiConfigProperties.class,
44-
SwaggerConfig.class, SwaggerUiOAuthProperties.class, SpringDocUIConfiguration.class })
43+
SwaggerConfig.class, SwaggerUiOAuthProperties.class })
4544
public abstract class AbstractSpringDocTest extends AbstractCommonTest {
4645

4746
private static final String DEFAULT_SWAGGER_INITIALIZER_URL = Constants.SWAGGER_INITIALIZER_URL;

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app1/SpringDocApp1RedirecFilterTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020

2121
import org.hamcrest.Matchers;
2222
import org.junit.jupiter.api.Test;
23+
import test.org.springdoc.ui.AbstractSpringDocTest;
24+
2325
import org.springframework.boot.autoconfigure.SpringBootApplication;
2426
import org.springframework.test.context.TestPropertySource;
2527
import org.springframework.test.web.reactive.server.WebTestClient;
26-
import test.org.springdoc.ui.AbstractSpringDocTest;
2728

2829

2930
@TestPropertySource(properties = "springdoc.swagger-ui.filter=false")

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app1/SpringDocApp1RedirectConfigUrlTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020

2121
import org.hamcrest.Matchers;
2222
import org.junit.jupiter.api.Test;
23+
import test.org.springdoc.ui.AbstractSpringDocTest;
24+
2325
import org.springframework.boot.autoconfigure.SpringBootApplication;
2426
import org.springframework.test.context.TestPropertySource;
2527
import org.springframework.test.web.reactive.server.WebTestClient;
26-
import test.org.springdoc.ui.AbstractSpringDocTest;
2728

2829

2930
@TestPropertySource(properties = {

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app1/SpringDocApp1RedirectDefaultTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
2020

2121
import org.hamcrest.Matchers;
2222
import org.junit.jupiter.api.Test;
23+
import test.org.springdoc.ui.AbstractSpringDocTest;
24+
2325
import org.springframework.boot.autoconfigure.SpringBootApplication;
2426
import org.springframework.test.web.reactive.server.WebTestClient;
25-
import test.org.springdoc.ui.AbstractSpringDocTest;
2627

2728

2829
public class SpringDocApp1RedirectDefaultTest extends AbstractSpringDocTest {

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app1/SpringDocApp1RedirectLayoutTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020

2121
import org.hamcrest.Matchers;
2222
import org.junit.jupiter.api.Test;
23+
import test.org.springdoc.ui.AbstractSpringDocTest;
24+
2325
import org.springframework.boot.autoconfigure.SpringBootApplication;
2426
import org.springframework.test.context.TestPropertySource;
2527
import org.springframework.test.web.reactive.server.WebTestClient;
26-
import test.org.springdoc.ui.AbstractSpringDocTest;
2728

2829

2930
@TestPropertySource(properties = "springdoc.swagger-ui.layout=BaseLayout")

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app1/SpringDocApp1RedirectWithConfigTest.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020

2121
import org.hamcrest.Matchers;
2222
import org.junit.jupiter.api.Test;
23+
import test.org.springdoc.ui.AbstractSpringDocTest;
24+
2325
import org.springframework.boot.autoconfigure.SpringBootApplication;
2426
import org.springframework.test.context.TestPropertySource;
2527
import org.springframework.test.web.reactive.server.WebTestClient;
26-
import test.org.springdoc.ui.AbstractSpringDocTest;
2728

2829
@TestPropertySource(properties = {
2930
"springdoc.swagger-ui.validatorUrl=/foo/validate",

Diff for: springdoc-openapi-starter-webflux-ui/src/test/java/test/org/springdoc/ui/app13/SpringDocApp13Test.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@
2525
package test.org.springdoc.ui.app13;
2626

2727
import org.junit.jupiter.api.Test;
28+
import reactor.core.publisher.Mono;
29+
import test.org.springdoc.ui.AbstractSpringDocActuatorTest;
30+
2831
import org.springframework.boot.autoconfigure.SpringBootApplication;
2932
import org.springframework.boot.test.context.SpringBootTest;
3033
import org.springframework.http.HttpStatus;
3134
import org.springframework.http.HttpStatusCode;
3235
import org.springframework.test.web.reactive.server.EntityExchangeResult;
33-
import reactor.core.publisher.Mono;
34-
import test.org.springdoc.ui.AbstractSpringDocActuatorTest;
3536

3637
import static org.assertj.core.api.Assertions.assertThat;
3738
import static org.skyscreamer.jsonassert.JSONAssert.assertEquals;

0 commit comments

Comments
 (0)