This is an automated email from the ASF dual-hosted git repository. rouazana pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 2c460a2a732fb3d2814c50221cdedc2a18bd3c35 Author: Raphael Ouazana <[email protected]> AuthorDate: Mon Oct 21 14:32:45 2019 +0200 JAMES-2926 Fix injection for MailQueueFactory --- .../james/modules/activemq/ActiveMQQueueModule.java | 9 ++++++++- .../apache/james/modules/TaskSerializationModule.java | 8 ++++---- .../james/modules/server/MemoryMailQueueModule.java | 9 ++++++++- .../apache/james/modules/rabbitmq/RabbitMQModule.java | 18 ++++++++++++++++-- .../apache/james/webadmin/routes/MailQueueRoutes.java | 6 +++--- .../james/webadmin/service/ClearMailQueueTaskDTO.java | 4 ++-- .../service/DeleteMailsFromMailQueueTaskDTO.java | 4 ++-- 7 files changed, 43 insertions(+), 15 deletions(-) diff --git a/server/container/guice/activemq/src/main/java/org/apache/james/modules/activemq/ActiveMQQueueModule.java b/server/container/guice/activemq/src/main/java/org/apache/james/modules/activemq/ActiveMQQueueModule.java index 8b2cbd1..03dcc70 100644 --- a/server/container/guice/activemq/src/main/java/org/apache/james/modules/activemq/ActiveMQQueueModule.java +++ b/server/container/guice/activemq/src/main/java/org/apache/james/modules/activemq/ActiveMQQueueModule.java @@ -26,6 +26,7 @@ import org.apache.activemq.store.kahadb.KahaDBPersistenceAdapter; import org.apache.james.queue.activemq.ActiveMQMailQueueFactory; import org.apache.james.queue.activemq.EmbeddedActiveMQ; import org.apache.james.queue.api.MailQueueFactory; +import org.apache.james.queue.api.ManageableMailQueue; import com.google.inject.AbstractModule; import com.google.inject.Provides; @@ -49,9 +50,15 @@ public class ActiveMQQueueModule extends AbstractModule { @Provides @Singleton - public MailQueueFactory<?> createActiveMailQueueFactory(ActiveMQMailQueueFactory activeMQMailQueueFactory) { + public MailQueueFactory<? extends ManageableMailQueue> createActiveMQManageableMailQueueFactory(ActiveMQMailQueueFactory activeMQMailQueueFactory) { activeMQMailQueueFactory.setUseJMX(true); activeMQMailQueueFactory.init(); return activeMQMailQueueFactory; } + + @Provides + @Singleton + public MailQueueFactory<?> provideActiveMQMailQueueFactory(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { + return mailQueueFactory; + } } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java index 238eb58..6c8fc00 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/TaskSerializationModule.java @@ -131,8 +131,8 @@ public class TaskSerializationModule extends AbstractModule { } @ProvidesIntoSet - public TaskDTOModule<?, ?> clearMailQueueTask(MailQueueFactory<?> mailQueueFactory) { - return ClearMailQueueTaskDTO.module((MailQueueFactory<ManageableMailQueue>) mailQueueFactory); + public TaskDTOModule<?, ?> clearMailQueueTask(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { + return ClearMailQueueTaskDTO.module(mailQueueFactory); } @ProvidesIntoSet @@ -141,8 +141,8 @@ public class TaskSerializationModule extends AbstractModule { } @ProvidesIntoSet - public TaskDTOModule<?, ?> deleteMailsFromMailQueueTask(MailQueueFactory<?> mailQueueFactory) { - return DeleteMailsFromMailQueueTaskDTO.module((MailQueueFactory<ManageableMailQueue>) mailQueueFactory); + public TaskDTOModule<?, ?> deleteMailsFromMailQueueTask(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { + return DeleteMailsFromMailQueueTaskDTO.module(mailQueueFactory); } @ProvidesIntoSet diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java index 43e3959..8af5b16 100644 --- a/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java +++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/modules/server/MemoryMailQueueModule.java @@ -20,6 +20,7 @@ package org.apache.james.modules.server; import org.apache.james.queue.api.MailQueueFactory; +import org.apache.james.queue.api.ManageableMailQueue; import org.apache.james.queue.memory.MemoryMailQueueFactory; import com.google.inject.AbstractModule; @@ -35,7 +36,13 @@ public class MemoryMailQueueModule extends AbstractModule { @Provides @Singleton - public MailQueueFactory<?> createActiveMailQueueFactory(MemoryMailQueueFactory memoryMailQueueFactory) { + public MailQueueFactory<? extends ManageableMailQueue> provideManageableMailQueueFactory(MemoryMailQueueFactory memoryMailQueueFactory) { + return memoryMailQueueFactory; + } + + @Provides + @Singleton + public MailQueueFactory<?> provideMailQueueFactory(MemoryMailQueueFactory memoryMailQueueFactory) { return memoryMailQueueFactory; } } diff --git a/server/container/guice/rabbitmq/src/main/java/org/apache/james/modules/rabbitmq/RabbitMQModule.java b/server/container/guice/rabbitmq/src/main/java/org/apache/james/modules/rabbitmq/RabbitMQModule.java index 16a168e..bdb9f70 100644 --- a/server/container/guice/rabbitmq/src/main/java/org/apache/james/modules/rabbitmq/RabbitMQModule.java +++ b/server/container/guice/rabbitmq/src/main/java/org/apache/james/modules/rabbitmq/RabbitMQModule.java @@ -33,6 +33,8 @@ import org.apache.james.backends.rabbitmq.SimpleChannelPool; import org.apache.james.core.healthcheck.HealthCheck; import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule; import org.apache.james.queue.api.MailQueueFactory; +import org.apache.james.queue.api.ManageableMailQueue; +import org.apache.james.queue.rabbitmq.RabbitMQMailQueue; import org.apache.james.queue.rabbitmq.RabbitMQMailQueueFactory; import org.apache.james.queue.rabbitmq.view.RabbitMQMailQueueConfiguration; import org.apache.james.queue.rabbitmq.view.api.MailQueueView; @@ -87,13 +89,25 @@ public class RabbitMQModule extends AbstractModule { @Provides @Singleton - public MailQueueView.Factory bindMailQueueViewFactory(CassandraMailQueueView.Factory cassandraMailQueueViewFactory) { + public MailQueueView.Factory provideMailQueueViewFactory(CassandraMailQueueView.Factory cassandraMailQueueViewFactory) { return cassandraMailQueueViewFactory; } @Provides @Singleton - public MailQueueFactory<?> bindRabbitMQQueueFactory(RabbitMQMailQueueFactory queueFactory) { + public MailQueueFactory<RabbitMQMailQueue> provideRabbitMQMailQueueFactoryProxy(RabbitMQMailQueueFactory queueFactory) { + return queueFactory; + } + + @Provides + @Singleton + public MailQueueFactory<? extends ManageableMailQueue> provideRabbitMQManageableMailQueueFactory(MailQueueFactory<RabbitMQMailQueue> queueFactory) { + return queueFactory; + } + + @Provides + @Singleton + public MailQueueFactory<?> provideRabbitMQMailQueueFactory(MailQueueFactory<RabbitMQMailQueue> queueFactory) { return queueFactory; } 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 1776162..cd1631f 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 @@ -90,16 +90,16 @@ public class MailQueueRoutes implements Routes { private static final String NAME_QUERY_PARAM = "name"; private static final String RECIPIENT_QUERY_PARAM = "recipient"; - private final MailQueueFactory<ManageableMailQueue> mailQueueFactory; + private final MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory; private final JsonTransformer jsonTransformer; private final JsonExtractor<ForceDelivery> jsonExtractor; private final TaskManager taskManager; @Inject @SuppressWarnings("unchecked") - @VisibleForTesting MailQueueRoutes(MailQueueFactory<?> mailQueueFactory, JsonTransformer jsonTransformer, + @VisibleForTesting MailQueueRoutes(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory, JsonTransformer jsonTransformer, TaskManager taskManager) { - this.mailQueueFactory = (MailQueueFactory<ManageableMailQueue>) mailQueueFactory; + this.mailQueueFactory = mailQueueFactory; this.jsonTransformer = jsonTransformer; this.jsonExtractor = new JsonExtractor<>(ForceDelivery.class); this.taskManager = taskManager; diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java index 1418d3e..8ba59f4 100644 --- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java +++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java @@ -28,7 +28,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class ClearMailQueueTaskDTO implements TaskDTO { - public static TaskDTOModule<ClearMailQueueTask, ClearMailQueueTaskDTO> module(MailQueueFactory<ManageableMailQueue> mailQueueFactory) { + public static TaskDTOModule<ClearMailQueueTask, ClearMailQueueTaskDTO> module(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { return DTOModule .forDomainObject(ClearMailQueueTask.class) .convertToDTO(ClearMailQueueTaskDTO.class) @@ -50,7 +50,7 @@ public class ClearMailQueueTaskDTO implements TaskDTO { this.queue = queue; } - public ClearMailQueueTask fromDTO(MailQueueFactory<ManageableMailQueue> mailQueueFactory) { + public ClearMailQueueTask fromDTO(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { return new ClearMailQueueTask(mailQueueFactory.getQueue(queue).orElseThrow(() -> new ClearMailQueueTask.UnknownSerializedQueue(queue))); } diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java index 40d5e07..e5dfa9e 100644 --- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java +++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java @@ -14,7 +14,7 @@ import com.github.fge.lambdas.Throwing; public class DeleteMailsFromMailQueueTaskDTO implements TaskDTO { - public static TaskDTOModule<DeleteMailsFromMailQueueTask, DeleteMailsFromMailQueueTaskDTO> module(MailQueueFactory<ManageableMailQueue> mailQueueFactory) { + public static TaskDTOModule<DeleteMailsFromMailQueueTask, DeleteMailsFromMailQueueTaskDTO> module(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { return DTOModule .forDomainObject(DeleteMailsFromMailQueueTask.class) .convertToDTO(DeleteMailsFromMailQueueTaskDTO.class) @@ -52,7 +52,7 @@ public class DeleteMailsFromMailQueueTaskDTO implements TaskDTO { this.recipient = recipient; } - public DeleteMailsFromMailQueueTask fromDTO(MailQueueFactory<ManageableMailQueue> mailQueueFactory) { + public DeleteMailsFromMailQueueTask fromDTO(MailQueueFactory<? extends ManageableMailQueue> mailQueueFactory) { return new DeleteMailsFromMailQueueTask( mailQueueFactory.getQueue(queue).orElseThrow(() -> new DeleteMailsFromMailQueueTask.UnknownSerializedQueue(queue)), sender.map(Throwing.<String, MailAddress>function(MailAddress::new).sneakyThrow()), --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
