H-m-m... Looks like we shouldn't mix responsibilities and introduce `FileTransferringProcessor`. In this case we avoid architectural changes to `FileTransferringMessageHandler` and can reuse the `session` from `AbstractRemoteFileOutboundGateway#handleRequestMessage`
Anyway we have similar mixes in several palce throughout the framework.
From other side: I don't see that `doPut` and `doMput` reuse other properties from `AbstractRemoteFileOutboundGateway`.
So, looks like introduce `Command` abstraction would be good way.
So, I leave it up to you what to do.
To minimize changes we can live with your current solution, though.