JIRA: https://jira.spring.io/browse/INT-4527 Fixes https://github.com/spring-projects/spring-integration/issues/2543 - Add error handling within the scope of a transaction - Add `retryDelay` and `maxAttempts` - Include the delivery attempt header in the `ErrorMessage` - Add `transactionalRelease()` methods to the DSL Check context in `ContextRefreshedEvent`. Complete test case; don't schedule for re-release after a successful send after a failure. Use `identityHashCode` for deliveries map key - error flow might change the message `hashCode`. Debug logging Polishing; remove parameter from the `DelayerEndpointSpec.transactionalRelease()` * Polishing some code style