Class AbstractJackson2MessageConverter
java.lang.Object
org.springframework.amqp.support.converter.AbstractMessageConverter
org.springframework.amqp.support.converter.AbstractJackson2MessageConverter
- All Implemented Interfaces:
MessageConverter,SmartMessageConverter,Aware,BeanClassLoaderAware
- Direct Known Subclasses:
Jackson2JsonMessageConverter,Jackson2XmlMessageConverter
@Deprecated(forRemoval=true,
since="4.0")
public abstract class AbstractJackson2MessageConverter
extends AbstractMessageConverter
implements BeanClassLoaderAware, SmartMessageConverter
Deprecated, for removal: This API element is subject to removal in a future version.
Abstract Jackson2 message converter.
- Since:
- 2.1
- Author:
- Mark Pollack, James Carr, Dave Syer, Sam Nelson, Andreas Asplund, Artem Bilan, Mohammad Hewedy, Gary Russell
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CharsetDeprecated, for removal: This API element is subject to removal in a future version.The charset used when convertingStringto/frombyte[].protected final org.apache.commons.logging.LogDeprecated, for removal: This API element is subject to removal in a future version.protected final com.fasterxml.jackson.databind.ObjectMapperDeprecated, for removal: This API element is subject to removal in a future version. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractJackson2MessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MimeType contentType, String... trustedPackages) Deprecated, for removal: This API element is subject to removal in a future version.Construct with the providedObjectMapperinstance. -
Method Summary
Modifier and TypeMethodDescriptionprotected MessagecreateMessage(Object objectToConvert, MessageProperties messageProperties) Deprecated, for removal: This API element is subject to removal in a future version.Crate a message from the payload object and message properties provided.protected MessagecreateMessage(Object objectToConvert, MessageProperties messageProperties, @Nullable Type genericType) Deprecated, for removal: This API element is subject to removal in a future version.Crate a message from the payload object and message properties provided.fromMessage(Message message) Deprecated, for removal: This API element is subject to removal in a future version.Convert from a Message to a Java object.fromMessage(Message message, @Nullable Object conversionHint) Deprecated, for removal: This API element is subject to removal in a future version.A variant ofMessageConverter.fromMessage(Message)which takes an extra conversion context as an argument.protected @Nullable ClassLoaderDeprecated, for removal: This API element is subject to removal in a future version.@Nullable ClassMapperDeprecated, for removal: This API element is subject to removal in a future version.Deprecated, for removal: This API element is subject to removal in a future version.Deprecated, for removal: This API element is subject to removal in a future version.protected MimeTypeDeprecated, for removal: This API element is subject to removal in a future version.Get the supported content type; only the subtype is checked when decoding, e.g.Deprecated, for removal: This API element is subject to removal in a future version.Return the type precedence.booleanDeprecated, for removal: This API element is subject to removal in a future version.Whether an explicit java type mapper has been provided.protected booleanDeprecated, for removal: This API element is subject to removal in a future version.voidsetAlwaysConvertToInferredType(boolean alwaysAttemptConversion) Deprecated, for removal: This API element is subject to removal in a future version.When false (default), fall back to type id headers if the type (or contents of a container type) is abstract.voidsetAssumeSupportedContentType(boolean assumeSupportedContentType) Deprecated, for removal: This API element is subject to removal in a future version.By default, the supported content type is assumed when there is no contentType property, or it is set to the default ('application/octet-stream').voidsetBeanClassLoader(ClassLoader classLoader) Deprecated, for removal: This API element is subject to removal in a future version.voidsetClassMapper(ClassMapper classMapper) Deprecated, for removal: This API element is subject to removal in a future version.voidsetDefaultCharset(@Nullable String defaultCharset) Deprecated, for removal: This API element is subject to removal in a future version.Specify the default charset to use when converting to or from text-based Message body content.voidsetJavaTypeMapper(Jackson2JavaTypeMapper javaTypeMapper) Deprecated, for removal: This API element is subject to removal in a future version.voidsetNullAsOptionalEmpty(boolean nullAsOptionalEmpty) Deprecated, for removal: This API element is subject to removal in a future version.When true, if jackson decodes the body asnullconvert toOptional.empty()instead of returning the original body.voidsetSupportedContentType(MimeType supportedContentType) Deprecated, for removal: This API element is subject to removal in a future version.Set the supported content type; only the subtype is checked when decoding, e.g.voidsetTypePrecedence(Jackson2JavaTypeMapper.TypePrecedence typePrecedence) Deprecated, for removal: This API element is subject to removal in a future version.Set the precedence for evaluating type information in message properties.voidsetUseProjectionForInterfaces(boolean useProjectionForInterfaces) Deprecated, for removal: This API element is subject to removal in a future version.Set to true to use Spring Data projection to create the object if the inferred parameter type is an interface.Methods inherited from class org.springframework.amqp.support.converter.AbstractMessageConverter
isCreateMessageIds, setCreateMessageIds, toMessage, toMessageMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.amqp.support.converter.MessageConverter
toMessage, toMessage
-
Field Details
-
DEFAULT_CHARSET
-
log
protected final org.apache.commons.logging.Log logDeprecated, for removal: This API element is subject to removal in a future version. -
objectMapper
protected final com.fasterxml.jackson.databind.ObjectMapper objectMapperDeprecated, for removal: This API element is subject to removal in a future version.
-
-
Constructor Details
-
AbstractJackson2MessageConverter
protected AbstractJackson2MessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MimeType contentType, String... trustedPackages) Deprecated, for removal: This API element is subject to removal in a future version.Construct with the providedObjectMapperinstance.- Parameters:
objectMapper- theObjectMapperto use.contentType- the supported content type; only the subtype is checked when decoding, e.g. */json, */xml. If this contains a charset parameter, when encoding, the contentType header will not be set, when decoding, the raw bytes are passed to Jackson which can dynamically determine the encoding; otherwise the contentEncoding or default charset is used.trustedPackages- the trusted Java packages for deserialization- See Also:
-
-
Method Details
-
getSupportedContentType
Deprecated, for removal: This API element is subject to removal in a future version.Get the supported content type; only the subtype is checked when decoding, e.g. */json, */xml. If this contains a charset parameter, when encoding, the contentType header will not be set, when decoding, the raw bytes are passed to Jackson which can dynamically determine the encoding; otherwise the contentEncoding or default charset is used.- Returns:
- the supportedContentType
- Since:
- 2.4.3
-
setSupportedContentType
Deprecated, for removal: This API element is subject to removal in a future version.Set the supported content type; only the subtype is checked when decoding, e.g. */json, */xml. If this contains a charset parameter, when encoding, the contentType header will not be set, when decoding, the raw bytes are passed to Jackson which can dynamically determine the encoding; otherwise the contentEncoding or default charset is used.- Parameters:
supportedContentType- the supportedContentType to set.- Since:
- 2.4.3
-
setNullAsOptionalEmpty
public void setNullAsOptionalEmpty(boolean nullAsOptionalEmpty) Deprecated, for removal: This API element is subject to removal in a future version.When true, if jackson decodes the body asnullconvert toOptional.empty()instead of returning the original body. Default false.- Parameters:
nullAsOptionalEmpty- true to return empty.- Since:
- 2.4.7
-
getClassMapper
Deprecated, for removal: This API element is subject to removal in a future version. -
setClassMapper
Deprecated, for removal: This API element is subject to removal in a future version. -
setDefaultCharset
Deprecated, for removal: This API element is subject to removal in a future version.Specify the default charset to use when converting to or from text-based Message body content. If not specified, the charset will be "UTF-8".- Parameters:
defaultCharset- The default charset.
-
getDefaultCharset
Deprecated, for removal: This API element is subject to removal in a future version. -
setBeanClassLoader
Deprecated, for removal: This API element is subject to removal in a future version.- Specified by:
setBeanClassLoaderin interfaceBeanClassLoaderAware
-
getClassLoader
Deprecated, for removal: This API element is subject to removal in a future version. -
getJavaTypeMapper
Deprecated, for removal: This API element is subject to removal in a future version. -
isTypeMapperSet
public boolean isTypeMapperSet()Deprecated, for removal: This API element is subject to removal in a future version.Whether an explicit java type mapper has been provided.- Returns:
- false if the default type mapper is being used.
- Since:
- 2.2
- See Also:
-
setJavaTypeMapper
Deprecated, for removal: This API element is subject to removal in a future version. -
getTypePrecedence
Deprecated, for removal: This API element is subject to removal in a future version.Return the type precedence.- Returns:
- the precedence.
- See Also:
-
setTypePrecedence
Deprecated, for removal: This API element is subject to removal in a future version.Set the precedence for evaluating type information in message properties. When using@RabbitListenerat the method level, the framework attempts to determine the target type for payload conversion from the method signature. If so, this type is provided in theinferredArgumentTypemessage property.By default, if the type is concrete (not abstract, not an interface), this will be used ahead of type information provided in the
__TypeId__and associated headers provided by the sender.If you wish to force the use of the
__TypeId__and associated headers (such as when the actual type is a subclass of the method argument type), set the precedence toJackson2JavaTypeMapper.TypePrecedence.TYPE_ID.- Parameters:
typePrecedence- the precedence.- See Also:
-
setAlwaysConvertToInferredType
public void setAlwaysConvertToInferredType(boolean alwaysAttemptConversion) Deprecated, for removal: This API element is subject to removal in a future version.When false (default), fall back to type id headers if the type (or contents of a container type) is abstract. Set to true if conversion should always be attempted - perhaps because a custom deserializer has been configured on theObjectMapper. If the attempt fails, fall back to headers.- Parameters:
alwaysAttemptConversion- true to attempt.- Since:
- 2.2.8
-
isUseProjectionForInterfaces
protected boolean isUseProjectionForInterfaces()Deprecated, for removal: This API element is subject to removal in a future version. -
setUseProjectionForInterfaces
public void setUseProjectionForInterfaces(boolean useProjectionForInterfaces) Deprecated, for removal: This API element is subject to removal in a future version.Set to true to use Spring Data projection to create the object if the inferred parameter type is an interface.- Parameters:
useProjectionForInterfaces- true to use projection.- Since:
- 2.2
-
setAssumeSupportedContentType
public void setAssumeSupportedContentType(boolean assumeSupportedContentType) Deprecated, for removal: This API element is subject to removal in a future version.By default, the supported content type is assumed when there is no contentType property, or it is set to the default ('application/octet-stream'). Set to 'false' to revert to the previous behavior of returning an unconverted 'byte[]' when this condition exists.- Parameters:
assumeSupportedContentType- set false to not assume the content type is supported.- Since:
- 2.2
-
fromMessage
Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:MessageConverterConvert from a Message to a Java object.- Specified by:
fromMessagein interfaceMessageConverter- Parameters:
message- the message to convert- Returns:
- the converted Java object
- Throws:
MessageConversionException- in case of conversion failure
-
fromMessage
public Object fromMessage(Message message, @Nullable Object conversionHint) throws MessageConversionException Deprecated, for removal: This API element is subject to removal in a future version.A variant ofMessageConverter.fromMessage(Message)which takes an extra conversion context as an argument.- Specified by:
fromMessagein interfaceSmartMessageConverter- Parameters:
message- the input message.conversionHint- The conversionHint must be aParameterizedTypeReference.- Returns:
- the result of the conversion, or
nullif the converter cannot perform the conversion. - Throws:
MessageConversionException- if the conversion fails.- See Also:
-
createMessage
protected Message createMessage(Object objectToConvert, MessageProperties messageProperties) throws MessageConversionException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractMessageConverterCrate a message from the payload object and message properties provided. The message id will be added to the properties if necessary later.- Specified by:
createMessagein classAbstractMessageConverter- Parameters:
objectToConvert- the payload.messageProperties- the message properties (headers).- Returns:
- a message.
- Throws:
MessageConversionException
-
createMessage
protected Message createMessage(Object objectToConvert, MessageProperties messageProperties, @Nullable Type genericType) throws MessageConversionException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractMessageConverterCrate a message from the payload object and message properties provided. The message id will be added to the properties if necessary later.- Overrides:
createMessagein classAbstractMessageConverter- Parameters:
objectToConvert- the payloadmessageProperties- the message properties (headers)genericType- the type to convert from - used to populate type headers.- Returns:
- a message
- Throws:
MessageConversionException
-
AbstractJacksonMessageConverterfor Jackson 3.