Skip to content

Commit 5179088

Browse files
committed
upgrade spring-boot to version 4.0.3
1 parent 672ad9d commit 5179088

2 files changed

Lines changed: 21 additions & 37 deletions

File tree

springdoc-openapi-starter-webflux-api/src/test/java/test/org/springdoc/api/v31/app194/config/ApiVersionParser.java

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@
22

33
public class ApiVersionParser implements org.springframework.web.accept.ApiVersionParser {
44

5-
// allows us to use /api/v2/users instead of /api/2.0/users
6-
@Override
7-
public Comparable parseVersion(String version) {
8-
// Remove "v" prefix if it exists (v1 becomes 1, v2 becomes 2)
9-
if (version.startsWith("v") || version.startsWith("V")) {
10-
version = version.substring(1);
11-
}
12-
13-
if("api-docs".equals(version) || "index.html".equals(version)
14-
|| "swagger-ui-bundle.js".equals(version)
15-
|| "swagger-ui.css".equals(version)
16-
|| "index.css".equals(version)
17-
|| "swagger-ui-standalone-preset.js".equals(version)
18-
|| "favicon-32x32.png".equals(version)
19-
|| "favicon-16x16.png".equals(version)
20-
|| "swagger-initializer.js".equals(version))
21-
return null;
22-
return version;
23-
}
5+
private static final String DEFAULT_VERSION = "1.0";
6+
7+
// allows us to use /api/v2/users instead of /api/2.0/users
8+
@Override
9+
public Comparable parseVersion(String version) {
10+
// Remove "v" prefix if it exists (v1 becomes 1, v2 becomes 2)
11+
if (version.startsWith("v") || version.startsWith("V")) {
12+
version = version.substring(1);
13+
}
14+
// For non-numeric path segments (e.g. "api-docs", "swagger-ui.css"),
15+
// fall back to the default version to avoid NPE from returning null
16+
// in the reactive ApiVersionStrategy pipeline
17+
try {
18+
Double.parseDouble(version);
19+
}
20+
catch (NumberFormatException ex) {
21+
return DEFAULT_VERSION;
22+
}
23+
return version;
24+
}
25+
2426
}
Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
package test.org.springdoc.api.v31.app194.config;
22

3-
import test.org.springdoc.api.v31.NullSafeApiVersionStrategyDecorator;
4-
5-
import org.springframework.beans.factory.ObjectProvider;
6-
import org.springframework.beans.factory.SmartInitializingSingleton;
7-
import org.springframework.context.annotation.Bean;
83
import org.springframework.context.annotation.Configuration;
9-
import org.springframework.web.reactive.accept.ApiVersionStrategy;
104
import org.springframework.web.reactive.config.ApiVersionConfigurer;
115
import org.springframework.web.reactive.config.WebFluxConfigurer;
12-
import org.springframework.web.reactive.handler.AbstractHandlerMapping;
136

147
@Configuration
158
public class WebConfig implements WebFluxConfigurer {
@@ -25,15 +18,4 @@ public void configureApiVersioning(ApiVersionConfigurer configurer) {
2518
.setVersionParser(new ApiVersionParser());
2619
}
2720

28-
@Bean
29-
SmartInitializingSingleton nullSafeApiVersionStrategyInitializer(
30-
ObjectProvider<AbstractHandlerMapping> handlerMappings) {
31-
return () -> handlerMappings.forEach(mapping -> {
32-
ApiVersionStrategy strategy = mapping.getApiVersionStrategy();
33-
if (strategy != null && !(strategy instanceof NullSafeApiVersionStrategyDecorator)) {
34-
mapping.setApiVersionStrategy(new NullSafeApiVersionStrategyDecorator(strategy));
35-
}
36-
});
37-
}
38-
3921
}

0 commit comments

Comments
 (0)