Skip to content

rabbitmq/rabbitmq-jms-client

Java JMS Client for RabbitMQ

Maven Central Build Status (2.x) Build Status (3.x)

Overview

This is a JMS client library for RabbitMQ, working in concert with rabbitmq-jms-topic-exchange, a RabbitMQ server plugin. It supports JMS 2.0 as of 2.7.0 and JMS 3.0 as of 3.0.0. Both 2.x and 3.x branches are maintained and supported.

RabbitMQ JMS Client 2.x requires Java 8 or more. RabbitMQ JMS Client 3.x requires Java 11 or more.

JMS 1.1 and 2.0

Building from Source

This project is managed by Maven, so use

./mvnw clean install -Dmaven.test.skip=true

to build it from source and install into the local repository.

Running Tests

See CONTRIBUTING.md for an overview of the development process.

Unit Tests

./mvnw clean test

Integration Tests

Running Integration Tests with Docker

Launch the broker:

docker run -it --rm --name rabbitmq -p 5672:5672 rabbitmq

Enable the JMS Topic Exchange plugin:

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_jms_topic_exchange

Launch the tests:

./mvnw verify -Drabbitmqctl.bin=DOCKER:rabbitmq

Running Integration Tests with a Local Broker

To launch the test suite (requires a local RabbitMQ node with JMS Topic Exchange plugin enabled):

./mvnw verify -Drabbitmqctl.bin=/path/to/rabbitmqctl

JMS 1.1 Compliance Test Suite

JMS 1.1 compliance test suite for this client is available in a separate repository.

Versioning

This library uses semantic versioning.

Support

See the RabbitMQ Java libraries support page for the support timeline of this library.

(c) 2007-2024 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.

This package, the RabbitMQ JMS client library, is double-licensed under the Apache License version 2 ("ASL") and the Mozilla Public License 2.0 ("MPL").

See LICENSE.