Class SerializationUtils

java.lang.Object
org.springframework.kafka.support.serializer.SerializationUtils

public final class SerializationUtils extends Object
Utilities for serialization.
Since:
2.5
Author:
Gary Russell
  • Field Details

    • DESERIALIZER_EXCEPTION_HEADER_PREFIX

      public static final String DESERIALIZER_EXCEPTION_HEADER_PREFIX
      Header name for deserialization exceptions.
      Since:
      2.8
      See Also:
    • KEY_DESERIALIZER_EXCEPTION_HEADER

      public static final String KEY_DESERIALIZER_EXCEPTION_HEADER
      Header name for deserialization exceptions.
      Since:
      2.8
      See Also:
    • VALUE_DESERIALIZER_EXCEPTION_HEADER

      public static final String VALUE_DESERIALIZER_EXCEPTION_HEADER
      Header name for deserialization exceptions.
      Since:
      2.8
      See Also:
  • Method Details

    • propertyToMethodInvokingFunction

      public static <P, T> BiFunction<P,org.apache.kafka.common.header.Headers,T> propertyToMethodInvokingFunction(String methodProperty, Class<P> payloadType, ClassLoader classLoader)
      Convert a property value (FQCN.methodName) to a BiFunction that takes a payload and headers and returns some value. The method must have parameters (P, Headers) or (P) and be declared as static.
      Type Parameters:
      P - The BiFunction first parameter type.
      T - The BiFunction return type.
      Parameters:
      methodProperty - the method name property.
      payloadType - the BiFunction first parameter type.
      classLoader - the class loader.
      Returns:
      the function.
    • deserializationException

      public static void deserializationException(org.apache.kafka.common.header.Headers headers, byte[] data, Exception ex, boolean isForKeyArg)
      Populate the record headers with a serialized DeserializationException.
      Parameters:
      headers - the headers.
      data - the data.
      ex - the exception.
      isForKeyArg - true if this is a key deserialization problem, otherwise value.
      Since:
      2.8
    • getExceptionFromHeader

      @Nullable public static DeserializationException getExceptionFromHeader(org.apache.kafka.clients.consumer.ConsumerRecord<?,?> record, String headerName, LogAccessor logger)
      Extract a DeserializationException from the supplied header name, if present.
      Parameters:
      record - the consumer record.
      headerName - the header name.
      logger - the logger for logging errors.
      Returns:
      the exception or null.
      Since:
      2.9.11
    • byteArrayToDeserializationException

      @Nullable public static DeserializationException byteArrayToDeserializationException(LogAccessor logger, org.apache.kafka.common.header.Header header)
      Convert a byte array containing a serialized DeserializationException to the DeserializationException.
      Parameters:
      logger - a log accessor to log errors.
      header - the header.
      Returns:
      the exception or null if deserialization fails.
      Since:
      2.9.11