Also updated the spring-amqp library to 1.1.3.RELEASE.
When a developer modifies an artifact that a message listener service depends on, the message listener is re-registered in the application context. As we are setting the autoStartup property to false, that means the listeners are stopped but not restarted. After any class is reloaded, we now check for any stopped listeners and start them if we find any.
A misinterpretation of the maxAttempts property of SimplyRetryPolicy had us using an inappropriate value of 0 as the default, which basically meant don't accept any messages. Changing the default to 1 fixes the problem of all messages being rejected.
This commit allows users to configure almost every aspect of their service listeners through a combination of the bean property override mechanism and the rabbitQueue/rabbitSubscribe properties. This includes determining whether a particular service listener is transactional, what message converter is uses, and how many consumers it has. The change involved a fairly significant refactor that made it easy to add automatic reloading of service listeners - so users can modify them on the fly now too!