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 <matth...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org