You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2020/03/17 09:35:35 UTC
[james-project] 02/04: JAMES-3070 listCreatedMailQueues should only
return queue names
This is an automated email from the ASF dual-hosted git repository.
matthieu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 30f8ecd4c257600a1bc4b41948e7a65d31d0cfa4
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Wed Feb 19 16:45:22 2020 +0100
JAMES-3070 listCreatedMailQueues should only return queue names
---
.../methods/integration/SetMessagesOutboxFlagUpdateTest.java | 2 +-
.../org/apache/james/webadmin/routes/MailQueueRoutes.java | 7 +------
.../java/org/apache/james/queue/api/MailQueueFactory.java | 2 +-
.../org/apache/james/queue/api/MailQueueFactoryContract.java | 5 +----
.../org/apache/james/queue/file/FileMailQueueFactory.java | 11 +++++++----
.../apache/james/queue/library/AbstractMailQueueFactory.java | 9 ++++++---
.../org/apache/james/queue/memory/MemoryMailQueueFactory.java | 9 +++++----
.../apache/james/queue/rabbitmq/RabbitMQMailQueueFactory.java | 6 ++----
8 files changed, 24 insertions(+), 27 deletions(-)
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
index db8ea1e..00dcf07 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/SetMessagesOutboxFlagUpdateTest.java
@@ -105,7 +105,7 @@ public abstract class SetMessagesOutboxFlagUpdateTest {
}
@Override
- public Set<MailQueue> listCreatedMailQueues() {
+ public Set<String> listCreatedMailQueues() {
throw new NotImplementedException("Minimalistic implementation. Please do not list queues");
}
};
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
index 0338071..1764b6a 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
@@ -135,12 +135,7 @@ public class MailQueueRoutes implements Routes {
})
public void defineListQueues(Service service) {
service.get(BASE_URL,
- (request, response) ->
- mailQueueFactory
- .listCreatedMailQueues()
- .stream()
- .map(ManageableMailQueue::getName)
- .collect(Guavate.toImmutableList()),
+ (request, response) -> mailQueueFactory.listCreatedMailQueues(),
jsonTransformer);
}
diff --git a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
index 125dd5b..09850b3 100644
--- a/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
+++ b/server/queue/queue-api/src/main/java/org/apache/james/queue/api/MailQueueFactory.java
@@ -42,5 +42,5 @@ public interface MailQueueFactory<T extends MailQueue> {
T createQueue(String name);
- Set<T> listCreatedMailQueues();
+ Set<String> listCreatedMailQueues();
}
diff --git a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryContract.java b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryContract.java
index dd3bd0d..20d99a6 100644
--- a/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryContract.java
+++ b/server/queue/queue-api/src/test/java/org/apache/james/queue/api/MailQueueFactoryContract.java
@@ -43,9 +43,7 @@ public interface MailQueueFactoryContract<T extends MailQueue> {
mailQueueFactory.createQueue(NAME_1);
mailQueueFactory.createQueue(NAME_2);
- assertThat(mailQueueFactory.listCreatedMailQueues())
- .extracting(MailQueue::getName)
- .containsOnly(NAME_1, NAME_2);
+ assertThat(mailQueueFactory.listCreatedMailQueues()).containsOnly(NAME_1, NAME_2);
}
@Test
@@ -56,7 +54,6 @@ public interface MailQueueFactoryContract<T extends MailQueue> {
mailQueueFactory.createQueue(NAME_1);
assertThat(mailQueueFactory.listCreatedMailQueues())
- .extracting(MailQueue::getName)
.containsOnly(NAME_1);
}
diff --git a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
index 623e1e0..663272a 100644
--- a/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
+++ b/server/queue/queue-file/src/main/java/org/apache/james/queue/file/FileMailQueueFactory.java
@@ -19,7 +19,6 @@
package org.apache.james.queue.file;
import java.io.IOException;
-import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
@@ -28,11 +27,12 @@ import java.util.concurrent.ConcurrentHashMap;
import javax.inject.Inject;
import org.apache.james.filesystem.api.FileSystem;
+import org.apache.james.queue.api.MailQueue;
import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
import org.apache.james.queue.api.ManageableMailQueue;
-import com.google.common.collect.ImmutableSet;
+import com.github.steveash.guavate.Guavate;
/**
* {@link MailQueueFactory} implementation which returns {@link FileCacheableMailQueue} instances
@@ -55,8 +55,11 @@ public class FileMailQueueFactory implements MailQueueFactory<ManageableMailQueu
}
@Override
- public Set<ManageableMailQueue> listCreatedMailQueues() {
- return ImmutableSet.copyOf(queues.values());
+ public Set<String> listCreatedMailQueues() {
+ return queues.values()
+ .stream()
+ .map(MailQueue::getName)
+ .collect(Guavate.toImmutableSet());
}
/**
diff --git a/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java b/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
index fdd4b86..7d41b75 100644
--- a/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
+++ b/server/queue/queue-jms/src/main/java/org/apache/james/queue/library/AbstractMailQueueFactory.java
@@ -39,8 +39,8 @@ import org.apache.james.queue.api.ManageableMailQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.github.steveash.guavate.Guavate;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableSet;
/**
* {@link MailQueueFactory} abstract base class which take care of register the
@@ -71,8 +71,11 @@ public abstract class AbstractMailQueueFactory<T extends MailQueue> implements M
}
@Override
- public Set<T> listCreatedMailQueues() {
- return ImmutableSet.copyOf(queues.values());
+ public Set<String> listCreatedMailQueues() {
+ return queues.values()
+ .stream()
+ .map(MailQueue::getName)
+ .collect(Guavate.toImmutableSet());
}
@PreDestroy
diff --git a/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java b/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
index 4aa75ec..6c3d8f3 100644
--- a/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
+++ b/server/queue/queue-memory/src/main/java/org/apache/james/queue/memory/MemoryMailQueueFactory.java
@@ -19,7 +19,6 @@
package org.apache.james.queue.memory;
-import java.io.IOException;
import java.time.DateTimeException;
import java.time.Duration;
import java.time.Instant;
@@ -52,7 +51,6 @@ import com.github.fge.lambdas.Throwing;
import com.github.steveash.guavate.Guavate;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import reactor.core.publisher.Flux;
@@ -71,8 +69,11 @@ public class MemoryMailQueueFactory implements MailQueueFactory<ManageableMailQu
}
@Override
- public Set<ManageableMailQueue> listCreatedMailQueues() {
- return ImmutableSet.copyOf(mailQueues.values());
+ public Set<String> listCreatedMailQueues() {
+ return mailQueues.values()
+ .stream()
+ .map(MemoryCacheableMailQueue::getName)
+ .collect(Guavate.toImmutableSet());
}
@Override
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 57bde2f..cc328c0 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
@@ -45,7 +45,6 @@ import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.MailQueueItemDecoratorFactory;
import org.apache.james.queue.rabbitmq.view.RabbitMQMailQueueConfiguration;
import org.apache.james.queue.rabbitmq.view.api.MailQueueView;
-import org.apache.james.util.OptionalUtils;
import com.github.fge.lambdas.Throwing;
import com.google.common.annotations.VisibleForTesting;
@@ -146,10 +145,9 @@ public class RabbitMQMailQueueFactory implements MailQueueFactory<RabbitMQMailQu
}
@Override
- public Set<RabbitMQMailQueue> listCreatedMailQueues() {
- //TODO: it creates connections and leak them
+ public Set<String> listCreatedMailQueues() {
return mqManagementApi.listCreatedMailQueueNames()
- .flatMap(name -> OptionalUtils.toStream(getQueue(name.asString())))
+ .map(MailQueueName::asString)
.collect(ImmutableSet.toImmutableSet());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org