From b8d805980ad5bbf85040629ba7c06e9bebbfe069 Mon Sep 17 00:00:00 2001 From: Timo Schwarz Date: Mon, 6 Oct 2025 15:07:57 +0200 Subject: [PATCH] Spring 7 WebClient Compatibility (#22030) * Update Spring Boot dependency for WebClient * Adapt WebClient ApiClient to change in HttpHeaders with Spring 7 --------- Co-authored-by: Timo Schwarz --- .../Java/libraries/webclient/ApiClient.mustache | 10 ++++++---- .../Java/libraries/webclient/build.gradle.mustache | 2 +- .../resources/Java/libraries/webclient/pom.mustache | 2 +- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- .../petstore/java/webclient-jakarta/build.gradle | 2 +- samples/client/petstore/java/webclient-jakarta/pom.xml | 2 +- .../main/java/org/openapitools/client/ApiClient.java | 7 ++----- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- .../main/java/org/openapitools/client/ApiClient.java | 5 +---- 12 files changed, 18 insertions(+), 37 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache index 9bc558f1f41..cd14c31d2d8 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache @@ -357,10 +357,7 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } @@ -737,7 +734,12 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { * @param requestBuilder The current request */ protected void addHeadersToRequest(HttpHeaders headers, WebClient.RequestBodySpec requestBuilder) { + {{#useJakartaEe}} + for (Entry> entry : headers.headerSet()) { + {{/useJakartaEe}} + {{^useJakartaEe}} for (Entry> entry : headers.entrySet()) { + {{/useJakartaEe}} List values = entry.getValue(); for(String value : values) { if (value != null) { diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache index ebfcebd4134..52a33b2df9a 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/build.gradle.mustache @@ -131,7 +131,7 @@ ext { swagger_annotations_version = "2.2.9" {{/swagger2AnnotationLibrary}} {{#useJakartaEe}} - spring_boot_version = "3.0.12" + spring_boot_version = "3.2.12" jakarta_annotation_version = "2.1.1" beanvalidation_version = "3.0.2" reactor_version = "3.5.12" diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/pom.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/pom.mustache index eef60815d38..570d1ccc204 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/pom.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/pom.mustache @@ -173,7 +173,7 @@ 0.2.7 {{/openApiNullable}} {{#useJakartaEe}} - 3.0.12 + 3.2.12 2.1.1 3.5.12 1.2.8 diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java index 728cce825dd..957517053bb 100644 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java @@ -326,10 +326,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } diff --git a/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java index 62183f091a7..dde4d10b082 100644 --- a/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java @@ -326,10 +326,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } diff --git a/samples/client/petstore/java/webclient-jakarta/build.gradle b/samples/client/petstore/java/webclient-jakarta/build.gradle index 0891308e02d..08bc58a5805 100644 --- a/samples/client/petstore/java/webclient-jakarta/build.gradle +++ b/samples/client/petstore/java/webclient-jakarta/build.gradle @@ -112,7 +112,7 @@ if(hasProperty('target') && target == 'android') { } ext { - spring_boot_version = "3.0.12" + spring_boot_version = "3.2.12" jakarta_annotation_version = "2.1.1" beanvalidation_version = "3.0.2" reactor_version = "3.5.12" diff --git a/samples/client/petstore/java/webclient-jakarta/pom.xml b/samples/client/petstore/java/webclient-jakarta/pom.xml index 695f884ed60..06ecd155bdd 100644 --- a/samples/client/petstore/java/webclient-jakarta/pom.xml +++ b/samples/client/petstore/java/webclient-jakarta/pom.xml @@ -123,7 +123,7 @@ 2.19.2 2.19.2 0.2.7 - 3.0.12 + 3.2.12 2.1.1 3.5.12 1.2.8 diff --git a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java index 0d81f5064ce..4849edd66db 100644 --- a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java @@ -346,10 +346,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } @@ -726,7 +723,7 @@ public class ApiClient extends JavaTimeFormatter { * @param requestBuilder The current request */ protected void addHeadersToRequest(HttpHeaders headers, WebClient.RequestBodySpec requestBuilder) { - for (Entry> entry : headers.entrySet()) { + for (Entry> entry : headers.headerSet()) { List values = entry.getValue(); for(String value : values) { if (value != null) { diff --git a/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java index 7ec61158bd1..474430de8b9 100644 --- a/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java @@ -326,10 +326,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } diff --git a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java index 3828105b461..af4ef6b0421 100644 --- a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java @@ -346,10 +346,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } diff --git a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java index 3828105b461..af4ef6b0421 100644 --- a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java @@ -346,10 +346,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; } diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java index 3828105b461..af4ef6b0421 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java @@ -346,10 +346,7 @@ public class ApiClient extends JavaTimeFormatter { * @return ApiClient this client */ public ApiClient addDefaultHeader(String name, String value) { - if (defaultHeaders.containsKey(name)) { - defaultHeaders.remove(name); - } - defaultHeaders.add(name, value); + defaultHeaders.set(name, value); return this; }