diff --git a/build.gradle b/build.gradle index 5c1292a1..08b4492b 100644 --- a/build.gradle +++ b/build.gradle @@ -39,27 +39,27 @@ ext { modifiedFiles = files(grgit.status().unstaged.modified).filter{ f -> f.name.endsWith('.java') || f.name.endsWith('.kt') } - assertjVersion = '3.18.1' - assertkVersion = '0.23' + assertjVersion = '3.19.0' + assertkVersion = '0.24' awaitilityVersion = '4.0.3' commonsHttpClientVersion = '4.5.13' commonsPoolVersion = '2.9.0' googleJsr305Version = '3.0.2' hamcrestVersion = '2.2' hibernateValidationVersion = '6.2.0.Final' - jacksonBomVersion = '2.11.4' + jacksonBomVersion = '2.12.3' jaywayJsonPathVersion = '2.4.0' - junit4Version = '4.13.1' + junit4Version = '4.13.2' junitJupiterVersion = '5.7.2' - log4jVersion = '2.13.3' + log4jVersion = '2.14.1' logbackVersion = '1.2.3' - micrometerVersion = '1.5.14' - mockitoVersion = '3.6.28' - rabbitmqVersion = project.hasProperty('rabbitmqVersion') ? project.rabbitmqVersion : '5.9.0' - rabbitmqHttpClientVersion = '3.8.0.RELEASE' + micrometerVersion = '1.7.0' + mockitoVersion = '3.9.0' + rabbitmqVersion = project.hasProperty('rabbitmqVersion') ? project.rabbitmqVersion : '5.12.0' + rabbitmqHttpClientVersion = '3.9.0.RELEASE' reactorVersion = '2020.0.7' - springDataCommonsVersion = '2.4.9' - springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.3.7' + springDataCommonsVersion = '2.5.1' + springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.3.8' springRetryVersion = '1.3.1' } @@ -325,6 +325,7 @@ project('spring-amqp') { optionalApi 'com.fasterxml.jackson.core:jackson-core' optionalApi 'com.fasterxml.jackson.core:jackson-databind' + optionalApi 'com.fasterxml.jackson.core:jackson-annotations' optionalApi 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' // Spring Data projection message binding support diff --git a/gradle.properties b/gradle.properties index 706432e2..2ef25c86 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=2.3.9-SNAPSHOT +version=2.4.0-SNAPSHOT org.gradlee.caching=true org.gradle.daemon=true org.gradle.parallel=true diff --git a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/MessageListenerContainerRetryIntegrationTests.java b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/MessageListenerContainerRetryIntegrationTests.java index 97bcd4ff..53fcd32c 100644 --- a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/MessageListenerContainerRetryIntegrationTests.java +++ b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/listener/MessageListenerContainerRetryIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -150,7 +150,7 @@ public class MessageListenerContainerRetryIntegrationTests { } @Test - void testStatefulRetryWithNoMessageIds() { + void testStatefulRetryWithNoMessageIds() throws Exception { int messageCount = 2; int txSize = 1; @@ -165,11 +165,8 @@ public class MessageListenerContainerRetryIntegrationTests { this.retryTemplate.setRetryContextCache(new MapRetryContextCache(1)); // The container should have shutdown, so there are now no active consumers assertThatThrownBy(() -> doTestStatefulRetry(messageCount, txSize, failFrequency, concurrentConsumers)) - .hasMessageContaining("Expecting:") - .hasMessageContaining(" <0>") - .hasMessageContaining("to be equal to") - .hasMessageContaining(" <1>") - .hasMessageContaining("but was not."); + .hasMessageContaining("expected: 1") + .hasMessageContaining("but was : 0"); } @RepeatedTest(10) diff --git a/src/reference/asciidoc/appendix.adoc b/src/reference/asciidoc/appendix.adoc index 4f46209f..859e175f 100644 --- a/src/reference/asciidoc/appendix.adoc +++ b/src/reference/asciidoc/appendix.adoc @@ -10,6 +10,68 @@ See <>. [[previous-whats-new]] === Previous Releases +==== Changes in 2.3 Since 2.2 + +This section describes the changes between version 2.2 and version 2.3. +See <> for changes in previous versions. + +===== Connection Factory Changes + +Two additional connection factories are now provided. +See <> for more information. + +===== `@RabbitListener` Changes + +You can now specify a reply content type. +See <> for more information. + +===== Message Converter Changes + +The `Jackson2JMessageConverter` s can now deserialize abstract classes (including interfaces) if the `ObjectMapper` is configured with a custom deserializer. +See <> for more information. + +===== Testing Changes + +A new annotation `@SpringRabbitTest` is provided to automatically configure some infrastructure beans for when you are not using `SpringBootTest`. +See <> for more information. + +===== RabbitTemplate Changes + +The template's `ReturnCallback` has been refactored as `ReturnsCallback` for simpler use in lambda expressions. +See <> for more information. + +When using returns and correlated confirms, the `CorrelationData` now requires a unique `id` property. +See <> for more information. + +When using direct reply-to, you can now configure the template such that the server does not need to return correlation data with the reply. +See <> for more information. + +===== Listener Container Changes + +A new listener container property `consumeDelay` is now available; it is helpful when using the https://github.com/rabbitmq/rabbitmq-sharding[RabbitMQ Sharding Plugin]. + +The default `JavaLangErrorHandler` now calls `System.exit(99)`. +To revert to the previous behavior (do nothing), add a no-op handler. + +The containers now support the `globalQos` property to apply the `prefetchCount` globally for the channel rather than for each consumer on the channel. + +See <> for more information. + +===== MessagePostProcessor Changes + +The compressing `MessagePostProcessor` s now use a comma to separate multiple content encodings instead of a colon. +The decompressors can handle both formats but, if you produce messages with this version that are consumed by versions earlier than 2.2.12, you should configure the compressor to use the old delimiter. +See the IMPORTANT note in <> for more information. + +===== Multiple Broker Support Improvements + +See <> for more information. + +===== RepublishMessageRecoverer Changes + +A new subclass of this recoverer is not provided that supports publisher confirms. +See <> for more information. + ==== Changes in 2.2 Since 2.1 This section describes the changes between version 2.1 and version 2.2. diff --git a/src/reference/asciidoc/whats-new.adoc b/src/reference/asciidoc/whats-new.adoc index 82174e5f..e1112a08 100644 --- a/src/reference/asciidoc/whats-new.adoc +++ b/src/reference/asciidoc/whats-new.adoc @@ -1,64 +1,7 @@ [[whats-new]] == What's New -=== Changes in 2.3 Since 2.2 +=== Changes in 2.4 Since 2.3 -This section describes the changes between version 2.2 and version 2.3. +This section describes the changes between version 2.4 and version 2.4. See <> for changes in previous versions. - -==== Connection Factory Changes - -Two additional connection factories are now provided. -See <> for more information. - -==== `@RabbitListener` Changes - -You can now specify a reply content type. -See <> for more information. - -==== Message Converter Changes - -The `Jackson2JMessageConverter` s can now deserialize abstract classes (including interfaces) if the `ObjectMapper` is configured with a custom deserializer. -See <> for more information. - -==== Testing Changes - -A new annotation `@SpringRabbitTest` is provided to automatically configure some infrastructure beans for when you are not using `SpringBootTest`. -See <> for more information. - -==== RabbitTemplate Changes - -The template's `ReturnCallback` has been refactored as `ReturnsCallback` for simpler use in lambda expressions. -See <> for more information. - -When using returns and correlated confirms, the `CorrelationData` now requires a unique `id` property. -See <> for more information. - -When using direct reply-to, you can now configure the template such that the server does not need to return correlation data with the reply. -See <> for more information. - -==== Listener Container Changes - -A new listener container property `consumeDelay` is now available; it is helpful when using the https://github.com/rabbitmq/rabbitmq-sharding[RabbitMQ Sharding Plugin]. - -The default `JavaLangErrorHandler` now calls `System.exit(99)`. -To revert to the previous behavior (do nothing), add a no-op handler. - -The containers now support the `globalQos` property to apply the `prefetchCount` globally for the channel rather than for each consumer on the channel. - -See <> for more information. - -==== MessagePostProcessor Changes - -The compressing `MessagePostProcessor` s now use a comma to separate multiple content encodings instead of a colon. -The decompressors can handle both formats but, if you produce messages with this version that are consumed by versions earlier than 2.2.12, you should configure the compressor to use the old delimiter. -See the IMPORTANT note in <> for more information. - -==== Multiple Broker Support Improvements - -See <> for more information. - -==== RepublishMessageRecoverer Changes - -A new subclass of this recoverer is not provided that supports publisher confirms. -See <> for more information.