Annotation Type Outgoing

  • @Target(METHOD)
    public @interface Outgoing
    Used to signify a publisher of outgoing messages.

    Methods annotated with this annotation must have one of the following shapes:

    • Take zero parameters, and return a PublisherBuilder, or a Publisher.
    • Take zero parameters, and return a ProcessorBuilder or a Processor.
    • Accept a single parameter, and return a CompletionStage.
    • Accept a single parameter, and return any type.

    In addition, implementations of this specification may allow returning additional types, such as implementation specific types for representing Reactive Streams, however taking advantage of these features provided by implementations will result in a non portable application.

    The method shapes that return a processor, or accept a single parameter, must also have an Incoming annotation, methods that do not have this will cause a definition exception to be raised by the container during initialization.

    The type of the message emitted by the publisher may be wrapped in Message, or a subclass of it. All messaging providers must support Message, but messaging providers may also provide subclasses of Message in order to expose message transport specific features. Use of these sub classes will result in a non portable application. If the chosen messaging provider does not support the selected message wrapper, a deployment exception will be raised before the container is initialized.

    If the outing message is wrapped in a Message wrapper, then it is the responsibility of the container to acknowledge messages, by invoking the Message.ack() method on each message it receives. Containers must be careful to invoke these messages in order, one at a time, unless configured not to through a container specific mechanism. Containers may provide the ability to configure batching of acks, or only acking one in every n messages.

    See Also:
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      java.lang.String value
      The name of the channel to publish to.
    • Element Detail

      • value

        java.lang.String value
        The name of the channel to publish to.
        the name of the channel, must not be blank.