Skip to content

Commit 0af7d97

Browse files
author
bnasslahsen
committed
code review
1 parent 39dd00f commit 0af7d97

File tree

9 files changed

+91
-106
lines changed

9 files changed

+91
-106
lines changed

springdoc-openapi-common/src/main/java/org/springdoc/ui/AbstractSwaggerIndexTransformer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.springdoc.core.Constants;
3232
import org.springdoc.core.SwaggerUiConfigProperties;
3333
import org.springdoc.core.SwaggerUiOAuthProperties;
34-
import org.springframework.core.io.Resource;
34+
3535
import org.springframework.util.CollectionUtils;
3636

3737
/**

springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ SwaggerWelcome swaggerWelcome(SwaggerUiConfigProperties swaggerUiConfig, SpringD
6969
*/
7070
@Bean
7171
@ConditionalOnMissingBean
72-
SwaggerIndexPageTransformer indexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
73-
return new SwaggerIndexTransformer(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
72+
SwaggerIndexTransformer indexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
73+
return new SwaggerIndexPageTransformer(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
7474
}
7575

7676
/**
@@ -82,7 +82,7 @@ SwaggerIndexPageTransformer indexPageTransformer(SwaggerUiConfigProperties swagg
8282
*/
8383
@Bean
8484
@ConditionalOnMissingBean
85-
SwaggerWebMvcConfigurer swaggerWebMvcConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SwaggerIndexPageTransformer swaggerIndexTransformer) {
85+
SwaggerWebMvcConfigurer swaggerWebMvcConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SwaggerIndexTransformer swaggerIndexTransformer) {
8686
return new SwaggerWebMvcConfigurer(swaggerUiConfigParameters, swaggerIndexTransformer);
8787
}
8888

springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerIndexPageTransformer.java

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,49 @@
2020

2121
package org.springdoc.webmvc.ui;
2222

23-
import org.springframework.web.servlet.resource.ResourceTransformer;
23+
import java.io.IOException;
24+
25+
import javax.servlet.http.HttpServletRequest;
26+
27+
import com.fasterxml.jackson.databind.ObjectMapper;
28+
import org.springdoc.core.SwaggerUiConfigProperties;
29+
import org.springdoc.core.SwaggerUiOAuthProperties;
30+
import org.springdoc.ui.AbstractSwaggerIndexTransformer;
31+
32+
import org.springframework.core.io.Resource;
33+
import org.springframework.util.AntPathMatcher;
34+
import org.springframework.web.servlet.resource.ResourceTransformerChain;
35+
import org.springframework.web.servlet.resource.TransformedResource;
2436

2537
/**
26-
* The type Swagger index page transformer.
27-
* @author pverdage
38+
* The type Swagger index transformer.
39+
* @author bnasslahsen
2840
*/
29-
public interface SwaggerIndexPageTransformer extends ResourceTransformer {
41+
public class SwaggerIndexPageTransformer extends AbstractSwaggerIndexTransformer implements SwaggerIndexTransformer {
42+
43+
/**
44+
* Instantiates a new Swagger index transformer.
45+
*
46+
* @param swaggerUiConfig the swagger ui config
47+
* @param swaggerUiOAuthProperties the swagger ui o auth properties
48+
* @param objectMapper the object mapper
49+
*/
50+
public SwaggerIndexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
51+
super(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
52+
}
53+
54+
@Override
55+
public Resource transform(HttpServletRequest request, Resource resource,
56+
ResourceTransformerChain transformerChain) throws IOException {
57+
final AntPathMatcher antPathMatcher = new AntPathMatcher();
58+
boolean isIndexFound = antPathMatcher.match("**/swagger-ui/**/index.html", resource.getURL().toString());
59+
60+
if (isIndexFound && hasDefaultTransformations()) {
61+
String html = defaultTransformations(resource.getInputStream());
62+
return new TransformedResource(resource, html.getBytes());
63+
}
64+
else
65+
return resource;
66+
}
3067

3168
}

springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerIndexTransformer.java

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,50 +20,12 @@
2020

2121
package org.springdoc.webmvc.ui;
2222

23-
import java.io.IOException;
24-
25-
import javax.servlet.http.HttpServletRequest;
26-
27-
import com.fasterxml.jackson.databind.ObjectMapper;
28-
import org.springdoc.core.SwaggerUiConfigProperties;
29-
import org.springdoc.core.SwaggerUiOAuthProperties;
30-
import org.springdoc.ui.AbstractSwaggerIndexTransformer;
31-
32-
import org.springframework.core.io.Resource;
33-
import org.springframework.util.AntPathMatcher;
34-
import org.springframework.util.CollectionUtils;
35-
import org.springframework.web.servlet.resource.ResourceTransformerChain;
36-
import org.springframework.web.servlet.resource.TransformedResource;
23+
import org.springframework.web.servlet.resource.ResourceTransformer;
3724

3825
/**
39-
* The type Swagger index transformer.
40-
* @author bnasslahsen
26+
* The type Swagger index page transformer.
27+
* @author pverdage
4128
*/
42-
public class SwaggerIndexTransformer extends AbstractSwaggerIndexTransformer implements SwaggerIndexPageTransformer {
43-
44-
/**
45-
* Instantiates a new Swagger index transformer.
46-
*
47-
* @param swaggerUiConfig the swagger ui config
48-
* @param swaggerUiOAuthProperties the swagger ui o auth properties
49-
* @param objectMapper the object mapper
50-
*/
51-
public SwaggerIndexTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
52-
super(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
53-
}
54-
55-
@Override
56-
public Resource transform(HttpServletRequest request, Resource resource,
57-
ResourceTransformerChain transformerChain) throws IOException {
58-
final AntPathMatcher antPathMatcher = new AntPathMatcher();
59-
boolean isIndexFound = antPathMatcher.match("**/swagger-ui/**/index.html", resource.getURL().toString());
60-
61-
if (isIndexFound && hasDefaultTransformations()) {
62-
String html = defaultTransformations(resource.getInputStream());
63-
return new TransformedResource(resource, html.getBytes());
64-
}
65-
else
66-
return resource;
67-
}
29+
public interface SwaggerIndexTransformer extends ResourceTransformer {
6830

6931
}

springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWebMvcConfigurer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,15 @@ public class SwaggerWebMvcConfigurer extends WebMvcConfigurerAdapter { // NOSONA
4444
/**
4545
* The Swagger index transformer.
4646
*/
47-
private SwaggerIndexPageTransformer swaggerIndexTransformer;
47+
private SwaggerIndexTransformer swaggerIndexTransformer;
4848

4949
/**
5050
* Instantiates a new Swagger web mvc configurer.
5151
*
5252
* @param swaggerUiConfigParameters the swagger ui calculated config
5353
* @param swaggerIndexTransformer the swagger index transformer
5454
*/
55-
public SwaggerWebMvcConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SwaggerIndexPageTransformer swaggerIndexTransformer) {
55+
public SwaggerWebMvcConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SwaggerIndexTransformer swaggerIndexTransformer) {
5656
this.swaggerPath = swaggerUiConfigParameters.getPath();
5757
this.swaggerIndexTransformer = swaggerIndexTransformer;
5858
}

springdoc-openapi-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class SwaggerConfig implements WebFluxConfigurer {
5656
*/
5757
@Bean
5858
@ConditionalOnMissingBean
59-
SwaggerWebFluxConfigurer swaggerWebFluxConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SpringDocConfigProperties springDocConfigProperties, SwaggerIndexPageTransformer swaggerIndexTransformer) {
59+
SwaggerWebFluxConfigurer swaggerWebFluxConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SpringDocConfigProperties springDocConfigProperties, SwaggerIndexTransformer swaggerIndexTransformer) {
6060
return new SwaggerWebFluxConfigurer(swaggerUiConfigParameters, springDocConfigProperties, swaggerIndexTransformer);
6161
}
6262

@@ -70,8 +70,8 @@ SwaggerWebFluxConfigurer swaggerWebFluxConfigurer(SwaggerUiConfigParameters swag
7070
*/
7171
@Bean
7272
@ConditionalOnMissingBean
73-
SwaggerIndexPageTransformer indexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig ,SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
74-
return new SwaggerIndexTransformer(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
73+
SwaggerIndexTransformer indexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig ,SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
74+
return new SwaggerIndexPageTransformer(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
7575
}
7676

7777
/**

springdoc-openapi-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerIndexPageTransformer.java

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,44 @@
2929

3030
import org.springframework.core.io.Resource;
3131
import org.springframework.util.AntPathMatcher;
32-
import org.springframework.util.CollectionUtils;
33-
import org.springframework.web.reactive.resource.ResourceTransformer;
3432
import org.springframework.web.reactive.resource.ResourceTransformerChain;
3533
import org.springframework.web.reactive.resource.TransformedResource;
3634
import org.springframework.web.server.ServerWebExchange;
3735

3836
/**
3937
* The type Swagger index transformer.
40-
* @author pverdage
38+
* @author bnasslahsen
4139
*/
42-
public interface SwaggerIndexPageTransformer extends ResourceTransformer {
40+
public class SwaggerIndexPageTransformer extends AbstractSwaggerIndexTransformer implements SwaggerIndexTransformer {
41+
42+
/**
43+
* Instantiates a new Swagger index transformer.
44+
*
45+
* @param swaggerUiConfig the swagger ui config
46+
* @param swaggerUiOAuthProperties the swagger ui o auth properties
47+
* @param objectMapper the object mapper
48+
*/
49+
public SwaggerIndexPageTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
50+
super(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
51+
}
52+
53+
@Override
54+
public Mono<Resource> transform(ServerWebExchange serverWebExchange, Resource resource, ResourceTransformerChain resourceTransformerChain) {
55+
final AntPathMatcher antPathMatcher = new AntPathMatcher();
56+
57+
try {
58+
boolean isIndexFound = antPathMatcher.match("**/swagger-ui/**/index.html", resource.getURL().toString());
59+
if (isIndexFound && hasDefaultTransformations()) {
60+
String html = defaultTransformations(resource.getInputStream());
61+
return Mono.just(new TransformedResource(resource, html.getBytes()));
62+
}
63+
else {
64+
return Mono.just(resource);
65+
}
66+
}
67+
catch (Exception e) {
68+
throw new SpringDocUIException("Failed to transform Index", e);
69+
}
70+
}
4371

4472
}

springdoc-openapi-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerIndexTransformer.java

Lines changed: 3 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -20,54 +20,12 @@
2020

2121
package org.springdoc.webflux.ui;
2222

23-
import com.fasterxml.jackson.databind.ObjectMapper;
24-
import org.springdoc.core.SwaggerUiConfigProperties;
25-
import org.springdoc.core.SwaggerUiOAuthProperties;
26-
import org.springdoc.ui.AbstractSwaggerIndexTransformer;
27-
import org.springdoc.ui.SpringDocUIException;
28-
import reactor.core.publisher.Mono;
29-
30-
import org.springframework.core.io.Resource;
31-
import org.springframework.util.AntPathMatcher;
32-
import org.springframework.util.CollectionUtils;
33-
import org.springframework.web.reactive.resource.ResourceTransformerChain;
34-
import org.springframework.web.reactive.resource.TransformedResource;
35-
import org.springframework.web.server.ServerWebExchange;
23+
import org.springframework.web.reactive.resource.ResourceTransformer;
3624

3725
/**
3826
* The type Swagger index transformer.
39-
* @author bnasslahsen
27+
* @author pverdage
4028
*/
41-
public class SwaggerIndexTransformer extends AbstractSwaggerIndexTransformer implements SwaggerIndexPageTransformer {
42-
43-
/**
44-
* Instantiates a new Swagger index transformer.
45-
*
46-
* @param swaggerUiConfig the swagger ui config
47-
* @param swaggerUiOAuthProperties the swagger ui o auth properties
48-
* @param objectMapper the object mapper
49-
*/
50-
public SwaggerIndexTransformer(SwaggerUiConfigProperties swaggerUiConfig, SwaggerUiOAuthProperties swaggerUiOAuthProperties, ObjectMapper objectMapper) {
51-
super(swaggerUiConfig, swaggerUiOAuthProperties, objectMapper);
52-
}
53-
54-
@Override
55-
public Mono<Resource> transform(ServerWebExchange serverWebExchange, Resource resource, ResourceTransformerChain resourceTransformerChain) {
56-
final AntPathMatcher antPathMatcher = new AntPathMatcher();
57-
58-
try {
59-
boolean isIndexFound = antPathMatcher.match("**/swagger-ui/**/index.html", resource.getURL().toString());
60-
if (isIndexFound && hasDefaultTransformations()) {
61-
String html = defaultTransformations(resource.getInputStream());
62-
return Mono.just(new TransformedResource(resource, html.getBytes()));
63-
}
64-
else {
65-
return Mono.just(resource);
66-
}
67-
}
68-
catch (Exception e) {
69-
throw new SpringDocUIException("Failed to transform Index", e);
70-
}
71-
}
29+
public interface SwaggerIndexTransformer extends ResourceTransformer {
7230

7331
}

springdoc-openapi-webflux-ui/src/main/java/org/springdoc/webflux/ui/SwaggerWebFluxConfigurer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public class SwaggerWebFluxConfigurer implements WebFluxConfigurer {
4949
/**
5050
* The Swagger index transformer.
5151
*/
52-
private SwaggerIndexPageTransformer swaggerIndexTransformer;
52+
private SwaggerIndexTransformer swaggerIndexTransformer;
5353

5454
/**
5555
* Instantiates a new Swagger web flux configurer.
@@ -58,7 +58,7 @@ public class SwaggerWebFluxConfigurer implements WebFluxConfigurer {
5858
* @param springDocConfigProperties the spring doc config properties
5959
* @param swaggerIndexTransformer the swagger index transformer
6060
*/
61-
public SwaggerWebFluxConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SpringDocConfigProperties springDocConfigProperties, SwaggerIndexPageTransformer swaggerIndexTransformer) {
61+
public SwaggerWebFluxConfigurer(SwaggerUiConfigParameters swaggerUiConfigParameters, SpringDocConfigProperties springDocConfigProperties, SwaggerIndexTransformer swaggerIndexTransformer) {
6262
this.swaggerPath = swaggerUiConfigParameters.getPath();
6363
this.webJarsPrefixUrl = springDocConfigProperties.getWebjars().getPrefix();
6464
this.swaggerIndexTransformer = swaggerIndexTransformer;

0 commit comments

Comments
 (0)