@FunctionalInterface public interface MessageProcessor<T>
Higher level MessageHandler implementations can delegate to these processors for such functionality, but it is the responsibility of each handler type to add the semantics such as routing, splitting, transforming, etc.
In some cases the return value might be a Message itself, but it does not need to be. It is the responsibility of the caller to determine how to treat the return value. That may require creating a Message or even creating multiple Messages from that value.
This strategy and its various implementations are considered part of the internal "support" API, intended for use by Spring Integration's various message-handling components. As such, it is subject to change.