@NonNullApi @NonNullFields

# Package org.springframework.messaging.support

Provides implementations of `Message` along with a MessageBuilder and MessageHeaderAccessor for building and working with messages and message headers, as well as various `MessageChannel` implementations and channel interceptor support.

See: Description

Interface Summary
ChannelInterceptor: Interface for interceptors that are able to view and/or modify the `Messages` being sent-to and/or received-from a `MessageChannel`.
ExecutorChannelInterceptor: An extension of `ChannelInterceptor` with callbacks to intercept the asynchronous sending of a `Message` to a specific subscriber through an `Executor`.
HeaderMapper<T>: Generic strategy interface for mapping `MessageHeaders` to and from other types of objects.
InterceptableChannel: A `MessageChannel` that maintains a list `ChannelInterceptors` and allows interception of message sending.
MessageHandlingRunnable: Extension of the `Runnable` interface with methods to obtain the `MessageHandler` and `Message` to be handled.
MessageHeaderInitializer: Callback interface for initializing a `MessageHeaderAccessor`.

Class Summary
AbstractHeaderMapper<T>: A base `HeaderMapper` implementation.
AbstractMessageChannel: Abstract base class for `MessageChannel` implementations.
AbstractSubscribableChannel: Abstract base class for `SubscribableChannel` implementations.
ChannelInterceptorAdapter: Deprecated as of 5.0.7 `ChannelInterceptor` has default methods (made possible by a Java 8 baseline) and can be implemented directly without the need for this no-op adapter
ErrorMessage: A `GenericMessage` with a `Throwable` payload.
ExecutorSubscribableChannel: A `SubscribableChannel` that sends messages to each of its subscribers.
GenericMessage<T>: An implementation of `Message` with a generic payload.
IdTimestampMessageHeaderInitializer: A `MessageHeaderInitializer` to customize the strategy for ID and TIMESTAMP message header generation.
ImmutableMessageChannelInterceptor: A simpler interceptor that calls `MessageHeaderAccessor.setImmutable()` on the headers of messages passed through the preSend method.
MessageBuilder<T>: A builder for creating a `GenericMessage` (or `ErrorMessage` if the payload is of type `Throwable`).
MessageHeaderAccessor: Wrapper around `MessageHeaders` that provides extra features such as strongly typed accessors for specific headers, the ability to leave headers in a `Message` mutable, and the option to suppress automatic generation of `id` and `timesteamp` headers.
NativeMessageHeaderAccessor: `MessageHeaderAccessor` sub-class that supports storage and access of headers from an external source such as a message broker.

## Package org.springframework.messaging.support Description

Provides implementations of `Message` along with a MessageBuilder and MessageHeaderAccessor for building and working with messages and message headers, as well as various `MessageChannel` implementations and channel interceptor support.