Merge branch '5.3.x'
This commit is contained in:
		
						commit
						7214b1e03c
					
				| 
						 | 
					@ -465,6 +465,9 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
 | 
				
			||||||
		if (registerDefaults) {
 | 
							if (registerDefaults) {
 | 
				
			||||||
			converters.add(new StringMessageConverter());
 | 
								converters.add(new StringMessageConverter());
 | 
				
			||||||
			converters.add(new ByteArrayMessageConverter());
 | 
								converters.add(new ByteArrayMessageConverter());
 | 
				
			||||||
 | 
								if (kotlinSerializationJsonPresent) {
 | 
				
			||||||
 | 
									converters.add(new KotlinSerializationJsonMessageConverter());
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			if (jackson2Present) {
 | 
								if (jackson2Present) {
 | 
				
			||||||
				converters.add(createJacksonConverter());
 | 
									converters.add(createJacksonConverter());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -474,9 +477,6 @@ public abstract class AbstractMessageBrokerConfiguration implements ApplicationC
 | 
				
			||||||
			else if (jsonbPresent) {
 | 
								else if (jsonbPresent) {
 | 
				
			||||||
				converters.add(new JsonbMessageConverter());
 | 
									converters.add(new JsonbMessageConverter());
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			else if (kotlinSerializationJsonPresent) {
 | 
					 | 
				
			||||||
				converters.add(new KotlinSerializationJsonMessageConverter());
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return new CompositeMessageConverter(converters);
 | 
							return new CompositeMessageConverter(converters);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,6 +39,7 @@ import org.springframework.messaging.converter.ByteArrayMessageConverter;
 | 
				
			||||||
import org.springframework.messaging.converter.CompositeMessageConverter;
 | 
					import org.springframework.messaging.converter.CompositeMessageConverter;
 | 
				
			||||||
import org.springframework.messaging.converter.ContentTypeResolver;
 | 
					import org.springframework.messaging.converter.ContentTypeResolver;
 | 
				
			||||||
import org.springframework.messaging.converter.DefaultContentTypeResolver;
 | 
					import org.springframework.messaging.converter.DefaultContentTypeResolver;
 | 
				
			||||||
 | 
					import org.springframework.messaging.converter.KotlinSerializationJsonMessageConverter;
 | 
				
			||||||
import org.springframework.messaging.converter.MappingJackson2MessageConverter;
 | 
					import org.springframework.messaging.converter.MappingJackson2MessageConverter;
 | 
				
			||||||
import org.springframework.messaging.converter.MessageConverter;
 | 
					import org.springframework.messaging.converter.MessageConverter;
 | 
				
			||||||
import org.springframework.messaging.converter.StringMessageConverter;
 | 
					import org.springframework.messaging.converter.StringMessageConverter;
 | 
				
			||||||
| 
						 | 
					@ -282,12 +283,13 @@ public class MessageBrokerConfigurationTests {
 | 
				
			||||||
		CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
 | 
							CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		List<MessageConverter> converters = compositeConverter.getConverters();
 | 
							List<MessageConverter> converters = compositeConverter.getConverters();
 | 
				
			||||||
		assertThat(converters).hasSize(3);
 | 
							assertThat(converters).hasSize(4);
 | 
				
			||||||
		assertThat(converters.get(0)).isInstanceOf(StringMessageConverter.class);
 | 
							assertThat(converters.get(0)).isInstanceOf(StringMessageConverter.class);
 | 
				
			||||||
		assertThat(converters.get(1)).isInstanceOf(ByteArrayMessageConverter.class);
 | 
							assertThat(converters.get(1)).isInstanceOf(ByteArrayMessageConverter.class);
 | 
				
			||||||
		assertThat(converters.get(2)).isInstanceOf(MappingJackson2MessageConverter.class);
 | 
							assertThat(converters.get(2)).isInstanceOf(KotlinSerializationJsonMessageConverter.class);
 | 
				
			||||||
 | 
							assertThat(converters.get(3)).isInstanceOf(MappingJackson2MessageConverter.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ContentTypeResolver resolver = ((MappingJackson2MessageConverter) converters.get(2)).getContentTypeResolver();
 | 
							ContentTypeResolver resolver = ((MappingJackson2MessageConverter) converters.get(3)).getContentTypeResolver();
 | 
				
			||||||
		assertThat(((DefaultContentTypeResolver) resolver).getDefaultMimeType()).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
 | 
							assertThat(((DefaultContentTypeResolver) resolver).getDefaultMimeType()).isEqualTo(MimeTypeUtils.APPLICATION_JSON);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -340,11 +342,12 @@ public class MessageBrokerConfigurationTests {
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
		CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
 | 
							CompositeMessageConverter compositeConverter = config.brokerMessageConverter();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		assertThat(compositeConverter.getConverters()).hasSize(4);
 | 
							assertThat(compositeConverter.getConverters()).hasSize(5);
 | 
				
			||||||
		Iterator<MessageConverter> iterator = compositeConverter.getConverters().iterator();
 | 
							Iterator<MessageConverter> iterator = compositeConverter.getConverters().iterator();
 | 
				
			||||||
		assertThat(iterator.next()).isEqualTo(testConverter);
 | 
							assertThat(iterator.next()).isEqualTo(testConverter);
 | 
				
			||||||
		assertThat(iterator.next()).isInstanceOf(StringMessageConverter.class);
 | 
							assertThat(iterator.next()).isInstanceOf(StringMessageConverter.class);
 | 
				
			||||||
		assertThat(iterator.next()).isInstanceOf(ByteArrayMessageConverter.class);
 | 
							assertThat(iterator.next()).isInstanceOf(ByteArrayMessageConverter.class);
 | 
				
			||||||
 | 
							assertThat(iterator.next()).isInstanceOf(KotlinSerializationJsonMessageConverter.class);
 | 
				
			||||||
		assertThat(iterator.next()).isInstanceOf(MappingJackson2MessageConverter.class);
 | 
							assertThat(iterator.next()).isInstanceOf(MappingJackson2MessageConverter.class);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -87,6 +87,9 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (kotlinSerializationJsonPresent) {
 | 
				
			||||||
 | 
								addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if (jackson2Present) {
 | 
							if (jackson2Present) {
 | 
				
			||||||
			addPartConverter(new MappingJackson2HttpMessageConverter());
 | 
								addPartConverter(new MappingJackson2HttpMessageConverter());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -96,9 +99,6 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
 | 
				
			||||||
		else if (jsonbPresent) {
 | 
							else if (jsonbPresent) {
 | 
				
			||||||
			addPartConverter(new JsonbHttpMessageConverter());
 | 
								addPartConverter(new JsonbHttpMessageConverter());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else if (kotlinSerializationJsonPresent) {
 | 
					 | 
				
			||||||
			addPartConverter(new KotlinSerializationJsonHttpMessageConverter());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (jackson2XmlPresent && !shouldIgnoreXml) {
 | 
							if (jackson2XmlPresent && !shouldIgnoreXml) {
 | 
				
			||||||
			addPartConverter(new MappingJackson2XmlHttpMessageConverter());
 | 
								addPartConverter(new MappingJackson2XmlHttpMessageConverter());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -175,6 +175,9 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (kotlinSerializationJsonPresent) {
 | 
				
			||||||
 | 
								this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if (jackson2Present) {
 | 
							if (jackson2Present) {
 | 
				
			||||||
			this.messageConverters.add(new MappingJackson2HttpMessageConverter());
 | 
								this.messageConverters.add(new MappingJackson2HttpMessageConverter());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -184,9 +187,6 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
 | 
				
			||||||
		else if (jsonbPresent) {
 | 
							else if (jsonbPresent) {
 | 
				
			||||||
			this.messageConverters.add(new JsonbHttpMessageConverter());
 | 
								this.messageConverters.add(new JsonbHttpMessageConverter());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		else if (kotlinSerializationJsonPresent) {
 | 
					 | 
				
			||||||
			this.messageConverters.add(new KotlinSerializationJsonHttpMessageConverter());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (jackson2SmilePresent) {
 | 
							if (jackson2SmilePresent) {
 | 
				
			||||||
			this.messageConverters.add(new MappingJackson2SmileHttpMessageConverter());
 | 
								this.messageConverters.add(new MappingJackson2SmileHttpMessageConverter());
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,8 @@ import org.springframework.http.client.ClientHttpResponse;
 | 
				
			||||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
 | 
					import org.springframework.http.client.SimpleClientHttpRequestFactory;
 | 
				
			||||||
import org.springframework.http.converter.GenericHttpMessageConverter;
 | 
					import org.springframework.http.converter.GenericHttpMessageConverter;
 | 
				
			||||||
import org.springframework.http.converter.HttpMessageConverter;
 | 
					import org.springframework.http.converter.HttpMessageConverter;
 | 
				
			||||||
 | 
					import org.springframework.http.converter.json.KotlinSerializationJsonHttpMessageConverter;
 | 
				
			||||||
 | 
					import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 | 
				
			||||||
import org.springframework.util.StreamUtils;
 | 
					import org.springframework.util.StreamUtils;
 | 
				
			||||||
import org.springframework.web.util.DefaultUriBuilderFactory;
 | 
					import org.springframework.web.util.DefaultUriBuilderFactory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -102,6 +104,16 @@ class RestTemplateTests {
 | 
				
			||||||
		template.setErrorHandler(errorHandler);
 | 
							template.setErrorHandler(errorHandler);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Test // gh-29008
 | 
				
			||||||
 | 
						void defaultMessageConvertersWithKotlinSerialization() {
 | 
				
			||||||
 | 
							RestTemplate restTemplate = new RestTemplate();
 | 
				
			||||||
 | 
							List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();
 | 
				
			||||||
 | 
							assertThat(httpMessageConverters).extracting("class").containsOnlyOnce(
 | 
				
			||||||
 | 
								KotlinSerializationJsonHttpMessageConverter.class,
 | 
				
			||||||
 | 
								MappingJackson2HttpMessageConverter.class
 | 
				
			||||||
 | 
							);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Test
 | 
						@Test
 | 
				
			||||||
	void constructorPreconditions() {
 | 
						void constructorPreconditions() {
 | 
				
			||||||
		assertThatIllegalArgumentException()
 | 
							assertThatIllegalArgumentException()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue