@ -17,6 +17,7 @@
@@ -17,6 +17,7 @@
package org.springframework.boot.http.converter.autoconfigure ;
import java.nio.charset.StandardCharsets ;
import java.util.List ;
import com.google.gson.Gson ;
import jakarta.json.bind.Jsonb ;
@ -131,7 +132,6 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -131,7 +132,6 @@ class HttpMessageConvertersAutoConfigurationTests {
assertConverterBeanRegisteredWithHttpMessageConverters ( context , GsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JsonbHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JacksonJsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( KotlinSerializationJsonHttpMessageConverter . class ) ;
} ) ;
}
@ -163,7 +163,6 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -163,7 +163,6 @@ class HttpMessageConvertersAutoConfigurationTests {
assertConverterBeanRegisteredWithHttpMessageConverters ( context , JsonbHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( GsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JacksonJsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( KotlinSerializationJsonHttpMessageConverter . class ) ;
} ) ;
}
@ -184,17 +183,15 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -184,17 +183,15 @@ class HttpMessageConvertersAutoConfigurationTests {
}
@Test
void kotlinSerializationCanBePreferred ( ) {
allOptionsRunner ( ) . withPropertyValues ( "spring.http.converters.preferred-json-mapper:kotlin-serialization" )
. run ( ( context ) - > {
assertConverterBeanExists ( context , KotlinSerializationJsonHttpMessageConverter . class ,
"kotlinSerializationJsonHttpMessageConverter" ) ;
assertConverterBeanRegisteredWithHttpMessageConverters ( context ,
KotlinSerializationJsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( GsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JsonbHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JacksonJsonHttpMessageConverter . class ) ;
} ) ;
void kotlinSerializationOrderedAheadOfJsonConverter ( ) {
allOptionsRunner ( ) . run ( ( context ) - > {
assertConverterBeanExists ( context , KotlinSerializationJsonHttpMessageConverter . class ,
"kotlinSerializationJsonHttpMessageConverter" ) ;
assertConverterBeanRegisteredWithHttpMessageConverters ( context ,
KotlinSerializationJsonHttpMessageConverter . class ) ;
assertConvertersBeanRegisteredWithHttpMessageConverters ( context ,
List . of ( KotlinSerializationJsonHttpMessageConverter . class , JacksonJsonHttpMessageConverter . class ) ) ;
} ) ;
}
@Test
@ -240,7 +237,6 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -240,7 +237,6 @@ class HttpMessageConvertersAutoConfigurationTests {
assertConverterBeanRegisteredWithHttpMessageConverters ( context , JacksonJsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( GsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JsonbHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( KotlinSerializationJsonHttpMessageConverter . class ) ;
} ) ;
}
@ -251,7 +247,6 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -251,7 +247,6 @@ class HttpMessageConvertersAutoConfigurationTests {
assertConverterBeanExists ( context , GsonHttpMessageConverter . class , "gsonHttpMessageConverter" ) ;
assertConverterBeanRegisteredWithHttpMessageConverters ( context , GsonHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( JsonbHttpMessageConverter . class ) ;
assertThat ( context ) . doesNotHaveBean ( KotlinSerializationJsonHttpMessageConverter . class ) ;
} ) ;
}
@ -327,6 +322,15 @@ class HttpMessageConvertersAutoConfigurationTests {
@@ -327,6 +322,15 @@ class HttpMessageConvertersAutoConfigurationTests {
assertThat ( converters . getConverters ( ) ) . contains ( converter ) ;
}
private void assertConvertersBeanRegisteredWithHttpMessageConverters ( AssertableApplicationContext context ,
List < Class < ? extends HttpMessageConverter < ? > > > types ) {
List < ? extends HttpMessageConverter < ? > > converterInstances = types . stream ( ) . map ( context : : getBean ) . toList ( ) ;
HttpMessageConverters converters = context . getBean ( HttpMessageConverters . class ) ;
assertThat ( converters . getConverters ( ) ) . containsSubsequence ( converterInstances ) ;
}
@Configuration ( proxyBeanMethods = false )
static class JacksonJsonMapperConfig {