# amqp-client
**Repository Path**: qigs/rabbitmq-java-client
## Basic Information
- **Project Name**: amqp-client
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-03-20
- **Last Updated**: 2024-06-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
:client-stable: 5.20.0
:client-rc: 5.17.0.RC2
:client-snapshot: 5.21.0-SNAPSHOT
= RabbitMQ Java Client
image:https://maven-badges.herokuapp.com/maven-central/com.rabbitmq/amqp-client/badge.svg["Maven Central", link="https://maven-badges.herokuapp.com/maven-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/api-guide.html[RabbitMQ Java client].
The client is maintained by the https://github.com/rabbitmq/[RabbitMQ team at Broadcom].
== Dependency (Maven Artifact)
This client releases are independent of RabbitMQ server releases and can be used with RabbitMQ server `3.x`.
They require Java 8 or higher.
=== 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}'
----
////
=== Milestones and Release Candidates
==== Maven
.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----
com.rabbitmq
amqp-client
{client-rc}
----
Milestones and release candidates are available on the RabbitMQ Milestone Repository:
.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----
packagecloud-rabbitmq-maven-milestones
https://packagecloud.io/rabbitmq/maven-milestones/maven2
true
false
----
==== Gradle
.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
compile 'com.rabbitmq:amqp-client:{client-rc}'
----
Milestones and release candidates are available on the RabbitMQ Milestone Repository:
.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
repositories {
maven {
url "https://packagecloud.io/rabbitmq/maven-milestones/maven2"
}
}
----
////
=== Snapshots
==== Maven
.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----
com.rabbitmq
amqp-client
{client-snapshot}
----
Snapshots are available on the Sonatype OSS snapshot repository:
.pom.xml
[source,xml,subs="attributes,specialcharacters"]
----
ossrh
https://oss.sonatype.org/content/repositories/snapshots
true
false
----
==== Gradle
.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
compile 'com.rabbitmq:amqp-client:{client-snapshot}'
----
Snapshots are available on the Sonatype OSS snapshot repository:
.build.gradle
[source,groovy,subs="attributes,specialcharacters"]
----
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/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 -P '!setup-test-cluster'
----
=== 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 -P '!setup-test-cluster' \
-Drabbitmqctl.bin=DOCKER:rabbitmq \
-Dit.test=ClientTestSuite,FunctionalTestSuite,ServerTestSuite
----
Launch a single test:
[source,shell]
----
./mvnw verify -P '!setup-test-cluster' \
-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 -P '!setup-test-cluster' \
-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 -P '!setup-test-cluster' \
-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/java-versions.html[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/api-guide.html#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.