diff --git a/spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java index a58288023fd..7f4b4a95258 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/support/AllEncompassingFormHttpMessageConverter.java @@ -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; /** * 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 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 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 addPartConverter(new MappingJackson2SmileHttpMessageConverter()); } + if (jackson2CborPresent) { + addPartConverter(new MappingJackson2CborHttpMessageConverter()); + } + if (jackson2YamlPresent) { addPartConverter(new MappingJackson2YamlHttpMessageConverter()); }