This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 109acadaee7c7aab671d2a77916ff24cd621daaa Author: Matthieu Baechler <[email protected]> AuthorDate: Wed Oct 23 14:33:36 2019 +0200 JAMES-2813 take care of injection for DTO nested modules --- .../eventstore/cassandra/JsonEventSerializer.java | 3 ++- .../james/modules/TaskSerializationModule.java | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializer.java b/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializer.java index 3acdd58..9c3b447 100644 --- a/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializer.java +++ b/event-sourcing/event-store-cassandra/src/main/java/org/apache/james/eventsourcing/eventstore/cassandra/JsonEventSerializer.java @@ -25,6 +25,7 @@ import java.util.Collection; import java.util.Set; import javax.inject.Inject; +import javax.inject.Named; import org.apache.james.eventsourcing.Event; import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTO; @@ -81,7 +82,7 @@ public class JsonEventSerializer { private JsonGenericSerializer<Event, EventDTO> jsonGenericSerializer; @Inject - private JsonEventSerializer(Set<EventDTOModule<?, ?>> modules, Set<DTOModule<?, ?>> nestedTypesModules) { + private JsonEventSerializer(Set<EventDTOModule<?, ?>> modules, @Named("EventNestedTypes") Set<DTOModule<?, ?>> nestedTypesModules) { jsonGenericSerializer = JsonGenericSerializer.forModules(modules).withNestedTypeModules(nestedTypesModules); } 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 cea90ed..f901b57 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 @@ -19,12 +19,16 @@ package org.apache.james.modules; import java.time.Clock; +import java.util.Set; + +import javax.inject.Named; import org.apache.james.backends.cassandra.migration.MigrationTask; import org.apache.james.backends.cassandra.migration.MigrationTaskAdditionalInformationDTO; import org.apache.james.backends.cassandra.migration.MigrationTaskDTO; import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule; import org.apache.james.json.DTOConverter; +import org.apache.james.json.DTOModule; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskAdditionalInformationDTO; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskDTO; import org.apache.james.mailbox.cassandra.mail.task.MailboxMergingTaskRunner; @@ -87,11 +91,20 @@ import org.apache.mailbox.tools.indexer.UserReindexingTask; import org.apache.mailbox.tools.indexer.UserReindexingTaskAdditionalInformationDTO; import org.apache.mailbox.tools.indexer.UserReindexingTaskDTO; +import com.google.common.collect.Sets; import com.google.inject.AbstractModule; +import com.google.inject.Provides; +import com.google.inject.Singleton; import com.google.inject.multibindings.ProvidesIntoSet; public class TaskSerializationModule extends AbstractModule { + @Provides + @Singleton + public DTOConverter<TaskExecutionDetails.AdditionalInformation, AdditionalInformationDTO> additionalInformationDTOConverter(Set<AdditionalInformationDTOModule<?, ?>> modules) { + return new DTOConverter<>(modules); + } + @ProvidesIntoSet public EventDTOModule<?, ?> taskCreatedSerialization(JsonTaskSerializer jsonTaskSerializer, DTOConverter<TaskExecutionDetails.AdditionalInformation, AdditionalInformationDTO> additionalInformationConverter) { return TasksSerializationModule.CREATED.create(jsonTaskSerializer, additionalInformationConverter); @@ -331,4 +344,11 @@ public class TaskSerializationModule extends AbstractModule { public AdditionalInformationDTOModule<?, ?> userReindexingAdditionalInformation(MailboxId.Factory mailboxIdFactory) { return UserReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory); } + + @Named("EventNestedTypes") + @Provides + public Set<DTOModule<?, ?>> eventNestedTypes(Set<AdditionalInformationDTOModule<?, ?>> additionalInformationDTOModules, + Set<TaskDTOModule<?, ?>> taskDTOModules) { + return Sets.union(additionalInformationDTOModules, taskDTOModules); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
