An open API service indexing awesome lists of open source software.

https://github.com/rabbitmq/rabbitmq-java-client

RabbitMQ Java client
https://github.com/rabbitmq/rabbitmq-java-client

java rabbitmq

Last synced: 4 days ago
JSON representation

RabbitMQ Java client

Awesome Lists containing this project

README

          

:client-stable: 5.30.0
:client-snapshot: 5.31.0-SNAPSHOT

= RabbitMQ Java Client

image:https://maven-badges.sml.io/sonatype-central/com.rabbitmq/amqp-client/badge.svg?subject=maven["Maven Central", link="https://maven-badges.sml.io/sonatype-central/com.rabbitmq/amqp-client/"]
image:https://github.com/rabbitmq/rabbitmq-java-client/actions/workflows/test.yml/badge.svg["Build Status", link="https://github.com/rabbitmq/rabbitmq-java-client/actions/workflows/test.yml"]

This repository contains source code of the https://www.rabbitmq.com/client-libraries/java-api-guide[RabbitMQ Java client].
The client is maintained by the https://github.com/rabbitmq/[RabbitMQ team at Broadcom].

== RabbitMQ Server Compatibility

This client releases are independent of RabbitMQ server releases and can be used with RabbitMQ server `4.x` and `3.x` (note that the `3.x` series is https://www.rabbitmq.com/release-information[out of community support]).

== Minimum Supported JDK Version

This library requires Java 8 or higher.

== Dependency (Maven Artifact)

=== Stable

==== Maven

.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----

com.rabbitmq
amqp-client
{client-stable}

----

==== Gradle

.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
compile 'com.rabbitmq:amqp-client:{client-stable}'
----

=== Snapshots

==== Maven

.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----

com.rabbitmq
amqp-client
{client-snapshot}

----

Snapshots are available on the central portal snapshot repository:

.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----


ossrh
https://central.sonatype.com/repository/maven-snapshots/

true


false

----

==== Gradle

.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
compile 'com.rabbitmq:amqp-client:{client-snapshot}'
----

Snapshots are available on the central portal snapshot repository:

.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
repositories {
maven { url 'https://central.sonatype.com/repository/maven-snapshots/' }
mavenCentral()
}
----

=== 4.x Series

**As of 1 January 2021 the 4.x branch is no longer supported**.

== Experimenting with JShell

You can experiment with the client from JShell. This requires Java 9 or more.

[source,shell]
----
git clone https://github.com/rabbitmq/rabbitmq-java-client.git
cd rabbitmq-java-client
./mvnw test-compile jshell:run
...
import com.rabbitmq.client.*
ConnectionFactory cf = new ConnectionFactory()
Connection c = cf.newConnection()
...
c.close()
/exit
----

== Building from Source

=== Getting the Project and its Dependencies

[source,shell]
----
git clone git@github.com:rabbitmq/rabbitmq-java-client.git
cd rabbitmq-java-client
make deps
----

=== Building the JAR File

[source,shell]
----
./mvnw clean package -Dmaven.test.skip
----

=== Launching Tests with the Broker Running in a Docker Container

Run the broker:

[source,shell]
----
docker run -it --rm --name rabbitmq -p 5672:5672 rabbitmq
----

Launch "essential" tests (takes about 10 minutes):

[source,shell]
----
./mvnw verify \
-Drabbitmqctl.bin=DOCKER:rabbitmq \
-Dit.test=ClientTestSuite,FunctionalTestSuite,ServerTestSuite
----

Launch a single test:

[source,shell]
----
./mvnw verify \
-Drabbitmqctl.bin=DOCKER:rabbitmq \
-Dit.test=DeadLetterExchange
----

=== Launching Tests with a Local Broker

The tests can run against a local broker as well. The `rabbitmqctl.bin`
system property must point to the `rabbitmqctl` program:

[source,shell]
----
./mvnw verify \
-Dtest-broker.A.nodename=rabbit@$(hostname) \
-Drabbitmqctl.bin=/path/to/rabbitmqctl \
-Dit.test=ClientTestSuite,FunctionalTestSuite,ServerTestSuite
----

To launch a single test:

[source,shell]
----
./mvnw verify \
-Dtest-broker.A.nodename=rabbit@$(hostname) \
-Drabbitmqctl.bin=/path/to/rabbitmqctl \
-Dit.test=DeadLetterExchange
----

== Contributing

See link:CONTRIBUTING.md[Contributing] and link:RUNNING_TESTS.md[How to Run Tests].

== Versioning

This library uses https://semver.org/[semantic versioning].

== Support

See the https://www.rabbitmq.com/client-libraries/java-versions[RabbitMQ Java libraries support page]
for the support timeline of this library.

== License

This package, the RabbitMQ Java client library, is https://www.rabbitmq.com/client-libraries/java-api-guide#license[triple-licensed] under
the Mozilla Public License 2.0 ("MPL"), the GNU General Public License
version 2 ("GPL") and the Apache License version 2 ("AL").

This means that the user can consider the library to be licensed under **any of the licenses from the list** above.
For example, you may choose the Apache Public License 2.0 and include this client into a commercial product.
Projects that are licensed under the GPLv2 may choose GPLv2, and so on.