JAMES-3454 Make RegistrationQueueName immutable

We rely on an already known queue name, based in the EventBusId
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.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 @@
     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 @@
         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 @@
             .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;
+    private final String queueName;
 
-    RegistrationQueueName() {
-        this.queueName = Optional.empty();
-    }
-
-    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;
     }
 }