This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch 3.7.x in repository https://gitbox.apache.org/repos/asf/james-project.git
commit c5f5d33c8f39067e71484d8d3a9306b0fd831ba0 Author: Rene Cordier <rcord...@linagora.com> AuthorDate: Thu Sep 29 17:53:43 2022 +0700 JAMES-3604 Fix issue when creating quorum rabbitmq queues We can't create a quorum queue and mark it as auto-delete, RabbitMQ does not allow it. So we keep the jmap event bus notification queues as classic for now. --- .../org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java | 4 ++-- .../src/main/java/org/apache/james/events/GroupRegistration.java | 2 +- .../main/java/org/apache/james/events/GroupRegistrationHandler.java | 2 +- .../src/main/java/org/apache/james/events/KeyReconnectionHandler.java | 2 +- .../src/main/java/org/apache/james/events/KeyRegistrationHandler.java | 2 +- .../org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java index 48588d478b..e98f142555 100644 --- a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java +++ b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQConfiguration.java @@ -722,9 +722,9 @@ public class RabbitMQConfiguration { return sslConfiguration; } - public QueueArguments.Builder workQueueArgumentsBuilder() { + public QueueArguments.Builder workQueueArgumentsBuilder(boolean autoDeleteQueue) { QueueArguments.Builder builder = QueueArguments.builder(); - if (useQuorumQueues) { + if (!autoDeleteQueue && useQuorumQueues) { builder.quorumQueue().replicationFactor(quorumQueueReplicationFactor); } queueTTL.ifPresent(builder::queueTTL); diff --git a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java index bd1a9d3398..794a60e59b 100644 --- a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java +++ b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistration.java @@ -128,7 +128,7 @@ class GroupRegistration implements Registration { .durable(DURABLE) .exclusive(!EXCLUSIVE) .autoDelete(!AUTO_DELETE) - .arguments(configuration.workQueueArgumentsBuilder() + .arguments(configuration.workQueueArgumentsBuilder(!AUTO_DELETE) .deadLetter(namingStrategy.deadLetterExchange()) .build())); } diff --git a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistrationHandler.java b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistrationHandler.java index def37aa477..74c6ca0974 100644 --- a/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistrationHandler.java +++ b/event-bus/distributed/src/main/java/org/apache/james/events/GroupRegistrationHandler.java @@ -104,7 +104,7 @@ class GroupRegistrationHandler { .durable(DURABLE) .exclusive(!EXCLUSIVE) .autoDelete(!AUTO_DELETE) - .arguments(configuration.workQueueArgumentsBuilder() + .arguments(configuration.workQueueArgumentsBuilder(!AUTO_DELETE) .deadLetter(namingStrategy.deadLetterExchange()) .build()), BindingSpecification.binding() diff --git a/event-bus/distributed/src/main/java/org/apache/james/events/KeyReconnectionHandler.java b/event-bus/distributed/src/main/java/org/apache/james/events/KeyReconnectionHandler.java index 95e6810c1e..cd8b1f21e2 100644 --- a/event-bus/distributed/src/main/java/org/apache/james/events/KeyReconnectionHandler.java +++ b/event-bus/distributed/src/main/java/org/apache/james/events/KeyReconnectionHandler.java @@ -55,7 +55,7 @@ public class KeyReconnectionHandler implements SimpleConnectionPool.Reconnection return Mono.fromRunnable(() -> { try (Channel channel = connection.createChannel()) { channel.queueDeclare(namingStrategy.queueName(eventBusId).asString(), DURABLE, !EXCLUSIVE, AUTO_DELETE, - configuration.workQueueArgumentsBuilder().build()); + configuration.workQueueArgumentsBuilder(AUTO_DELETE).build()); } catch (Exception e) { LOGGER.error("Error recovering connection", e); } diff --git a/event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistrationHandler.java b/event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistrationHandler.java index ae693fc9e5..ae616bcbaa 100644 --- a/event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistrationHandler.java +++ b/event-bus/distributed/src/main/java/org/apache/james/events/KeyRegistrationHandler.java @@ -122,7 +122,7 @@ class KeyRegistrationHandler { .durable(DURABLE) .exclusive(!EXCLUSIVE) .autoDelete(AUTO_DELETE) - .arguments(configuration.workQueueArgumentsBuilder().build())) + .arguments(configuration.workQueueArgumentsBuilder(AUTO_DELETE).build())) .timeout(TOPOLOGY_CHANGES_TIMEOUT) .map(AMQP.Queue.DeclareOk::getQueue) .retryWhen(Retry.backoff(retryBackoff.getMaxRetries(), retryBackoff.getFirstBackoff()).jitter(retryBackoff.getJitterFactor())) diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java index ac8ae2490c..7a66cef269 100644 --- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java +++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java @@ -167,7 +167,7 @@ public class RabbitMQMailQueueFactory implements MailQueueFactory<RabbitMQMailQu .durable(DURABLE) .exclusive(!EXCLUSIVE) .autoDelete(!AUTO_DELETE) - .arguments(configuration.workQueueArgumentsBuilder() + .arguments(configuration.workQueueArgumentsBuilder(!AUTO_DELETE) .deadLetter(mailQueueName.toDeadLetterExchangeName()) .build())), sender.declareQueue(QueueSpecification.queue(mailQueueName.toDeadLetterQueueName()) --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org