From 8b2d37b5a2b4a3189a4541c3b06dc660de393bc5 Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Thu, 4 Dec 2025 17:43:46 +0100 Subject: [PATCH 1/5] Update to spring boot 4.0.0 --- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../validation/factory/ContentCachingWrapperFactory.java | 2 +- .../filter/MultiReadContentCachingRequestWrapper.java | 4 ---- ...ringWebLibraryAutoConfigurationApplicationContextTest.java | 4 ++-- .../integration/ExceptionsNoExceptionHandlerTest.java | 2 +- .../integration/ExceptionsWithExceptionHandlerTest.java | 2 +- .../integration/FailOnViolationIntegrationTest.java | 2 +- .../integration/OpenApiValidationIntegrationTest.java | 2 +- test/openapi-web/build.gradle | 1 + test/openapi-webflux/build.gradle | 1 + 11 files changed, 11 insertions(+), 13 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index da58b331..e8a30c99 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] java = "21" -spring-boot = "3.5.7" +spring-boot = "4.0.0" spring-dependency-management = "1.1.7" openapi-generator = "7.17.0" openapi-tools = "0.2.8" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1e2fbf0d..ac57dd15 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/factory/ContentCachingWrapperFactory.java b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/factory/ContentCachingWrapperFactory.java index 3c564500..577ff5b0 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/factory/ContentCachingWrapperFactory.java +++ b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/factory/ContentCachingWrapperFactory.java @@ -13,7 +13,7 @@ public MultiReadContentCachingRequestWrapper buildContentCachingRequestWrapper(H return (MultiReadContentCachingRequestWrapper) request; } - return new MultiReadContentCachingRequestWrapper(request); + return new MultiReadContentCachingRequestWrapper(request, 0 /* no limit */); } public ContentCachingResponseWrapper buildContentCachingResponseWrapper(HttpServletResponse response) { diff --git a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/MultiReadContentCachingRequestWrapper.java b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/MultiReadContentCachingRequestWrapper.java index 850d1f9f..770fac51 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/MultiReadContentCachingRequestWrapper.java +++ b/spring-boot-starter/spring-boot-starter-web/src/main/java/com/getyourguide/openapi/validation/filter/MultiReadContentCachingRequestWrapper.java @@ -11,10 +11,6 @@ public class MultiReadContentCachingRequestWrapper extends ContentCachingRequestWrapper { - public MultiReadContentCachingRequestWrapper(HttpServletRequest request) { - super(request); - } - public MultiReadContentCachingRequestWrapper(HttpServletRequest request, int contentCacheLimit) { super(request, contentCacheLimit); } diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebLibraryAutoConfigurationApplicationContextTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebLibraryAutoConfigurationApplicationContextTest.java index 29bc530c..94d4959f 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebLibraryAutoConfigurationApplicationContextTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebLibraryAutoConfigurationApplicationContextTest.java @@ -5,8 +5,8 @@ import java.util.Optional; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebApplicationContext; -import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext; +import org.springframework.boot.web.context.reactive.AnnotationConfigReactiveWebApplicationContext; +import org.springframework.boot.web.context.servlet.AnnotationConfigServletWebApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.mock.web.MockServletContext; diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java index 6778be25..342005f4 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java @@ -16,8 +16,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java index ead6545e..5af31baf 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java @@ -15,8 +15,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit.jupiter.SpringExtension; diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java index 05043e9f..8b07db94 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java @@ -18,8 +18,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit.jupiter.SpringExtension; diff --git a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java index bc0a6478..ed9c949d 100644 --- a/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-web/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java @@ -19,8 +19,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; diff --git a/test/openapi-web/build.gradle b/test/openapi-web/build.gradle index abaea6a9..f03cf25d 100644 --- a/test/openapi-web/build.gradle +++ b/test/openapi-web/build.gradle @@ -21,6 +21,7 @@ dependencies { testFixturesApi platform(SpringBootPlugin.BOM_COORDINATES) testFixturesApi 'org.springframework.boot:spring-boot-starter-test' + testFixturesApi 'org.springframework.boot:spring-boot-webmvc-test' // For openapi generated code testFixturesApi 'org.springframework.boot:spring-boot-starter-validation' testFixturesApi(libs.openapi.tools.jacksonDatabindNullable) diff --git a/test/openapi-webflux/build.gradle b/test/openapi-webflux/build.gradle index 5473b78f..bd856da1 100644 --- a/test/openapi-webflux/build.gradle +++ b/test/openapi-webflux/build.gradle @@ -21,6 +21,7 @@ dependencies { testFixturesApi platform(SpringBootPlugin.BOM_COORDINATES) testFixturesApi 'org.springframework.boot:spring-boot-starter-test' + testFixturesApi 'org.springframework.boot:spring-boot-webmvc-test' // For openapi generated code testFixturesApi 'org.springframework.boot:spring-boot-starter-validation' testFixturesApi(libs.openapi.tools.jacksonDatabindNullable) From d97d8e103f5449d87523f06caa81d4822b32a2b1 Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Thu, 4 Dec 2025 18:01:28 +0100 Subject: [PATCH 2/5] Fix more errors & remove security constraints that are not needed anymore --- build.gradle | 29 ------------------- .../build.gradle | 12 -------- .../build.gradle | 12 -------- .../error/GlobalErrorWebExceptionHandler.java | 4 +-- .../filter/OpenApiValidationWebFilter.java | 4 +-- 5 files changed, 4 insertions(+), 57 deletions(-) diff --git a/build.gradle b/build.gradle index 33277f06..365d62e8 100644 --- a/build.gradle +++ b/build.gradle @@ -3,10 +3,6 @@ plugins { alias(libs.plugins.nexus.publish) } -ext['spring-framework.version'] = '6.2.11' -ext['tomcat.version'] = '11.0.12' -ext['netty.version'] = '4.2.6.Final' // Due to security vulnerabilities in 4.125.Final and older - apply from: "${rootDir}/gradle/publish-root.gradle" allprojects { @@ -68,31 +64,6 @@ subprojects { annotationProcessor(libs.lombok) testCompileOnly(libs.lombok) testAnnotationProcessor(libs.lombok) - - // Security constraints - constraints { - implementation("org.springframework:spring-web:6.2.12") { - because("versions below 6.2.11 have security vulnerabilities including CVE-2024-38820 and CVE-2025-41249 - see dependabot #12, #24") - } - implementation("org.springframework:spring-webmvc:6.2.12") { - because("versions below 6.2.11 have security vulnerabilities including CVE-2025-41242 and CVE-2025-41249 - see dependabot #24, #247") - } - implementation("org.apache.tomcat.embed:tomcat-embed-core:11.0.14") { - because("versions below 11.0.12 have security vulnerabilities including CVE-2024-56337, CVE-2025-55754, CVE-2025-61795 - see dependabot #13, #27, #28") - } - implementation("org.apache.commons:commons-lang3:3.20.0") { - because("versions below 3.18.0 have security vulnerabilities including CVE-2025-48924 - see dependabot #15") - } - implementation("io.projectreactor.netty:reactor-netty-http:1.3.0") { - because("versions below 1.2.8 have security vulnerabilities including CVE-2025-22227 - see dependabot #16") - } - implementation("io.netty:netty-codec-http2:4.2.7.Final") { - because("versions below 4.1.124.Final have security vulnerabilities including CVE-2025-55163 - see dependabot #17") - } - implementation("io.netty:netty-codec:4.2.7.Final") { - because("versions below 4.1.125.Final have security vulnerabilities including CVE-2025-58057 - see dependabot #21") - } - } } checkstyle { diff --git a/examples/example-spring-boot-starter-web/build.gradle b/examples/example-spring-boot-starter-web/build.gradle index 465a87c8..ffcca815 100644 --- a/examples/example-spring-boot-starter-web/build.gradle +++ b/examples/example-spring-boot-starter-web/build.gradle @@ -5,18 +5,6 @@ plugins { alias(libs.plugins.openapi.generator) } -// Needed for security. See: -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/25 -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/7 -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/6 -// Hopefully with spring-boot 3.4.2+ this won't be needed anymore and can be removed. -dependencyManagement { - dependencies { - dependency 'ch.qos.logback:logback-core:1.5.21' - dependency 'ch.qos.logback:logback-classic:1.5.21' - } -} - dependencies { implementation project(':examples:examples-common') implementation project(':spring-boot-starter:spring-boot-starter-web') diff --git a/examples/example-spring-boot-starter-webflux/build.gradle b/examples/example-spring-boot-starter-webflux/build.gradle index 1743156b..59eaef61 100644 --- a/examples/example-spring-boot-starter-webflux/build.gradle +++ b/examples/example-spring-boot-starter-webflux/build.gradle @@ -5,18 +5,6 @@ plugins { alias(libs.plugins.openapi.generator) } -// Needed for security. See: -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/25 -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/7 -// - https://github.com/getyourguide/openapi-validation-java/security/dependabot/6 -// Hopefully with spring-boot 3.4.2+ this won't be needed anymore and can be removed. -dependencyManagement { - dependencies { - dependency 'ch.qos.logback:logback-core:1.5.21' - dependency 'ch.qos.logback:logback-classic:1.5.21' - } -} - dependencies { implementation project(':examples:examples-common') implementation project(':spring-boot-starter:spring-boot-starter-webflux') diff --git a/examples/example-spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/example/error/GlobalErrorWebExceptionHandler.java b/examples/example-spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/example/error/GlobalErrorWebExceptionHandler.java index 9c94705b..b6448d9a 100644 --- a/examples/example-spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/example/error/GlobalErrorWebExceptionHandler.java +++ b/examples/example-spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/example/error/GlobalErrorWebExceptionHandler.java @@ -3,9 +3,9 @@ import com.getyourguide.openapi.validation.example.openapi.model.BadRequestResponse; import java.util.Optional; import org.springframework.boot.autoconfigure.web.WebProperties; -import org.springframework.boot.autoconfigure.web.reactive.error.AbstractErrorWebExceptionHandler; import org.springframework.boot.web.error.ErrorAttributeOptions; -import org.springframework.boot.web.reactive.error.ErrorAttributes; +import org.springframework.boot.webflux.autoconfigure.error.AbstractErrorWebExceptionHandler; +import org.springframework.boot.webflux.error.ErrorAttributes; import org.springframework.context.ApplicationContext; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationWebFilter.java b/spring-boot-starter/spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationWebFilter.java index e996ae79..a44cc287 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationWebFilter.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/main/java/com/getyourguide/openapi/validation/filter/OpenApiValidationWebFilter.java @@ -84,8 +84,8 @@ private Mono optionalValidateRequestWithFailOnViolation( AlreadyDidValidation alreadyDidValidation ) { if (!trafficSelector.shouldFailOnRequestViolation(requestMetaData) - || !request.getHeaders().containsKey("Content-Type") - || !request.getHeaders().containsKey("Content-Length")) { + || !request.getHeaders().containsHeader("Content-Type") + || !request.getHeaders().containsHeader("Content-Length")) { return Mono.just(alreadyDidValidation); } From ef9cd8f377c2613648e74862327d158dc6f44f42 Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Thu, 4 Dec 2025 18:28:52 +0100 Subject: [PATCH 3/5] more test fixes --- ...WebFluxLibraryAutoConfigurationApplicationContextTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebFluxLibraryAutoConfigurationApplicationContextTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebFluxLibraryAutoConfigurationApplicationContextTest.java index b7e641de..1233a827 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebFluxLibraryAutoConfigurationApplicationContextTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/autoconfigure/SpringWebFluxLibraryAutoConfigurationApplicationContextTest.java @@ -6,8 +6,8 @@ import java.util.Optional; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebApplicationContext; -import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebApplicationContext; +import org.springframework.boot.web.context.reactive.AnnotationConfigReactiveWebApplicationContext; +import org.springframework.boot.web.context.servlet.AnnotationConfigServletWebApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.mock.web.MockServletContext; From 5ed142d3fc683a025e8ae93c3bc6d08d3fc6eb0e Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Thu, 4 Dec 2025 18:33:31 +0100 Subject: [PATCH 4/5] more test fixes --- .../integration/ExceptionsNoExceptionHandlerTest.java | 2 +- .../integration/ExceptionsWithExceptionHandlerTest.java | 2 +- .../validation/integration/FailOnViolationIntegrationTest.java | 2 +- .../integration/OpenApiValidationIntegrationTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java index c0d90433..f8c2603c 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java @@ -7,8 +7,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.reactive.server.WebTestClient; diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java index fab0f090..ef98ace8 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java @@ -11,8 +11,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit.jupiter.SpringExtension; diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java index f110c512..acb8f4a9 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java @@ -12,8 +12,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit.jupiter.SpringExtension; diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java index 912691d9..8aec3b4d 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java @@ -13,8 +13,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; import org.springframework.http.MediaType; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.reactive.server.WebTestClient; From a35dab02d316364a4c394c2ce3197b013650452a Mon Sep 17 00:00:00 2001 From: Patrick Boos Date: Fri, 5 Dec 2025 07:48:53 +0100 Subject: [PATCH 5/5] more test fixes --- .../integration/ExceptionsNoExceptionHandlerTest.java | 4 ++-- .../integration/ExceptionsWithExceptionHandlerTest.java | 4 ++-- .../integration/FailOnViolationIntegrationTest.java | 4 ++-- .../integration/OpenApiValidationIntegrationTest.java | 4 ++-- test/openapi-webflux/build.gradle | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java index f8c2603c..83849546 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsNoExceptionHandlerTest.java @@ -8,13 +8,13 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; +import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient; import org.springframework.http.MediaType; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.reactive.server.WebTestClient; @SpringBootTest -@AutoConfigureMockMvc +@AutoConfigureWebTestClient @ExtendWith(SpringExtension.class) public class ExceptionsNoExceptionHandlerTest { diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java index ef98ace8..221ce82d 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/ExceptionsWithExceptionHandlerTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; +import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -26,7 +26,7 @@ SpringBootTestConfiguration.class, ExceptionsWithExceptionHandlerTest.ExceptionHandlerConfiguration.class, }) -@AutoConfigureMockMvc +@AutoConfigureWebTestClient @ExtendWith(SpringExtension.class) public class ExceptionsWithExceptionHandlerTest { diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java index acb8f4a9..714055ca 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/FailOnViolationIntegrationTest.java @@ -13,7 +13,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; +import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient; import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -23,7 +23,7 @@ "openapi.validation.should-fail-on-request-violation=true", "openapi.validation.should-fail-on-response-violation=true", }) -@AutoConfigureMockMvc +@AutoConfigureWebTestClient @ExtendWith(SpringExtension.class) public class FailOnViolationIntegrationTest { diff --git a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java index 8aec3b4d..4bee364b 100644 --- a/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java +++ b/spring-boot-starter/spring-boot-starter-webflux/src/test/java/com/getyourguide/openapi/validation/integration/OpenApiValidationIntegrationTest.java @@ -14,13 +14,13 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc; +import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient; import org.springframework.http.MediaType; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.reactive.server.WebTestClient; @SpringBootTest -@AutoConfigureMockMvc +@AutoConfigureWebTestClient @ExtendWith(SpringExtension.class) public class OpenApiValidationIntegrationTest { @Autowired diff --git a/test/openapi-webflux/build.gradle b/test/openapi-webflux/build.gradle index bd856da1..72485caf 100644 --- a/test/openapi-webflux/build.gradle +++ b/test/openapi-webflux/build.gradle @@ -21,7 +21,7 @@ dependencies { testFixturesApi platform(SpringBootPlugin.BOM_COORDINATES) testFixturesApi 'org.springframework.boot:spring-boot-starter-test' - testFixturesApi 'org.springframework.boot:spring-boot-webmvc-test' + testFixturesApi 'org.springframework.boot:spring-boot-webtestclient' // For openapi generated code testFixturesApi 'org.springframework.boot:spring-boot-starter-validation' testFixturesApi(libs.openapi.tools.jacksonDatabindNullable)