Browse Source

Add CBOR support to AllEncompassingFormHttpMessageConverter

Closes gh-32428
pull/32550/head
Sébastien Deleuze 2 years ago
parent
commit
db1010f9c9
  1. 11
      spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java

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

@ -18,6 +18,7 @@ package org.springframework.http.converter.support; @@ -18,6 +18,7 @@ package org.springframework.http.converter.support;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.cbor.KotlinSerializationCborHttpMessageConverter;
import org.springframework.http.converter.cbor.MappingJackson2CborHttpMessageConverter;
import org.springframework.http.converter.json.GsonHttpMessageConverter;
import org.springframework.http.converter.json.JsonbHttpMessageConverter;
import org.springframework.http.converter.json.KotlinSerializationJsonHttpMessageConverter;
@ -31,7 +32,8 @@ import org.springframework.util.ClassUtils; @@ -31,7 +32,8 @@ import org.springframework.util.ClassUtils;
/**
* Extension of {@link org.springframework.http.converter.FormHttpMessageConverter},
* adding support for XML and JSON-based parts.
* adding support for XML, JSON, Smile, CBOR, Protobuf and Yaml based parts when
* related libraries are present in the classpath.
*
* @author Rossen Stoyanchev
* @author Juergen Hoeller
@ -48,6 +50,8 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv @@ -48,6 +50,8 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
private static final boolean jackson2SmilePresent;
private static final boolean jackson2CborPresent;
private static final boolean jackson2YamlPresent;
private static final boolean gsonPresent;
@ -67,6 +71,7 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv @@ -67,6 +71,7 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
jackson2CborPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory", classLoader);
jackson2YamlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.yaml.YAMLFactory", classLoader);
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
jsonbPresent = ClassUtils.isPresent("jakarta.json.bind.Jsonb", classLoader);
@ -103,6 +108,10 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv @@ -103,6 +108,10 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
addPartConverter(new MappingJackson2SmileHttpMessageConverter());
}
if (jackson2CborPresent) {
addPartConverter(new MappingJackson2CborHttpMessageConverter());
}
if (jackson2YamlPresent) {
addPartConverter(new MappingJackson2YamlHttpMessageConverter());
}

Loading…
Cancel
Save