Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Spring AMQP - support for Spring programming model with AMQP, especially but not limited to RabbitMQ

AMQP-390 Add ConditionalRejectingErrorHandler


Fatal conversion errors (e.g. invalid content-encoding)
cause an endless loop by default.

Add a `ConditionalRejectingErrorHandler` that detects this problem
and wraps the exception in an `AmqpRejectAndDontRequeueException`
so the container will reject the message with requeue=false.

Make this the default `ErrorHandler`.

Add a strategy interface allowing customization of the algorithm
deciding which exceptions need to be wrapped. Exceptions that
already have an `AmqpRejectAndDontRqueueException` will not be
wrapped because those messages will already be handled that
way by the container.

Add the failed message to the `ListenerExecutionFailedException`
so that it is available to the `FatalExceptionStrategy`

AMQP-390 Fix Appender JavaDoc


Comment out the properties with `null` values - a user thought these
were valid values.

AMQP-390: Polishing
latest commit 28c32de3f2
Gary Russell garyrussell authored April 21, 2014 artembilan committed April 21, 2014
Octocat-spinner-32 gradle AMQP-345: Allow Broker Queue Name Generation December 19, 2013
Octocat-spinner-32 spring-amqp AMQP-384 Fix Test March 13, 2014
Octocat-spinner-32 spring-erlang AMQP-361 Fix Javadocs for JDK8 January 15, 2014
Octocat-spinner-32 spring-rabbit AMQP-390 Add ConditionalRejectingErrorHandler April 21, 2014
Octocat-spinner-32 src AMQP-390 Add ConditionalRejectingErrorHandler April 21, 2014
Octocat-spinner-32 .gitignore AMQP-246 - Remove old POMs June 27, 2012
Octocat-spinner-32 .travis.yml Prevent Travis from Emitting ANSI CTRL Chars March 31, 2014
Octocat-spinner-32 Add Bamboo Build Status to README March 27, 2014
Octocat-spinner-32 build.gradle Remove overlapping test dependencies April 02, 2014
Octocat-spinner-32 eclipse-code-formatter.xml Add code convention housekeeping guidleines November 30, 2010
Octocat-spinner-32 [artifactory-release] Next development version March 30, 2014
Octocat-spinner-32 gradlew AMQP-293 - Upgrade Gradle Wrapper to 1.4 January 29, 2013
Octocat-spinner-32 gradlew.bat AMQP-83 - Add Gradle Support June 19, 2012
Octocat-spinner-32 publish-maven.gradle Update Developer List August 16, 2013
Octocat-spinner-32 settings.gradle AMQP-276 Rename spring-amqp-core to spring-amqp November 06, 2012

Spring AMQP

This project provides support for using Spring and Java with AMQP, and in particular RabbitMQ.

Checking out and Building

To check out the project from GitHub and build from source using Gradle, do the following:

git clone git://
cd spring-amqp
./gradlew build

If you encounter out of memory errors during the build, increase available heap and permgen for Gradle:

GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m'

To build and install jars into your local Maven cache:

./gradlew install

To build api Javadoc (results will be in build/api):

./gradlew api

To build reference documentation (results will be in build/reference):

./gradlew reference

To build complete distribution including -dist, -docs, and -schema zip files (results will be in build/distributions)

./gradlew dist

To analyze and gather metrics using Sonar:

./gradlew clean build sonar

(Please make sure that you have Sonar running, e.g. on localhost port 9000)

Using Eclipse

To generate Eclipse metadata (.classpath and .project files), do the following:

./gradlew eclipse

Once complete, you may then import the projects into Eclipse as usual:

File -> Import -> Existing projects into workspace

Browse to the 'spring-amqp' root directory. All projects should import free of errors.

Using SpringSource Tool Suite™ (STS)

Using the STS Gradle Support, you can directly import Gradle projects, without having to generate Eclipse metadata first (since STS 2.7.M1). Please make sure you have the Gradle STS Extension installed - Please see the installation instructions for details.

  1. Select File -> Import -> Gradle Project
  2. Browse to the Spring AMQP Root Folder
  3. Click on Build Model
  4. Select the projects you want to import
  5. Press Finish

Using IntelliJ IDEA

To generate IDEA metadata (.iml and .ipr files), do the following:

./gradlew idea

Distribution Contents

If you downloaded the full Spring AMQP distribution or if you created the distribution using ./gradlew dist, you will see the following directory structure:

├── apache-license.txt
├── docs
│ ├── api
│ └── reference
├── epl-license.txt
├── libs
├── notice.txt
└── schema
    └── rabbit

The binary JARs and the source code are available in the libs. The reference manual and javadocs are located in the docs directory.


Lists of issues addressed per release can be found in JIRA.

Additional Resources

Contributing to Spring AMQP

Here are some ways for you to get involved in the community:

  • Get involved with the Spring community on the Spring Community Forums. Please help out on the forum by responding to questions and joining the debate.
  • Create JIRA tickets for bugs and new features and comment and vote on the ones that you are interested in.
  • Github is for social coding: if you want to write code, we encourage contributions through pull requests from forks of this repository. If you want to contribute code this way, please reference a JIRA ticket as well covering the specific issue you are addressing.
  • Watch for upcoming articles on Spring by subscribing to

Before we accept a non-trivial patch or pull request we will need you to sign the contributor's agreement. Signing the contributor's agreement does not grant anyone commit rights to the main repository, but it does mean that we can accept your contributions, and you will get an author credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests.

Code Conventions and Housekeeping

None of these is essential for a pull request, but they will all help. They can also be added after the original pull request but before a merge.

  • Use the Spring Framework code format conventions (import eclipse-code-formatter.xml from the root of the project if you are using Eclipse).
  • Make sure all new .java files to have a simple Javadoc class comment with at least an @author tag identifying you, and preferably at least a paragraph on what the class is for.
  • Add the ASF license header comment to all new .java files (copy from existing files in the project)
  • Add yourself as an @author to the .java files that you modify substantially (more than cosmetic changes).
  • Add some Javadocs and, if you change the namespace, some XSD doc elements.
  • A few unit tests would help a lot as well - someone has to do it.
  • If no-one else is using your branch, please rebase it against the current master (or other target branch in the main project).


Spring AMQP is released under the terms of the Apache Software License Version 2.0 (see license.txt).

Something went wrong with that request. Please try again.