It depends on your application. gateway, channel, filter, service activator are usually passive components (run on the calling thread). The poller is scheduled by the taskScheduler bean and can have an optional task-executor. Other components are active (such as the TCP/UDP adapters) and can be supplied with an external task-executor (such as the WMTE I mentioned).
If you have an SI application that is invoked by a web thread, and all the channels are direct, and all the components are passive, then no other threads are used; everything runs on the container thread.
As soon as you go async (or use an active component), you need a task-scheduler or executor that is compatible with your environment.
To be safe in WAS, just do as I suggested in post #2.
Last edited by Gary Russell; May 26th, 2012 at 04:41 PM.
Gary P. Russell
Spring Integration Team
SpringSource, a division of VMware