Skip to content

Commit 1cbcb10

Browse files
author
bnasslahsen
committed
project review
1 parent bd3d7c6 commit 1cbcb10

File tree

10 files changed

+119
-27
lines changed

10 files changed

+119
-27
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/core/SpringDocConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,16 @@
4646

4747
import static org.springdoc.core.Constants.SPRINGDOC_CACHE_DISABLED;
4848
import static org.springdoc.core.Constants.SPRINGDOC_ENABLED;
49+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
4950

5051
@Configuration
5152
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
5253
public class SpringDocConfiguration {
5354

5455
static {
55-
AdditionalModelsConverter.replaceWithSchema(ObjectNode.class, new ObjectSchema());
56+
getConfig().replaceWithSchema(ObjectNode.class, new ObjectSchema());
5657
}
58+
5759
@Bean
5860
LocalVariableTableParameterNameDiscoverer localSpringDocParameterNameDiscoverer() {
5961
return new LocalVariableTableParameterNameDiscoverer();
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
/*
2+
*
3+
* * Copyright 2019-2020 the original author or authors.
4+
* *
5+
* * Licensed under the Apache License, Version 2.0 (the "License");
6+
* * you may not use this file except in compliance with the License.
7+
* * You may obtain a copy of the License at
8+
* *
9+
* * https://www.apache.org/licenses/LICENSE-2.0
10+
* *
11+
* * Unless required by applicable law or agreed to in writing, software
12+
* * distributed under the License is distributed on an "AS IS" BASIS,
13+
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* * See the License for the specific language governing permissions and
15+
* * limitations under the License.
16+
*
17+
*/
18+
19+
package org.springdoc.core;
20+
21+
import io.swagger.v3.oas.models.media.Schema;
22+
import org.springdoc.api.AbstractOpenApiResource;
23+
import org.springdoc.core.converters.AdditionalModelsConverter;
24+
import org.springdoc.core.converters.ConverterUtils;
25+
26+
public class SpringDocOpenApi {
27+
28+
private static final SpringDocOpenApi springDocConfig = new SpringDocOpenApi();
29+
30+
private SpringDocOpenApi() { }
31+
32+
public static SpringDocOpenApi getConfig() {
33+
return springDocConfig;
34+
}
35+
36+
public SpringDocOpenApi addDeprecatedType(Class<?> cls) {
37+
AbstractOpenApiResource.addDeprecatedType(cls);
38+
return this;
39+
}
40+
41+
public SpringDocOpenApi addRestControllers(Class<?>... classes) {
42+
AbstractOpenApiResource.addRestControllers(classes);
43+
return this;
44+
}
45+
46+
public SpringDocOpenApi addHiddenRestControllers(Class<?>... classes) {
47+
AbstractOpenApiResource.addHiddenRestControllers(classes);
48+
return this;
49+
}
50+
51+
public SpringDocOpenApi replaceWithClass(Class source, Class target) {
52+
AdditionalModelsConverter.replaceWithClass( source, target);
53+
return this;
54+
}
55+
56+
public SpringDocOpenApi replaceWithSchema(Class source, Schema target) {
57+
AdditionalModelsConverter.replaceWithSchema( source, target);
58+
return this;
59+
}
60+
61+
public SpringDocOpenApi addRequestWrapperToIgnore(Class<?>... classes) {
62+
AbstractRequestBuilder.addRequestWrapperToIgnore( classes);
63+
return this;
64+
}
65+
66+
public SpringDocOpenApi removeRequestWrapperToIgnore(Class<?>... classes) {
67+
AbstractRequestBuilder.removeRequestWrapperToIgnore( classes);
68+
return this;
69+
}
70+
71+
public SpringDocOpenApi addFileType(Class<?>... classes) {
72+
GenericParameterBuilder.addFileType(classes);
73+
return this;
74+
}
75+
76+
public SpringDocOpenApi addResponseWrapperToIgnore(Class<?> cls){
77+
ConverterUtils.addResponseWrapperToIgnore(cls);
78+
return this;
79+
}
80+
81+
public SpringDocOpenApi addResponseTypeToIgnore(Class<?> cls){
82+
ConverterUtils.addResponseTypeToIgnore(cls);
83+
return this;
84+
}
85+
86+
}
87+

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import io.swagger.v3.oas.models.media.MapSchema;
2929
import io.swagger.v3.oas.models.media.ObjectSchema;
3030
import io.swagger.v3.oas.models.media.StringSchema;
31-
import org.springdoc.core.converters.AdditionalModelsConverter;
3231
import org.springdoc.core.converters.Pageable;
3332
import org.springdoc.core.customizers.OpenApiCustomiser;
3433

@@ -42,14 +41,15 @@
4241
import org.springframework.hateoas.mediatype.hal.RepresentationModelMixin;
4342

4443
import static org.springdoc.core.Constants.SPRINGDOC_ENABLED;
44+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
4545

4646
@Configuration
4747
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
4848
public class SpringDocDataRestConfiguration {
4949

5050
static {
51-
AdditionalModelsConverter.replaceWithClass(org.springframework.data.domain.Pageable.class, Pageable.class);
52-
AdditionalModelsConverter.replaceWithClass(org.springframework.data.domain.PageRequest.class,Pageable.class);
51+
getConfig().replaceWithClass(org.springframework.data.domain.Pageable.class, Pageable.class)
52+
.replaceWithClass(org.springframework.data.domain.PageRequest.class,Pageable.class);
5353
}
5454

5555
@Bean

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,16 @@
2626
import org.springframework.context.annotation.Configuration;
2727
import org.springframework.context.annotation.Primary;
2828

29-
import static org.springdoc.api.AbstractOpenApiResource.addDeprecatedType;
30-
import static org.springdoc.core.AbstractRequestBuilder.addRequestWrapperToIgnore;
3129
import static org.springdoc.core.Constants.SPRINGDOC_ENABLED;
30+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
3231

3332
@Configuration
3433
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
3534
public class SpringDocKotlinConfiguration {
3635

3736
static {
38-
addRequestWrapperToIgnore(Continuation.class);
39-
addDeprecatedType(Deprecated.class);
37+
getConfig().addRequestWrapperToIgnore(Continuation.class)
38+
.addDeprecatedType(Deprecated.class);
4039
}
4140

4241
@Bean

springdoc-openapi-security/src/main/java/org/springdoc/core/IgnoredParameterWithSecurity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@
2121
import org.springframework.security.core.Authentication;
2222
import org.springframework.security.core.annotation.AuthenticationPrincipal;
2323

24-
import static org.springdoc.core.AbstractRequestBuilder.addRequestWrapperToIgnore;
25-
import static org.springdoc.core.converters.ConverterUtils.addResponseTypeToIgnore;
24+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
25+
2626

2727
public class IgnoredParameterWithSecurity implements IgnoredParameterAnnotations {
2828

2929
static {
30-
addRequestWrapperToIgnore(Authentication .class);
31-
addResponseTypeToIgnore(Authentication.class);
30+
getConfig().addRequestWrapperToIgnore(Authentication .class)
31+
.addResponseTypeToIgnore(Authentication.class);
3232
}
3333

3434
@Override

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,14 @@
2929
import org.springframework.http.server.reactive.ServerHttpResponse;
3030
import org.springframework.web.server.ServerWebExchange;
3131

32-
import static org.springdoc.core.GenericParameterBuilder.addFileType;
32+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
3333

3434
public class RequestBuilder extends AbstractRequestBuilder {
3535

3636
static {
37-
addRequestWrapperToIgnore(ServerWebExchange.class,ServerHttpRequest.class,ServerHttpResponse.class);
38-
addFileType(FilePart.class);
37+
getConfig().addRequestWrapperToIgnore(ServerWebExchange.class, ServerHttpRequest.class)
38+
.addRequestWrapperToIgnore(ServerHttpResponse.class)
39+
.addFileType(FilePart.class);
3940
}
4041

4142
public RequestBuilder(GenericParameterBuilder parameterBuilder, RequestBodyBuilder requestBodyBuilder,

springdoc-openapi-webflux-core/src/main/java/org/springdoc/core/converters/WebFluxSupportConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@
3131
import reactor.core.publisher.Flux;
3232
import reactor.core.publisher.Mono;
3333

34-
import static org.springdoc.core.converters.ConverterUtils.addResponseWrapperToIgnore;
34+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
3535
import static org.springdoc.core.converters.ConverterUtils.isResponseTypeWrapper;
3636

3737

3838
public class WebFluxSupportConverter implements ModelConverter {
3939

4040
static {
41-
addResponseWrapperToIgnore(Mono.class);
41+
getConfig().addResponseWrapperToIgnore(Mono.class);
4242
}
4343

4444
@Override

springdoc-openapi-webmvc-core/src/main/java/org/springdoc/core/RequestBuilder.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,17 @@
2424
import org.springdoc.core.customizers.OperationCustomizer;
2525
import org.springdoc.core.customizers.ParameterCustomizer;
2626

27+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
28+
2729
public class RequestBuilder extends AbstractRequestBuilder {
2830

2931
static {
30-
addRequestWrapperToIgnore(javax.servlet.ServletRequest.class);
31-
addRequestWrapperToIgnore(javax.servlet.ServletResponse.class);
32-
addRequestWrapperToIgnore(javax.servlet.http.HttpServletRequest.class);
33-
addRequestWrapperToIgnore(javax.servlet.http.HttpServletResponse.class);
34-
addRequestWrapperToIgnore(javax.servlet.http.HttpSession.class);
35-
addRequestWrapperToIgnore(javax.servlet.http.HttpSession.class);
32+
getConfig().addRequestWrapperToIgnore(javax.servlet.ServletRequest.class)
33+
.addRequestWrapperToIgnore(javax.servlet.ServletResponse.class)
34+
.addRequestWrapperToIgnore(javax.servlet.http.HttpServletRequest.class)
35+
.addRequestWrapperToIgnore(javax.servlet.http.HttpServletResponse.class)
36+
.addRequestWrapperToIgnore(javax.servlet.http.HttpSession.class)
37+
.addRequestWrapperToIgnore(javax.servlet.http.HttpSession.class);
3638
}
3739

3840
public RequestBuilder(GenericParameterBuilder parameterBuilder, RequestBodyBuilder requestBodyBuilder,

springdoc-openapi-webmvc-core/src/test/java/test/org/springdoc/api/app35/SpringDocApp35Test.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@
1818

1919
package test.org.springdoc.api.app35;
2020

21-
import org.springdoc.api.AbstractOpenApiResource;
2221
import test.org.springdoc.api.AbstractSpringDocTest;
2322

2423
import org.springframework.boot.autoconfigure.SpringBootApplication;
2524

25+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
26+
2627
public class SpringDocApp35Test extends AbstractSpringDocTest {
2728

2829
static {
29-
AbstractOpenApiResource.addRestControllers(HelloController.class);
30+
getConfig().addRestControllers(HelloController.class);
3031
}
3132

3233
@SpringBootApplication

springdoc-openapi-webmvc-core/src/test/java/test/org/springdoc/api/app89/SpringDocApp89Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.springframework.test.context.TestPropertySource;
2727
import org.springframework.web.servlet.ModelAndView;
2828

29-
import static org.springdoc.core.converters.AdditionalModelsConverter.replaceWithSchema;
29+
import static org.springdoc.core.SpringDocOpenApi.getConfig;
3030

3131
@TestPropertySource(properties = "springdoc.model-and-view-allowed=true")
3232
public class SpringDocApp89Test extends AbstractSpringDocTest {
@@ -35,6 +35,6 @@ public class SpringDocApp89Test extends AbstractSpringDocTest {
3535
static class SpringDocTestApp {}
3636

3737
static {
38-
replaceWithSchema(ModelAndView .class, new ObjectSchema());
38+
getConfig().replaceWithSchema(ModelAndView .class, new ObjectSchema());
3939
}
4040
}

0 commit comments

Comments
 (0)