Skip to content

Commit db1010f

Browse files
committed
Add CBOR support to AllEncompassingFormHttpMessageConverter
Closes gh-32428
1 parent cf87441 commit db1010f

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

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

+10-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.springframework.http.converter.FormHttpMessageConverter;
2020
import org.springframework.http.converter.cbor.KotlinSerializationCborHttpMessageConverter;
21+
import org.springframework.http.converter.cbor.MappingJackson2CborHttpMessageConverter;
2122
import org.springframework.http.converter.json.GsonHttpMessageConverter;
2223
import org.springframework.http.converter.json.JsonbHttpMessageConverter;
2324
import org.springframework.http.converter.json.KotlinSerializationJsonHttpMessageConverter;
@@ -31,7 +32,8 @@
3132

3233
/**
3334
* Extension of {@link org.springframework.http.converter.FormHttpMessageConverter},
34-
* adding support for XML and JSON-based parts.
35+
* adding support for XML, JSON, Smile, CBOR, Protobuf and Yaml based parts when
36+
* related libraries are present in the classpath.
3537
*
3638
* @author Rossen Stoyanchev
3739
* @author Juergen Hoeller
@@ -48,6 +50,8 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
4850

4951
private static final boolean jackson2SmilePresent;
5052

53+
private static final boolean jackson2CborPresent;
54+
5155
private static final boolean jackson2YamlPresent;
5256

5357
private static final boolean gsonPresent;
@@ -67,6 +71,7 @@ public class AllEncompassingFormHttpMessageConverter extends FormHttpMessageConv
6771
ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
6872
jackson2XmlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.xml.XmlMapper", classLoader);
6973
jackson2SmilePresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.smile.SmileFactory", classLoader);
74+
jackson2CborPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.cbor.CBORFactory", classLoader);
7075
jackson2YamlPresent = ClassUtils.isPresent("com.fasterxml.jackson.dataformat.yaml.YAMLFactory", classLoader);
7176
gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
7277
jsonbPresent = ClassUtils.isPresent("jakarta.json.bind.Jsonb", classLoader);
@@ -103,6 +108,10 @@ else if (jsonbPresent) {
103108
addPartConverter(new MappingJackson2SmileHttpMessageConverter());
104109
}
105110

111+
if (jackson2CborPresent) {
112+
addPartConverter(new MappingJackson2CborHttpMessageConverter());
113+
}
114+
106115
if (jackson2YamlPresent) {
107116
addPartConverter(new MappingJackson2YamlHttpMessageConverter());
108117
}

0 commit comments

Comments
 (0)