rabbitmq / rabbitmq-jms-client

RabbitMQ JMS client
Other
62 stars 50 forks source link
java jms messaging rabbitmq

= Java JMS Client for RabbitMQ

image:https://maven-badges.herokuapp.com/maven-central/com.rabbitmq.jms/rabbitmq-jms/badge.svg["Maven Central", link="https://maven-badges.herokuapp.com/maven-central/com.rabbitmq.jms/rabbitmq-jms"] image:https://github.com/rabbitmq/rabbitmq-jms-client/actions/workflows/test.yml/badge.svg?branch=2.x.x-stable["Build Status", link="https://github.com/rabbitmq/rabbitmq-jms-client/actions/workflows/test.yml"] (2.x) image:https://github.com/rabbitmq/rabbitmq-jms-client/actions/workflows/test.yml/badge.svg["Build Status", link="https://github.com/rabbitmq/rabbitmq-jms-client/actions/workflows/test.yml"] (3.x)

== Overview

This is a JMS client library for RabbitMQ, working in concert with https://github.com/rabbitmq/rabbitmq-server/tree/main/deps/rabbitmq_jms_topic_exchange[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

== JMS 3.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 https://github.com/rabbitmq/rabbitmq-jms-client/blob/main/CONTRIBUTING.md[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

https://github.com/rabbitmq/rabbitmq-jms-cts[JMS 1.1 compliance test suite] for this client is available in a separate repository.

== 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 and Copyright

(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 https://github.com/rabbitmq/rabbitmq-jms-client/blob/main/LICENSE[LICENSE].