Currently the CXF transport does not scale well if the service implementation is slow.
We need a facility to work with several threads.
There are two options for this:
1. Allow to use more than one consumer
2. Use an executor in JMSDestination.onMessage
Option 1 works well with PollingMessageListener but not with the event driven MessageListener. It is also depending on the JMS provider how it scales with number of consumers.
Option 2 works in all cases but does not allow to profit from more than one consumer if the provider is slow with a single consumer.
So probably we will need both variants.