Class SerializerMessageConverter

java.lang.Object
org.springframework.messaging.converter.AbstractMessageConverter
de.iip_ecosphere.platform.transport.spring.SerializerMessageConverter
All Implemented Interfaces:
org.springframework.messaging.converter.MessageConverter, org.springframework.messaging.converter.SmartMessageConverter

public class SerializerMessageConverter extends org.springframework.messaging.converter.AbstractMessageConverter
Generic Spring Cloud Stream message converter for SerializerRegistry. Register your (generated) serializers at startup time of the application. Applied to streams with the correct mime type, e.g., via spring.cloud.stream.default.contentType=application/ser-string.
Author:
Holger Eichelberger, SSE
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final de.iip_ecosphere.platform.support.logging.Logger
     
    static final org.springframework.util.MimeType
    The default mime type for IIP-Ecosphere serialized data types via the transport layer.
    static final org.springframework.util.MimeType
     

    Fields inherited from class org.springframework.messaging.converter.AbstractMessageConverter

    logger
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates an instance for MIME_TYPE and MIME_TYPE_FALLBACK.
    SerializerMessageConverter(org.springframework.util.MimeType mimeType)
    Creates an instance for a given mime type.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected Object
    convertFromInternal(org.springframework.messaging.Message<?> message, Class<?> targetClass, Object conversionHint)
     
    protected Object
    convertToInternal(Object payload, org.springframework.messaging.MessageHeaders headers, Object conversionHint)
     
    private <T> Object
    serialize(T payload)
    Serializes the given payload.
    static <T> void
    serializeAndSend(org.springframework.cloud.stream.function.StreamBridge streamBridge, String bindingName, T payload)
    "Manual" serialization and sending over a binding with useNativeEncoding=false.
    protected boolean
    supports(Class<?> clazz)
     

    Methods inherited from class org.springframework.messaging.converter.AbstractMessageConverter

    addSupportedMimeTypes, canConvertFrom, canConvertTo, fromMessage, fromMessage, getContentTypeResolver, getDefaultContentType, getMimeType, getSerializedPayloadClass, getSupportedMimeTypes, isStrictContentTypeMatch, setContentTypeResolver, setSerializedPayloadClass, setStrictContentTypeMatch, supportsMimeType, toMessage, toMessage

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MIME_TYPE

      public static final org.springframework.util.MimeType MIME_TYPE
      The default mime type for IIP-Ecosphere serialized data types via the transport layer.
    • MIME_TYPE_FALLBACK

      public static final org.springframework.util.MimeType MIME_TYPE_FALLBACK
    • LOGGER

      private static final de.iip_ecosphere.platform.support.logging.Logger LOGGER
  • Constructor Details

    • SerializerMessageConverter

      public SerializerMessageConverter()
      Creates an instance for MIME_TYPE and MIME_TYPE_FALLBACK.
    • SerializerMessageConverter

      public SerializerMessageConverter(org.springframework.util.MimeType mimeType)
      Creates an instance for a given mime type. The mime type shall be defined based on the used serializers.
      Parameters:
      mimeType - the mime type
  • Method Details

    • supports

      protected boolean supports(Class<?> clazz)
      Specified by:
      supports in class org.springframework.messaging.converter.AbstractMessageConverter
    • convertFromInternal

      protected Object convertFromInternal(org.springframework.messaging.Message<?> message, Class<?> targetClass, Object conversionHint)
      Overrides:
      convertFromInternal in class org.springframework.messaging.converter.AbstractMessageConverter
    • convertToInternal

      protected Object convertToInternal(Object payload, org.springframework.messaging.MessageHeaders headers, Object conversionHint)
      Overrides:
      convertToInternal in class org.springframework.messaging.converter.AbstractMessageConverter
    • serialize

      private <T> Object serialize(T payload)
      Serializes the given payload.
      Type Parameters:
      T - the type of the payload
      Parameters:
      payload - the payload to be serialized
      Returns:
      the serialized payload as byte[] wire format
    • serializeAndSend

      public static <T> void serializeAndSend(org.springframework.cloud.stream.function.StreamBridge streamBridge, String bindingName, T payload)
      "Manual" serialization and sending over a binding with useNativeEncoding=false.
      Type Parameters:
      T - the type of the payload
      Parameters:
      streamBridge - the stream bridge to send to
      bindingName - the binding name to be used as channel
      payload - the payload to send