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 ro...@apache.org on 2019/10/22 12:36:06 UTC
[james-project] 05/05: JAMES-2926 Fix injection for MailQueueFactory
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 <ra...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org