>>However, we are also considering the idea of wrapping any existing flow (as determined by an input-channel and optional output-channel) as a modular >>"black-box" with a gateway as its entry point (so that the module appears to be "just another adapter").
I have a spring-integration-flow project at https://github.com/dturanski/spring-integration-flow. There is also a samples project. This is the "black-box" approach as Mark describes called a 'flow'. There is an outbound gateway that provides uniform error handling. It will output an ErrorMessage if the flow throws an exception or if the flow error channel is mapped to an output port. The output-channel is optional for one-way messaging, but it also supports the case in which the flow does not produce a response under certain conditions.
I haven't gotten into transactions too much but the internal hooks between the gateway channels and the internal flow channels use Direct and POPS (plain old pub sub) - i.e. the flow channels run in the same thread. So transactions should work when the flow input channel is bound to a @Transactional gateway.
This component also supports properties injection, etc. so you can create multiple instances of the same flow with different configurations (see the samples project). This feature currently depends on Spring 3.1 property sources so it's not be a likely candidate for 2.1 which uses Spring 3.0
Does this satisfy the request? Are there additional features or changes you would like to see or scenarios I should test?