Interface Emitter<T>

Type Parameters:
T - type of payload

public interface Emitter<T>
Interface used to feed a channel from an imperative piece of code.

Instances are injected using:

 @Inject
 @Channel("my-channel")
 Emitter<String> emitter;
 

You can use an injected emitter to send either payloads or Messages.

The name of the channel (given in the Channel annotation) indicates which channel is fed. It must match the name used in a method using @Incoming or an outgoing channel configured in the application configuration.

The OnOverflow annotation can be used to configure what to do if messages are sent using the `Emitter` when a downstream subscriber hasn't requested more messages.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Sends the completion event to the channel indicating that no other events will be sent afterward.
    void
    Sends a failure event to the channel.
    boolean
     
    boolean
     
    <M extends Message<? extends T>>
    void
    send(M msg)
    Sends a message to the channel.
    send(T msg)
    Sends a payload to the channel.
  • Method Details

    • send

      CompletionStage<Void> send(T msg)
      Sends a payload to the channel.

      A Message object will be created to hold the payload and the returned CompletionStage will be completed once this Message is acknowledged. If the Message is never acknowledged, then the CompletionStage will never be completed.

      Parameters:
      msg - the thing to send, must not be null
      Returns:
      the CompletionStage, which will be completed when the message for this payload is acknowledged. If the emitted message is nacked, the produced completion stage is completed exceptionally.
      Throws:
      IllegalStateException - if the channel has been cancelled or terminated or if an overflow strategy of THROW_EXCEPTION or BUFFER is configured and the emitter overflows.
    • send

      <M extends Message<? extends T>> void send(M msg)
      Sends a message to the channel.
      Type Parameters:
      M - the Message type
      Parameters:
      msg - the Message to send, must not be null
      Throws:
      IllegalStateException - if the channel has been cancelled or terminated or if an overflow strategy of THROW_EXCEPTION or BUFFER is configured and the emitter overflows.
    • complete

      void complete()
      Sends the completion event to the channel indicating that no other events will be sent afterward.
    • error

      void error(Exception e)
      Sends a failure event to the channel. No more events will be sent afterward.
      Parameters:
      e - the exception, must not be null
    • isCancelled

      boolean isCancelled()
      Returns:
      true if the emitter has been terminated or the subscription cancelled.
    • hasRequests

      boolean hasRequests()
      Returns:
      true if one or more subscribers request messages from the corresponding channel where the emitter connects to, return false otherwise.