JavaBean that allows for configuring a JSR-166 backport
ThreadPoolExecutor in bean
style (through its "corePoolSize", "maxPoolSize", "keepAliveSeconds", "queueCapacity"
properties), exposing it as a Spring TaskExecutor.
This is an alternative to configuring a ThreadPoolExecutor instance directly using
constructor injection, with a separate ConcurrentTaskExecutor adapter wrapping it.

For any custom needs, in particular for defining a
ScheduledThreadPoolExecutor,
it is recommended to use a straight definition of the Executor instance or a
factory method definition that points to the JSR-166 backport
Executors class.
To expose such a raw Executor as a Spring TaskExecutor,
simply wrap it with a ConcurrentTaskExecutor adapter.

NOTE: This class implements Spring's
TaskExecutor interface (and hence implicitly
the standard Java 5 Executor interface) as well as
the JSR-166 Executor
interface, with the former being the primary interface, the other just
serving as secondary convenience. For this reason, the exception handling
follows the TaskExecutor contract rather than the backport Executor contract, in
particular regarding the TaskRejectedException.

name - the name of the bean in the factory.
Note that this name is the actual bean name used in the factory, which may
differ from the originally specified name: in particular for inner bean
names, the actual bean name might have been made unique through appending
"#..." suffixes. Use the BeanFactoryUtils.originalBeanName(String)
method to extract the original bean name (without suffix), if desired.