Skip to content

Commit 7214b1e

Browse files
committed
Merge branch '5.3.x'
2 parents fc47d25 + bb3ada4 commit 7214b1e

File tree

5 files changed

+28
-13
lines changed

5 files changed

+28
-13
lines changed

spring-messaging/src/main/java/org/springframework/messaging/simp/config/AbstractMessageBrokerConfiguration.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,9 @@ public CompositeMessageConverter brokerMessageConverter() {
465465
if (registerDefaults) {
466466
converters.add(new StringMessageConverter());
467467
converters.add(new ByteArrayMessageConverter());
468+
if (kotlinSerializationJsonPresent) {
469+
converters.add(new KotlinSerializationJsonMessageConverter());
470+
}
468471
if (jackson2Present) {
469472
converters.add(createJacksonConverter());
470473
}
@@ -474,9 +477,6 @@ else if (gsonPresent) {
474477
else if (jsonbPresent) {
475478
converters.add(new JsonbMessageConverter());
476479
}
477-
else if (kotlinSerializationJsonPresent) {
478-
converters.add(new KotlinSerializationJsonMessageConverter());
479-
}
480480
}
481481
return new CompositeMessageConverter(converters);
482482
}

spring-messaging/src/test/java/org/springframework/messaging/simp/config/MessageBrokerConfigurationTests.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.springframework.messaging.converter.CompositeMessageConverter;
4040
import org.springframework.messaging.converter.ContentTypeResolver;
4141
import org.springframework.messaging.converter.DefaultContentTypeResolver;
42+
import org.springframework.messaging.converter.KotlinSerializationJsonMessageConverter;
4243
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
4344
import org.springframework.messaging.converter.MessageConverter;
4445
import org.springframework.messaging.converter.StringMessageConverter;
@@ -282,12 +283,13 @@ public void configureMessageConvertersDefault() {
282283
CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
283284

284285
List<MessageConverter> converters = compositeConverter.getConverters();
285-
assertThat(converters).hasSize(3);
286+
assertThat(converters).hasSize(4);
286287
assertThat(converters.get(0)).isInstanceOf(StringMessageConverter.class);
287288
assertThat(converters.get(1)).isInstanceOf(ByteArrayMessageConverter.class);
288-
assertThat(converters.get(2)).isInstanceOf(MappingJackson2MessageConverter.class);
289+
assertThat(converters.get(2)).isInstanceOf(KotlinSerializationJsonMessageConverter.class);
290+
assertThat(converters.get(3)).isInstanceOf(MappingJackson2MessageConverter.class);
289291

290-
ContentTypeResolver resolver = ((MappingJackson2MessageConverter) converters.get(2)).getContentTypeResolver();
292+
ContentTypeResolver resolver = ((MappingJackson2MessageConverter) converters.get(3)).getContentTypeResolver();
291293
assertThat(((DefaultContentTypeResolver) resolver).getDefaultMimeType()).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
292294
}
293295

@@ -340,11 +342,12 @@ protected boolean configureMessageConverters(List<MessageConverter> messageConve
340342
};
341343
CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
342344

343-
assertThat(compositeConverter.getConverters()).hasSize(4);
345+
assertThat(compositeConverter.getConverters()).hasSize(5);
344346
Iterator<MessageConverter> iterator = compositeConverter.getConverters().iterator();
345347
assertThat(iterator.next()).isEqualTo(testConverter);
346348
assertThat(iterator.next()).isInstanceOf(StringMessageConverter.class);
347349
assertThat(iterator.next()).isInstanceOf(ByteArrayMessageConverter.class);
350+
assertThat(iterator.next()).isInstanceOf(KotlinSerializationJsonMessageConverter.class);
348351
assertThat(iterator.next()).isInstanceOf(MappingJackson2MessageConverter.class);
349352
}
350353

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public AllEncompassingFormHttpMessageConverter() {
8787
}
8888
}
8989

90+
if (kotlinSerializationJsonPresent) {
91+
addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
92+
}
9093
if (jackson2Present) {
9194
addPartConverter(new MappingJackson2HttpMessageConverter());
9295
}
@@ -96,9 +99,6 @@ else if (gsonPresent) {
9699
else if (jsonbPresent) {
97100
addPartConverter(new JsonbHttpMessageConverter());
98101
}
99-
else if (kotlinSerializationJsonPresent) {
100-
addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
101-
}
102102

103103
if (jackson2XmlPresent && !shouldIgnoreXml) {
104104
addPartConverter(new MappingJackson2XmlHttpMessageConverter());

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,9 @@ else if (jaxb2Present) {
175175
}
176176
}
177177

178+
if (kotlinSerializationJsonPresent) {
179+
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
180+
}
178181
if (jackson2Present) {
179182
this.messageConverters.add(new MappingJackson2HttpMessageConverter());
180183
}
@@ -184,9 +187,6 @@ else if (gsonPresent) {
184187
else if (jsonbPresent) {
185188
this.messageConverters.add(new JsonbHttpMessageConverter());
186189
}
187-
else if (kotlinSerializationJsonPresent) {
188-
this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
189-
}
190190

191191
if (jackson2SmilePresent) {
192192
this.messageConverters.add(new MappingJackson2SmileHttpMessageConverter());

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
import org.springframework.http.client.SimpleClientHttpRequestFactory;
5151
import org.springframework.http.converter.GenericHttpMessageConverter;
5252
import org.springframework.http.converter.HttpMessageConverter;
53+
import org.springframework.http.converter.json.KotlinSerializationJsonHttpMessageConverter;
54+
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
5355
import org.springframework.util.StreamUtils;
5456
import org.springframework.web.util.DefaultUriBuilderFactory;
5557

@@ -102,6 +104,16 @@ void setup() {
102104
template.setErrorHandler(errorHandler);
103105
}
104106

107+
@Test // gh-29008
108+
void defaultMessageConvertersWithKotlinSerialization() {
109+
RestTemplate restTemplate = new RestTemplate();
110+
List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();
111+
assertThat(httpMessageConverters).extracting("class").containsOnlyOnce(
112+
KotlinSerializationJsonHttpMessageConverter.class,
113+
MappingJackson2HttpMessageConverter.class
114+
);
115+
}
116+
105117
@Test
106118
void constructorPreconditions() {
107119
assertThatIllegalArgumentException()

0 commit comments

Comments
 (0)