@Target(value=METHOD) @Retention(value=RUNTIME) public @interface Outgoing
Methods annotated with this annotation must have one of the following shapes:
PublisherBuilder
, or a Publisher
.ProcessorBuilder
or a Processor
.CompletionStage
.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.
public abstract String value
Copyright © 2018–2020 SmallRye. All rights reserved.