# 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.