Support CBOR and Protobuf with Kotlin Serialization
This commit introduces support for CBOR and Protobuf using Kotlin serialization. Support comes in the form of Encoder/Decoder as well as HttpMessageConverters. Seperate abstract base classes supply support for binary and string (de)serialization. The exising JSON codecs and message converters have been migrated to use the new base classes. Closes gh-27628
This commit is contained in:
committed by
Arjen Poutsma
parent
b6c2e8de23
commit
b8243e6f84
@@ -83,6 +83,7 @@ import static org.springframework.core.ResolvableType.forClassWithGenerics;
|
||||
import static org.springframework.http.MediaType.APPLICATION_FORM_URLENCODED;
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON;
|
||||
import static org.springframework.http.MediaType.APPLICATION_OCTET_STREAM;
|
||||
import static org.springframework.http.MediaType.APPLICATION_PROTOBUF;
|
||||
import static org.springframework.http.MediaType.APPLICATION_XML;
|
||||
import static org.springframework.http.MediaType.IMAGE_PNG;
|
||||
import static org.springframework.http.MediaType.TEXT_PLAIN;
|
||||
@@ -152,7 +153,7 @@ public class WebFluxConfigurationSupportTests {
|
||||
assertHasMessageReader(readers, forClass(ByteBuffer.class), APPLICATION_OCTET_STREAM);
|
||||
assertHasMessageReader(readers, forClass(String.class), TEXT_PLAIN);
|
||||
assertHasMessageReader(readers, forClass(Resource.class), IMAGE_PNG);
|
||||
assertHasMessageReader(readers, forClass(Message.class), new MediaType("application", "x-protobuf"));
|
||||
assertHasMessageReader(readers, forClass(Message.class), APPLICATION_PROTOBUF);
|
||||
assertHasMessageReader(readers, multiValueMapType, APPLICATION_FORM_URLENCODED);
|
||||
assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_XML);
|
||||
assertHasMessageReader(readers, forClass(TestBean.class), APPLICATION_JSON);
|
||||
@@ -205,7 +206,7 @@ public class WebFluxConfigurationSupportTests {
|
||||
assertHasMessageWriter(writers, forClass(ByteBuffer.class), APPLICATION_OCTET_STREAM);
|
||||
assertHasMessageWriter(writers, forClass(String.class), TEXT_PLAIN);
|
||||
assertHasMessageWriter(writers, forClass(Resource.class), IMAGE_PNG);
|
||||
assertHasMessageWriter(writers, forClass(Message.class), new MediaType("application", "x-protobuf"));
|
||||
assertHasMessageWriter(writers, forClass(Message.class), APPLICATION_PROTOBUF);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), APPLICATION_XML);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), APPLICATION_JSON);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), new MediaType("application", "x-jackson-smile"));
|
||||
@@ -233,7 +234,7 @@ public class WebFluxConfigurationSupportTests {
|
||||
assertHasMessageWriter(writers, forClass(ByteBuffer.class), APPLICATION_OCTET_STREAM);
|
||||
assertHasMessageWriter(writers, forClass(String.class), TEXT_PLAIN);
|
||||
assertHasMessageWriter(writers, forClass(Resource.class), IMAGE_PNG);
|
||||
assertHasMessageWriter(writers, forClass(Message.class), new MediaType("application", "x-protobuf"));
|
||||
assertHasMessageWriter(writers, forClass(Message.class), APPLICATION_PROTOBUF);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), APPLICATION_XML);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), APPLICATION_JSON);
|
||||
assertHasMessageWriter(writers, forClass(TestBean.class), new MediaType("application", "x-jackson-smile"));
|
||||
|
||||
Reference in New Issue
Block a user