You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2020/11/27 11:10:50 UTC
[james-project] 03/05: JAMES-3454 Make RegistrationQueueName
immutable
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b8e452ccedd0239fa76e85312799d0f1edc73cd5
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Nov 24 09:53:14 2020 +0100
JAMES-3454 Make RegistrationQueueName immutable
We rely on an already known queue name, based in the EventBusId
---
.../james/mailbox/events/KeyRegistrationHandler.java | 10 +---------
.../james/mailbox/events/RegistrationQueueName.java | 18 ++++--------------
2 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/KeyRegistrationHandler.java b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/KeyRegistrationHandler.java
index bc72087..db52aa9 100644
--- a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/KeyRegistrationHandler.java
+++ b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/KeyRegistrationHandler.java
@@ -28,7 +28,6 @@ import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Map;
import java.util.Optional;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Predicate;
import org.apache.james.backends.rabbitmq.ReceiverProvider;
@@ -72,7 +71,6 @@ class KeyRegistrationHandler {
private final MailboxListenerExecutor mailboxListenerExecutor;
private final RetryBackoffConfiguration retryBackoff;
private Optional<Disposable> receiverSubscriber;
- private AtomicBoolean registrationQueueInitialized = new AtomicBoolean(false);
KeyRegistrationHandler(EventBusId eventBusId, EventSerializer eventSerializer,
Sender sender, ReceiverProvider receiverProvider,
@@ -86,7 +84,7 @@ class KeyRegistrationHandler {
this.receiver = receiverProvider.createReceiver();
this.mailboxListenerExecutor = mailboxListenerExecutor;
this.retryBackoff = retryBackoff;
- this.registrationQueue = new RegistrationQueueName();
+ this.registrationQueue = new RegistrationQueueName(EVENTBUS_QUEUE_NAME_PREFIX + eventBusId.asString());
this.registrationBinder = new RegistrationBinder(sender, registrationQueue);
this.receiverSubscriber = Optional.empty();
@@ -116,12 +114,6 @@ class KeyRegistrationHandler {
.timeout(TOPOLOGY_CHANGES_TIMEOUT)
.map(AMQP.Queue.DeclareOk::getQueue)
.retryWhen(Retry.backoff(retryBackoff.getMaxRetries(), retryBackoff.getFirstBackoff()).jitter(retryBackoff.getJitterFactor()))
- .doOnSuccess(queueName -> {
- if (!registrationQueueInitialized.get()) {
- registrationQueue.initialize(queueName);
- registrationQueueInitialized.set(true);
- }
- })
.block();
}
diff --git a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RegistrationQueueName.java b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RegistrationQueueName.java
index 0854122..33c837b 100644
--- a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RegistrationQueueName.java
+++ b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RegistrationQueueName.java
@@ -19,24 +19,14 @@
package org.apache.james.mailbox.events;
-import java.util.Optional;
-
-import com.google.common.base.Preconditions;
-
class RegistrationQueueName {
- private Optional<String> queueName;
-
- RegistrationQueueName() {
- this.queueName = Optional.empty();
- }
+ private final String queueName;
- void initialize(String queueName) {
- Preconditions.checkNotNull(queueName);
- Preconditions.checkState(!this.queueName.isPresent(), "'queueName' must be empty for initializing");
- this.queueName = Optional.of(queueName);
+ RegistrationQueueName(String queueName) {
+ this.queueName = queueName;
}
String asString() {
- return queueName.orElseThrow(() -> new IllegalStateException("'queueName' is not yet initialized"));
+ return queueName;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org