Supported signatures

The following tables list the supported method signatures and indicate the various supported features. For instance, they indicate the default and available acknowledgement strategies (when applicable).

Table 1. Method signatures to generate data
Signature Invocation time

@Outgoing Publisher<Message<O>> method()

Called once at assembly time

@Outgoing Publisher<O> method()

Called once at assembly time

@Outgoing Multi<Message<O>> method()

Called once at assembly time

@Outgoing Multi<O> method()

Called once at assembly time

@Outgoing PublisherBuilder<Message<O>> method()

Called once at assembly time

@Outgoing PublisherBuilder<O> method()

Called once at assembly time

@Outgoing Message<O> method()

Called for every downstream request, sequentially

@Outgoing O method()

Called for every downstream request, sequentially

@Outgoing CompletionStage<Message<O>> method()

Called for every downstream request, sequentially (After the completion of the last returned CompletionStage)

@Outgoing CompletionStage<O> method()

Called for every downstream request, , sequentially (After the completion of the last returned CompletionStage)

@Outgoing Uni<Message<O>> method()

Called for every downstream request, sequentially (After the completion of the last returned Uni)

@Outgoing Uni<O> method()

Called for every downstream request, , sequentially (After the completion of the last returned Uni)

Table 2. Method signatures to consume data
Signature Invocation time Supported Acknowledgement Strategies

@Incoming void method(I p)

Called for every incoming payload (sequentially)

POST_PROCESSING, NONE, PRE_PROCESSING

@Incoming CompletionStage<?> method(Message<I> msg)

Called for every incoming message (sequentially)

MANUAL, NONE, PRE_PROCESSING

@Incoming CompletionStage<?> method(I p)

Called for every incoming payload (sequentially)

POST_PROCESSING, PRE_PROCESSING, NONE

@Incoming Uni<?> method(Message<I> msg)

Called for every incoming message (sequentially)

MANUAL, NONE, PRE_PROCESSING

@Incoming Uni<?> method(I p)

Called for every incoming payload (sequentially)

POST_PROCESSING, PRE_PROCESSING, NONE

@Incoming Subscriber<Message<I>> method()

Called once at assembly time

MANUAL, POST_PROCESSING, NONE, PRE_PROCESSING

@Incoming Subscriber<I> method()

Called once at assembly time

POST_PROCESSING, NONE, PRE_PROCESSING

Table 3. Method signatures to process data
Signature Invocation time Supported Acknowledgement Strategies Metadata Propagation

@Outgoing @Incoming Message<O> method(Message<I> msg)

Called for every incoming message (sequentially)

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming O method(I payload)

Called for every incoming payload (sequentially)

POST_PROCESSING, NONE, PRE_PROCESSING

automatic

@Outgoing @Incoming CompletionStage<Message<O>> method(Message<I> msg)

Called for every incoming message (sequentially)

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming CompletionStage<O> method(I payload)

Called for every incoming payload (sequentially)

POST_PROCESSING, NONE, PRE_PROCESSING

automatic

@Outgoing @Incoming Uni<Message<O>> method(Message<I> msg)

Called for every incoming message (sequentially)

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming Uni<O> method(I payload)

Called for every incoming payload (sequentially)

POST_PROCESSING, NONE, PRE_PROCESSING

automatic

@Outgoing @Incoming Processor<Message<I>, Message<O>> method()

Called once at assembly time

MANUAL, PRE_PROCESSING, NONE

manual

@Outgoing @Incoming Processor<I, O> method()

Called once at assembly time

PRE_PROCESSING, NONE

not supported

@Outgoing @Incoming ProcessorBuilder<Message<I>, Message<O>> method()

Called once at assembly time

MANUAL, PRE_PROCESSING, NONE

manual

@Outgoing @Incoming ProcessorBuilder<I, O> method()

Called once at assembly time

PRE_PROCESSING, NONE

not supported

@Outgoing @Incoming Publisher<Message<O>> method(Message<I> msg)

Called once at assembly time

MANUAL, PRE_PROCESSING, NONE

manual

@Outgoing @Incoming Publisher<O> method(I payload)

Called once at assembly time

PRE_PROCESSING, NONE

automatic

@Outgoing @Incoming Multi<Message<O>> method(Message<I> msg)

Called once at assembly time

MANUAL, PRE_PROCESSING, NONE

manual

@Outgoing @Incoming Multi<O> method(I payload)

Called once at assembly time

PRE_PROCESSING, NONE

automatic

@Outgoing @Incoming PublisherBuilder<Message<O>> method(Message<I> msg)

Called once at assembly time

MANUAL, PRE_PROCESSING, NONE

manual

@Outgoing @Incoming PublisherBuilder<O> method(I payload)

Called once at assembly time

PRE_PROCESSING, NONE

automatic

Table 4. Method signatures to manipulate streams
Signature Invocation time Supported Acknowledgement Strategies Metadata Propagation

@Outgoing @Incoming Publisher<Message<O>> method(Publisher<Message<I>> pub)

Called once at assembly time

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming Publisher<O> method(Publisher<I> pub)

Called once at assembly time

PRE_PROCESSING, NONE

not supported

@Outgoing @Incoming Multi<Message<O>> method(Multi<Message<I>> pub)

Called once at assembly time

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming Multi<O> method(Multi<I> pub)

Called once at assembly time

PRE_PROCESSING, NONE

not supported

@Outgoing @Incoming PublisherBuilder<Message<O>> method(PublisherBuilder<Message<I>> pub)

Called once at assembly time

MANUAL, NONE, PRE_PROCESSING

manual

@Outgoing @Incoming PublisherBuilder<O> method(PublisherBuilder<I> pub)

Called once at assembly time

NONE, PRE_PROCESSING

not supported

When processing Message, it is often required to chain the incoming Message to enable post-processing acknowledgement and metadata propagation. Use the with (like withPayload) methods from the incoming message, so it copies the metadata and ack/nack methods. It returns a new Message with the right content.