Interface Message<T>

Type Parameters:
T - The type of the message payload.

public interface Message<T>
A message envelope.

Messaging providers may provide their own sub classes of this type, in order to allow messaging provider specific information to be passed to and from applications.

  • Method Summary

    Modifier and Type
    Method
    Description
    ack()
    Acknowledge this message.
     
    static <T> Message<T>
    of(T payload)
    Create a message with the given payload.
    static <T> Message<T>
    of(T payload, Supplier<CompletionStage<Void>> ack)
    Create a message with the given payload and ack function.
    default <C> C
    unwrap(Class<C> unwrapType)
    Returns an object of the specified type to allow access to the connector-specific Message implementation, and other classes.
  • Method Details

    • of

      static <T> Message<T> of(T payload)
      Create a message with the given payload.
      Type Parameters:
      T - The type of payload
      Parameters:
      payload - The payload.
      Returns:
      A message with the given payload, and a no-op ack function.
    • of

      static <T> Message<T> of(T payload, Supplier<CompletionStage<Void>> ack)
      Create a message with the given payload and ack function.
      Type Parameters:
      T - the type of payload
      Parameters:
      payload - The payload.
      ack - The ack function, this will be invoked when the returned messages ack() method is invoked.
      Returns:
      A message with the given payload and ack function.
    • getPayload

      T getPayload()
      Returns:
      The payload for this message.
    • ack

      default CompletionStage<Void> ack()
      Acknowledge this message.
      Returns:
      a completion stage completed when the message is acknowledged. If the acknowledgement fails, the completion stage propagates the failure.
    • unwrap

      default <C> C unwrap(Class<C> unwrapType)
      Returns an object of the specified type to allow access to the connector-specific Message implementation, and other classes. For example, a Kafka connector could implement this method to allow unwrapping to a specific Kafka message implementation, or to ConsumerRecord and ProducerRecord. If the Message implementation does not support the target class, an IllegalArgumentException should be raised. The default implementation tries to cast the current Message instance to the target class. When a connector provides its own Message implementation, it should override this method to support specific types.
      Type Parameters:
      C - the target type
      Parameters:
      unwrapType - the class of the object to be returned, must not be null
      Returns:
      an instance of the specified class
      Throws:
      IllegalArgumentException - if the current Message instance does not support the call