public abstract class MessageLogReceiverEndpoint extends MessageReceiverEndpoint
MessageEndpoint endpoint of a Message Channel that supports random-access like reading of
messages using ChannelPositions.
| Constructor and Description |
|---|
MessageLogReceiverEndpoint(java.lang.String channelName,
com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
| Modifier and Type | Method and Description |
|---|---|
abstract ChannelPosition |
consume(ChannelPosition startFrom,
java.util.function.Predicate<Message<?>> stopCondition)
Takes zero or more messages from the channel, calls
MessageEndpoint.intercept(Message) for every message, and notifies
the registered consumers with the intercepted message, or drops the message, if intercept returns null. |
abstract void |
stop() |
getMessageDispatcher, registergetChannelName, intercept, registerpublic MessageLogReceiverEndpoint(@Nonnull
java.lang.String channelName,
@Nonnull
com.fasterxml.jackson.databind.ObjectMapper objectMapper)
@Nonnull public abstract ChannelPosition consume(@Nonnull ChannelPosition startFrom, @Nonnull java.util.function.Predicate<Message<?>> stopCondition)
MessageEndpoint.intercept(Message) for every message, and notifies
the registered consumers with the intercepted message, or drops the message, if intercept returns null.
Consumption starts with the first message after startFrom and finishes when either the
stopCondition is met, or the application is shutting down.
The returned ChannelPosition is the position of the last message that was processed by the
MessageLogReceiverEndpoint - whether it was dropped or consumed.
The registered consumers are used as a
callback for consumed messages. A MessageDispatcher can be used as a consumer, if multiple
consumers, or consumers with message payloads other than String are
required.
startFrom - the start position used to proceed message consumptionstopCondition - the predicate used to check if consumption should stop.public abstract void stop()