Package io.temporal.common.converter
Class JacksonJsonPayloadConverter
- java.lang.Object
-
- io.temporal.common.converter.JacksonJsonPayloadConverter
-
- All Implemented Interfaces:
PayloadConverter
public class JacksonJsonPayloadConverter extends java.lang.Object implements PayloadConverter
-
-
Constructor Summary
Constructors Constructor Description JacksonJsonPayloadConverter()JacksonJsonPayloadConverter(com.fasterxml.jackson.databind.ObjectMapper mapper)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> TfromData(io.temporal.api.common.v1.Payload content, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType)Implements conversion of a single value.java.lang.StringgetEncodingType()EachPayloadConverterhas an Encoding Type that it handles.static com.fasterxml.jackson.databind.ObjectMappernewDefaultObjectMapper()Can be used as a starting point for custom user configurations of ObjectMapper.static voidsetDefaultAsJackson3(boolean defaultAsJackson3, boolean jackson2Compat)Opts in to or out of using Jackson 3.x as the default JSON payload converter.java.util.Optional<io.temporal.api.common.v1.Payload>toData(java.lang.Object value)Implements conversion of a list of values.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.temporal.common.converter.PayloadConverter
withContext
-
-
-
-
Method Detail
-
setDefaultAsJackson3
@Experimental public static void setDefaultAsJackson3(boolean defaultAsJackson3, boolean jackson2Compat)
Opts in to or out of using Jackson 3.x as the default JSON payload converter. When enabled, instances created via the default constructor will delegate all serialization/deserialization to aJackson3JsonPayloadConverter.This applies globally, including to the converter in
DefaultDataConverter.STANDARD_PAYLOAD_CONVERTERS. Call this method early in your application, before creating any Temporal clients.Requires Java 17+ and
tools.jackson.core:jackson-databind:3.xon the classpath.- Parameters:
defaultAsJackson3-trueto delegate to Jackson 3,falseto revert to Jackson 2jackson2Compat- iftrue, the Jackson 3 converter is configured with Jackson 2.x default behaviors for maximum wire compatibility. Iffalse, Jackson 3.x native defaults are used. Only relevant whendefaultAsJackson3istrue.- Throws:
java.lang.IllegalStateException- if Jackson 3 is not available- See Also:
Jackson3JsonPayloadConverter
-
newDefaultObjectMapper
public static com.fasterxml.jackson.databind.ObjectMapper newDefaultObjectMapper()
Can be used as a starting point for custom user configurations of ObjectMapper.- Returns:
- a default configuration of
ObjectMapperused byJacksonJsonPayloadConverter.
-
getEncodingType
public java.lang.String getEncodingType()
Description copied from interface:PayloadConverterEachPayloadConverterhas an Encoding Type that it handles. EachPayloadConvertershould add the information about its Encoding Type into thePayloadit produces insidePayloadConverter.toData(Object)by associating it with theEncodingKeys.METADATA_ENCODING_KEYkey attached to thePayload's Metadata usingPayload.Builder.putMetadata(String, ByteString).- Specified by:
getEncodingTypein interfacePayloadConverter- Returns:
- encoding type that this converter handles.
-
toData
public java.util.Optional<io.temporal.api.common.v1.Payload> toData(java.lang.Object value) throws DataConverterExceptionDescription copied from interface:PayloadConverterImplements conversion of a list of values.- Specified by:
toDatain interfacePayloadConverter- Parameters:
value- Java value to convert.- Returns:
- converted value
- Throws:
DataConverterException- if conversion of the value passed as parameter failed for any reason.- See Also:
getEncodingType javadoc for an important implementation detail
-
fromData
public <T> T fromData(io.temporal.api.common.v1.Payload content, java.lang.Class<T> valueClass, java.lang.reflect.Type valueType) throws DataConverterExceptionDescription copied from interface:PayloadConverterImplements conversion of a single value.- Specified by:
fromDatain interfacePayloadConverter- Parameters:
content- Serialized value to convert to a Java object.valueClass- type of the value stored in thecontentvalueType- generic type of the value stored in thecontent- Returns:
- converted Java object
- Throws:
DataConverterException- if conversion of the data passed as parameter failed for any reason.
-
-