Project: springxd
Issue XD-3144: Expose Retryable Exceptions in the RabbitMessageBus Retry Configuration
As a developer, I would like to be able to configure which exceptions thrown by a module should be retryable within the {{RabbitMessageBus}}. As usual, these should be configurable at the bus and/or stream deployment property level. Also consider disabling retry for kryo deserialization problems. ---- We are running Spring XD with RabbitMQ transport and we'd like to have a way to stop retries in certain situations. In [Spring XD 1.2.0.RC1 docs|http://docs.spring.io/autorepo/docs/spring-xd/1.2.0.RC1/reference/html/], in chapter about RabbitMQ transport, in "A Note About Retry" section, it's written: {quote}Message deliveries failing with a MessageConversionException (perhaps when using a custom converterClassName) are never retried; the assumption being that if a message could not be converted on the first attempt, subsequent attempts will also fail.{quote} Following is unclear: # Are we speaking about {{org.springframework.messaging.converter.MessageConversionException}} or {{org.springframework.amqp.support.converter.MessageConversionException}}? Based on XD-1597 and AMQP-390 it's the latter. # Only {{org.springframework.messaging.converter.MessageConversionException}} is available for custom module developers. Attempting to throw {{org.springframework.amqp.support.converter.MessageConversionException}} which is provided by {{$XD_HOME/lib/messagebus/rabbit/spring-amqp-1.4.5.RELEASE.jar}} results in {{java.lang.ClassNotFoundException}} even after Spring XD is configured to use {{rabbit}} transport. # Throwing {{org.springframework.messaging.converter.MessageConversionException}} from custom processor module written with Spring Integration's {{transformer}} or {{service-activator}} doesn't stop retries.
Story points: 5