ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.afterPropertiesSet();
for (int i = 0; i < 5; i++) {
final int count = i;
executor.execute(new Runnable() {
public void run() {
// request body is InOut pattern and thus we expect a reply (JMSReply)
Object response = template.requestBody("activemq:a", "World #" + count);
assertEquals("Bye World #" + count, response);
latch.countDown();