Skip to content

Commit 0fdf1a3

Browse files
sdeleuzepinguin3245678
authored andcommitted
Refine Kotlin serialization converters/codecs conditions
This commit is a follow-up of 34410 to refine the activation conditions of Kotlin serialization converters/codecs. Closes spring-projectsgh-34438 Signed-off-by: Vincent Potucek <[email protected]>
1 parent fadefd6 commit 0fdf1a3

File tree

7 files changed

+22
-25
lines changed

7 files changed

+22
-25
lines changed

spring-web/src/main/java/org/springframework/http/codec/support/BaseDefaultCodecs.java

-4
Original file line numberDiff line numberDiff line change
@@ -411,10 +411,6 @@ protected void initTypedReaders() {
411411
addCodec(this.typedReaders, new DecoderHttpMessageReader<>(this.protobufDecoder != null ?
412412
(ProtobufDecoder) this.protobufDecoder : new ProtobufDecoder()));
413413
}
414-
else if (kotlinSerializationProtobufPresent) {
415-
addCodec(this.typedReaders, new DecoderHttpMessageReader<>(this.kotlinSerializationProtobufDecoder != null ?
416-
(KotlinSerializationProtobufDecoder) this.kotlinSerializationProtobufDecoder : new KotlinSerializationProtobufDecoder()));
417-
}
418414
addCodec(this.typedReaders, new FormHttpMessageReader());
419415
if (this.multipartReader != null) {
420416
addCodec(this.typedReaders, this.multipartReader);

spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2024 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -87,9 +87,6 @@ public AllEncompassingFormHttpMessageConverter() {
8787
addPartConverter(new Jaxb2RootElementHttpMessageConverter());
8888
}
8989

90-
if (kotlinSerializationJsonPresent) {
91-
addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
92-
}
9390
if (jackson2Present) {
9491
addPartConverter(new MappingJackson2HttpMessageConverter());
9592
}
@@ -99,6 +96,9 @@ else if (gsonPresent) {
9996
else if (jsonbPresent) {
10097
addPartConverter(new JsonbHttpMessageConverter());
10198
}
99+
else if (kotlinSerializationJsonPresent) {
100+
addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
101+
}
102102

103103
if (jackson2XmlPresent) {
104104
addPartConverter(new MappingJackson2XmlHttpMessageConverter());
@@ -111,15 +111,14 @@ else if (jsonbPresent) {
111111
if (jackson2CborPresent) {
112112
addPartConverter(new MappingJackson2CborHttpMessageConverter());
113113
}
114+
else if (kotlinSerializationCborPresent) {
115+
addPartConverter(new KotlinSerializationCborHttpMessageConverter());
116+
}
114117

115118
if (jackson2YamlPresent) {
116119
addPartConverter(new MappingJackson2YamlHttpMessageConverter());
117120
}
118121

119-
if (kotlinSerializationCborPresent) {
120-
addPartConverter(new KotlinSerializationCborHttpMessageConverter());
121-
}
122-
123122
if (kotlinSerializationProtobufPresent) {
124123
addPartConverter(new KotlinSerializationProtobufHttpMessageConverter());
125124
}

spring-web/src/main/java/org/springframework/web/client/DefaultRestClientBuilder.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -419,9 +419,6 @@ private List<HttpMessageConverter<?>> initMessageConverters() {
419419
this.messageConverters.add(new ResourceHttpMessageConverter(false));
420420
this.messageConverters.add(new AllEncompassingFormHttpMessageConverter());
421421

422-
if (kotlinSerializationJsonPresent) {
423-
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
424-
}
425422
if (jackson2Present) {
426423
this.messageConverters.add(new MappingJackson2HttpMessageConverter());
427424
}
@@ -431,6 +428,9 @@ else if (gsonPresent) {
431428
else if (jsonbPresent) {
432429
this.messageConverters.add(new JsonbHttpMessageConverter());
433430
}
431+
else if (kotlinSerializationJsonPresent) {
432+
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
433+
}
434434
if (jackson2SmilePresent) {
435435
this.messageConverters.add(new MappingJackson2SmileHttpMessageConverter());
436436
}

spring-web/src/main/java/org/springframework/web/client/RestTemplate.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,6 @@ else if (jaxb2Present) {
204204
this.messageConverters.add(new KotlinSerializationProtobufHttpMessageConverter());
205205
}
206206

207-
if (kotlinSerializationJsonPresent) {
208-
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
209-
}
210207
if (jackson2Present) {
211208
this.messageConverters.add(new MappingJackson2HttpMessageConverter());
212209
}
@@ -216,6 +213,9 @@ else if (gsonPresent) {
216213
else if (jsonbPresent) {
217214
this.messageConverters.add(new JsonbHttpMessageConverter());
218215
}
216+
else if (kotlinSerializationJsonPresent) {
217+
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
218+
}
219219

220220
if (jackson2SmilePresent) {
221221
this.messageConverters.add(new MappingJackson2SmileHttpMessageConverter());

spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,16 @@ void setup() {
108108
template.setErrorHandler(errorHandler);
109109
}
110110

111-
@Test // gh-29008
112-
void defaultMessageConvertersWithKotlinSerialization() {
111+
@Test
112+
void defaultMessageConvertersWithoutKotlinSerialization() {
113113
RestTemplate restTemplate = new RestTemplate();
114114
List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();
115115
assertThat(httpMessageConverters).extracting("class").containsOnlyOnce(
116-
KotlinSerializationJsonHttpMessageConverter.class,
117116
MappingJackson2HttpMessageConverter.class
118117
);
118+
assertThat(httpMessageConverters).extracting("class").doesNotContain(
119+
KotlinSerializationJsonHttpMessageConverter.class
120+
);
119121
}
120122

121123
@Test

spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -891,9 +891,6 @@ else if (jaxb2Present) {
891891
messageConverters.add(new Jaxb2RootElementHttpMessageConverter());
892892
}
893893

894-
if (kotlinSerializationCborPresent) {
895-
messageConverters.add(new KotlinSerializationCborHttpMessageConverter());
896-
}
897894
if (kotlinSerializationProtobufPresent) {
898895
messageConverters.add(new KotlinSerializationProtobufHttpMessageConverter());
899896
}
@@ -929,6 +926,9 @@ else if (kotlinSerializationJsonPresent) {
929926
}
930927
messageConverters.add(new MappingJackson2CborHttpMessageConverter(builder.build()));
931928
}
929+
else if (kotlinSerializationCborPresent) {
930+
messageConverters.add(new KotlinSerializationCborHttpMessageConverter());
931+
}
932932
if (jackson2YamlPresent) {
933933
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.yaml();
934934
if (this.applicationContext != null) {

spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void requestMappingHandlerAdapter() {
172172
ApplicationContext context = initContext(WebConfig.class);
173173
RequestMappingHandlerAdapter adapter = context.getBean(RequestMappingHandlerAdapter.class);
174174
List<HttpMessageConverter<?>> converters = adapter.getMessageConverters();
175-
assertThat(converters).hasSizeGreaterThanOrEqualTo(14);
175+
assertThat(converters).hasSizeGreaterThanOrEqualTo(13);
176176
converters.stream()
177177
.filter(AbstractJackson2HttpMessageConverter.class::isInstance)
178178
.forEach(converter -> {

0 commit comments

Comments
 (0)