Skip to content

Releases: rabbitmq/rabbitmq-jms-client

1.8.0.RC1

17 Nov 14:58
Compare
Choose a tag to compare
1.8.0.RC1 Pre-release
Pre-release

Changes between 1.7.0 and 1.8.0.RC1

This is a release candidate for 1.8.0, a maintenance release that includes a new option and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.7.0.

Add option to clean up server-named queues for non-durable topics on session closing

Those queues would be cleaned only on connection closing, now they can be closed on session closing by setting RMQConnectionFactory#cleanUpServerNamedQueuesForNonDurableTopicsOnSessionClose to true. Default is false.

Thanks to @AlexShvedoff for this contribution.

GitHub pull request: #35

Upgrade to RabbitMQ Java Client 4.3.0

The JMS Client now uses RabbitMQ Java Client 4.3.0.

GitHub issue: #37

1.7.0

04 Jul 12:59
Compare
Choose a tag to compare

Changes between 1.6.0 and 1.7.0

This is a maintenance release that includes bug fixes, enhancements, and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.6.0.

Let RMQObjectFactory handle properties from a hash table

It's now possible to provide all required properties via the Hashtable environment third argument of RMQObjectFactory#getObjectInstance() method. This allows the user to create client objects on WildFly via Naming subsystem configuration.

Thanks to Rémi Bantos for this contribution.

GitHub issue: #21

Add option to take message properties into account on sending

It's now possible with the RMQConnectionFactory#preferProducerMessageProperty flag set to false to take into account the JMS Message properties (priority, delivery mode, expiration date) on sending. Note this isn't compliant with the JMS specification (the default behavior follows the JMS specification).

GitHub issue: #26

Add option to requeue message on client runtime exception

The JMS specification tells to requeue a message if the client throws a RuntimeException during delivery. The RabbitMQ JMS client wouldn't do that, it would just cancel the listener. We consider this behavior to be more natural, especially when using auto-acknowledgment mode. Nevertheless, the RMQConnectionFactory#requeueOnMessageListenerException allows to comply to the specification when set to true. The default is false (dropping the message), but this default could change in the next major release.

GitHub issue: #23

Upgrade to RabbitMQ Java Client 4.1.1

The JMS Client now uses RabbitMQ Java Client 4.1.1.

GitHub issue: #18

Don't fail when sending an empty message

GitHub issue: #24

Make compliance test suite pass again

A security fixed introduced a bug that would make the Compliance Test Suite fail. This is now fixed, the CTS passes.

GitHub issue: #16

1.7.0.RC2

20 Jun 12:35
Compare
Choose a tag to compare
1.7.0.RC2 Pre-release
Pre-release

Changes between 1.6.0 and 1.7.0.RC2

This is a release candidate for 1.7.0, a maintenance release that includes bug fixes, enhancements, and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.6.0.

Let RMQObjectFactory handle properties from a hash table

It's now possible to provide all required properties via the Hashtable environment third argument of RMQObjectFactory#getObjectInstance() method. This allows the user to create client objects on WildFly via Naming subsystem configuration.

Thanks to Rémi Bantos for this contribution.

GitHub issue: #21

Add option to take message properties into account on sending

It's now possible with the RMQConnectionFactory#preferProducerMessageProperty flag set to false to take into account the JMS Message properties (priority, delivery mode, expiration date) on sending. Note this isn't compliant with the JMS specification (the default behavior follows the JMS specification).

GitHub issue: #26

Add option to requeue message on client runtime exception

The JMS specification tells to requeue a message if the client throws a RuntimeException during delivery. The RabbitMQ JMS client wouldn't do that, it would just cancel the listener. We consider this behavior to be more natural, especially when using auto-acknowledgment mode. Nevertheless, the RMQConnectionFactory#requeueOnMessageListenerException allows to comply to the specification when set to true. The default is false (dropping the message), but this default could change in the next major release.

GitHub issue: #23

Upgrade to RabbitMQ Java Client 4.1.1

The JMS Client now uses RabbitMQ Java Client 4.1.1.

GitHub issue: #18

Don't fail when sending an empty message

GitHub issue: #24

Make compliance test suite pass again

A security fixed introduced a bug that would make the Compliance Test Suite fail. This is now fixed, the CTS passes.

GitHub issue: #16

1.7.0.RC1

30 May 12:26
Compare
Choose a tag to compare
1.7.0.RC1 Pre-release
Pre-release

Changes between 1.6.0 and 1.7.0.RC1

This is a release candidate for 1.7.0, a maintenance release that includes a bug fix, an enhancement, and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.6.0.

Let RMQObjectFactory handle properties from a hash table

It's now possible to provide all required properties via the Hashtable environment third argument of RMQObjectFactory#getObjectInstance() method. This allows the user to create client objects on WildFly via Naming subsystem configuration.

Thanks to Rémi Bantos for this contribution.

GitHub issue: #21

Upgrade to RabbitMQ Java Client 4.1.0

The JMS Client now uses RabbitMQ Java Client 4.1.0.

GitHub issue: #18

Make compliance test suite pass again

A security fixed introduced a bug that would make the Compliance Test Suite fail. This is now fixed, the CTS passes.

GitHub issue: #16

1.6.0

09 Jan 09:45
Compare
Choose a tag to compare

Changes between 1.5.0 and 1.6.0

This is a release candidate for 1.6.0, a maintenance release that includes a few bug fixes, enhancements, and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.5.0.

Refactor RMQConnection and RMQSession to accept fewer constructor parameters

This is an internal refactoring to make it easy to add new settings to JMS resources.

GitHub issue: #7

Provide a way to configure onMessageTimeoutMs

It is now possible to configure the message processing timeout.

GitHub issue: #5

Contributed by Guillaume Mornet.

Support hostname lists

It is now possible to provide a list of hostnames to connect to (instead of a single one).

GitHub issue: #2

Upgrade to RabbitMQ Java Client 4.0

The JMS Client now uses RabbitMQ Java Client 4.0.

GitHub issue: #9

Set consumer prefetch (a.k.a QoS)

RMQConnectionFactory has a new property to set up the quality of service on created channels. This make it easy to balance load between consumers.

GitHub issue: #11

Provide a way to configure TLS options for JMS connections

RMQConnectionFactory provides some methods to finely-tune the underlying SSLContext for TLS connections.

GitHub issue: #1

SSLContext was overridden with default

Provided SSLContext was overridden because of a side-effect in a method call in the RabbitMQ Java Client. The SSLContext provided to the RMQConnectionFactory is now effectively used.

GitHub issue: #12

Allow using default SSLContext

RMQConnectionFactory has now a flag to use the default SSLContext. It is thus possible to set up TLS options (e.g. key store and trust store) from the command line, with system properties.

GitHub issue: #14

1.6.0.RC1

02 Jan 14:22
8bd123d
Compare
Choose a tag to compare
1.6.0.RC1 Pre-release
Pre-release

Changes between 1.5.0 and 1.6.0.RC1

This is a release candidate for 1.6.0, a maintenance release that includes a few bug fixes, enhancements, and an upgrade of the RabbitMQ Java client dependency. This release is backward-compatible with 1.5.0.

Refactor RMQConnection and RMQSession to accept fewer constructor parameters

This is an internal refactoring to make it easy to add new settings to JMS resources.

GitHub issue: #7

Provide a way to configure onMessageTimeoutMs

It is now possible to configure the message processing timeout.

GitHub issue: #5

Support hostname lists

It is now possible to provide a list of hostnames to connect to (instead of a single one).

GitHub issue: #2

Upgrade to RabbitMQ Java Client 4.0

The JMS Client now uses RabbitMQ Java Client 4.0.

GitHub issue: #9

Set consumer prefetch (a.k.a QoS)

RMQConnectionFactory has a new property to set up the quality of service on created channels. This make it easy to balance load between consumers.

GitHub issue: #11

Provide a way to configure TLS options for JMS connections

RMQConnectionFactory provides some methods to finely-tune the underlying SSLContext for TLS connections.

GitHub issue: #1

SSLContext was overridden with default

Provided SSLContext was overridden because of a side-effect in a method call in the RabbitMQ Java Client. The SSLContext provided to the RMQConnectionFactory is now effectively used.

GitHub issue: #12

Allow using default SSLContext

RMQConnectionFactory has now a flag to use the default SSLContext. It is thus possible to set up TLS options (e.g. key store and trust store) from the command line, with system properties.

GitHub issue: #14

1.5.0

14 Jul 20:46
Compare
Choose a tag to compare

Changes Between 1.4.7 and 1.5.0

1.5.0 is a maintainence release that includes a fix
for CVE-2016-6194.

Limited ObjectMessage Deserialization

Classes that can be deserialized from javax.jms.ObjectMessage
now can be limited via a package prefix white list.
There are two ways to do it:

  • Via the com.rabbitmq.jms.TrustedPackagesPrefixes JVM property which accepts
    a comma separated list of prefixes, for example, java,com.rabbitmq,com.mycompany
  • Using RMQConnectionFactory#setTrustedPackages, RMQConnection#setTrustedPackages, or RMQSession#setTrustedPackages
    which accept lists of package prefixes

All options take a list of package name prefixes, e.g. java will make all classes
in java.lang, java.util, and other packages starting with java trusted.
Deserialization attempt for untrusted classes will throw an exception.

GH issue: rabbitmq-jms-client#3.

This fixes CVE-2016-6194 (note: attacker must be authenticated
with RabbitMQ in order to carry out the attack).

RabbitMQ Java Client Dependency Update

This client now depends on RabbitMQ Java client 3.6.3.