| /**************************************************************** |
| * Licensed to the Apache Software Foundation (ASF) under one * |
| * or more contributor license agreements. See the NOTICE file * |
| * distributed with this work for additional information * |
| * regarding copyright ownership. The ASF licenses this file * |
| * to you under the Apache License, Version 2.0 (the * |
| * "License"); you may not use this file except in compliance * |
| * with the License. You may obtain a copy of the License at * |
| * * |
| * http://www.apache.org/licenses/LICENSE-2.0 * |
| * * |
| * Unless required by applicable law or agreed to in writing, * |
| * software distributed under the License is distributed on an * |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
| * KIND, either express or implied. See the License for the * |
| * specific language governing permissions and limitations * |
| * under the License. * |
| ****************************************************************/ |
| package org.apache.james.modules; |
| |
| import java.time.Clock; |
| |
| import org.apache.james.backends.cassandra.migration.MigrationTask; |
| import org.apache.james.backends.cassandra.migration.MigrationTaskAdditionalInformationsDTO; |
| import org.apache.james.backends.cassandra.migration.MigrationTaskDTO; |
| import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule; |
| 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; |
| import org.apache.james.mailbox.model.MailboxId; |
| import org.apache.james.mailbox.model.MessageId; |
| import org.apache.james.queue.api.MailQueueFactory; |
| import org.apache.james.queue.api.ManageableMailQueue; |
| import org.apache.james.rrt.cassandra.CassandraMappingsSourcesDAO; |
| import org.apache.james.rrt.cassandra.migration.MappingsSourcesMigration; |
| import org.apache.james.rrt.cassandra.migration.MappingsSourcesMigrationTaskAdditionalInformationDTO; |
| import org.apache.james.server.task.json.JsonTaskAdditionalInformationsSerializer; |
| import org.apache.james.server.task.json.JsonTaskSerializer; |
| import org.apache.james.server.task.json.dto.AdditionalInformationDTOModule; |
| import org.apache.james.server.task.json.dto.TaskDTOModule; |
| import org.apache.james.task.eventsourcing.distributed.TasksSerializationModule; |
| import org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTask; |
| import org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO; |
| import org.apache.james.vault.blob.BlobStoreVaultGarbageCollectionTaskDTO; |
| import org.apache.james.webadmin.service.CassandraMappingsSolveInconsistenciesTask; |
| import org.apache.james.webadmin.service.ClearMailQueueTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.ClearMailQueueTaskDTO; |
| import org.apache.james.webadmin.service.ClearMailRepositoryTask; |
| import org.apache.james.webadmin.service.ClearMailRepositoryTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.ClearMailRepositoryTaskDTO; |
| import org.apache.james.webadmin.service.DeleteMailsFromMailQueueTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.DeleteMailsFromMailQueueTaskDTO; |
| import org.apache.james.webadmin.service.EventDeadLettersRedeliverAllTaskDTO; |
| import org.apache.james.webadmin.service.EventDeadLettersRedeliverGroupTaskDTO; |
| import org.apache.james.webadmin.service.EventDeadLettersRedeliverOneTaskDTO; |
| import org.apache.james.webadmin.service.EventDeadLettersRedeliverService; |
| import org.apache.james.webadmin.service.EventDeadLettersRedeliveryTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.ReprocessingAllMailsTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.ReprocessingAllMailsTaskDTO; |
| import org.apache.james.webadmin.service.ReprocessingOneMailTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.service.ReprocessingOneMailTaskDTO; |
| import org.apache.james.webadmin.service.ReprocessingService; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultDeleteTask; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultDeleteTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultDeleteTaskDTO; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultExportTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultExportTaskDTO; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultRestoreTaskAdditionalInformationDTO; |
| import org.apache.james.webadmin.vault.routes.DeletedMessagesVaultRestoreTaskDTO; |
| import org.apache.mailbox.tools.indexer.ErrorRecoveryIndexationTask; |
| import org.apache.mailbox.tools.indexer.ErrorRecoveryIndexationTaskDTO; |
| import org.apache.mailbox.tools.indexer.FullReindexingTask; |
| import org.apache.mailbox.tools.indexer.MessageIdReIndexingTask; |
| import org.apache.mailbox.tools.indexer.MessageIdReindexingTaskAdditionalInformationDTO; |
| import org.apache.mailbox.tools.indexer.MessageIdReindexingTaskDTO; |
| import org.apache.mailbox.tools.indexer.ReIndexerPerformer; |
| import org.apache.mailbox.tools.indexer.ReprocessingContextInformationDTO; |
| import org.apache.mailbox.tools.indexer.SingleMailboxReindexingTask; |
| import org.apache.mailbox.tools.indexer.SingleMailboxReindexingTaskAdditionalInformationDTO; |
| import org.apache.mailbox.tools.indexer.SingleMailboxReindexingTaskDTO; |
| import org.apache.mailbox.tools.indexer.SingleMessageReindexingTask; |
| import org.apache.mailbox.tools.indexer.SingleMessageReindexingTaskAdditionalInformationDTO; |
| import org.apache.mailbox.tools.indexer.SingleMessageReindexingTaskDTO; |
| import org.apache.mailbox.tools.indexer.UserReindexingTask; |
| import org.apache.mailbox.tools.indexer.UserReindexingTaskAdditionalInformationDTO; |
| import org.apache.mailbox.tools.indexer.UserReindexingTaskDTO; |
| |
| import com.google.inject.AbstractModule; |
| import com.google.inject.multibindings.ProvidesIntoSet; |
| |
| public class TaskSerializationModule extends AbstractModule { |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskCreatedSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.CREATED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskStartedSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.STARTED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskCancelRequestedSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.CANCEL_REQUESTED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskCancelledSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.CANCELLED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskCompletedSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.COMPLETED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public EventDTOModule<?, ?> taskFailedSerialization(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationsSerializer jsonTaskAdditionalInformationsSerializer) { |
| return TasksSerializationModule.FAILED.create(jsonTaskSerializer, jsonTaskAdditionalInformationsSerializer); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> blobStoreVaultGarbageCollectionTask(BlobStoreVaultGarbageCollectionTask.Factory factory) { |
| return BlobStoreVaultGarbageCollectionTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> cassandraMappingsSolveInconsistenciesTask(MappingsSourcesMigration migration, CassandraMappingsSourcesDAO dao) { |
| return CassandraMappingsSolveInconsistenciesTask.module(migration, dao); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> clearMailQueueTask(MailQueueFactory<?> mailQueueFactory) { |
| return ClearMailQueueTaskDTO.module((MailQueueFactory<ManageableMailQueue>) mailQueueFactory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> clearMailRepositoryTask(ClearMailRepositoryTask.Factory factory) { |
| return ClearMailRepositoryTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> deleteMailsFromMailQueueTask(MailQueueFactory<?> mailQueueFactory) { |
| return DeleteMailsFromMailQueueTaskDTO.module((MailQueueFactory<ManageableMailQueue>) mailQueueFactory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> deletedMessagesVaultDeleteTask(DeletedMessagesVaultDeleteTask.Factory factory) { |
| return DeletedMessagesVaultDeleteTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> deletedMessagesVaultExportTask(DeletedMessagesVaultExportTaskDTO.Factory factory) { |
| return DeletedMessagesVaultExportTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> deletedMessagesVaultRestoreTask(DeletedMessagesVaultRestoreTaskDTO.Factory factory) { |
| return DeletedMessagesVaultRestoreTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> eventDeadLettersRedeliverAllTask(EventDeadLettersRedeliverService service) { |
| return EventDeadLettersRedeliverAllTaskDTO.module(service); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> eventDeadLettersRedeliverGroupTask(EventDeadLettersRedeliverService service) { |
| return EventDeadLettersRedeliverGroupTaskDTO.module(service); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> eventDeadLettersRedeliverOneTask(EventDeadLettersRedeliverService service) { |
| return EventDeadLettersRedeliverOneTaskDTO.module(service); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> fullReindexTask(ReIndexerPerformer performer) { |
| return FullReindexingTask.module(performer); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> errorRecoveryIndexationTask(ErrorRecoveryIndexationTask.Factory factory) { |
| return ErrorRecoveryIndexationTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> mailboxMergingTask(MailboxMergingTaskRunner taskRunner) { |
| return MailboxMergingTaskDTO.module(taskRunner); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> messageIdReindexingTask(MessageIdReIndexingTask.Factory factory) { |
| return MessageIdReindexingTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> migrationTask(MigrationTask.Factory factory) { |
| return MigrationTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> reprocessingAllMailsTask(ReprocessingService reprocessingService) { |
| return ReprocessingAllMailsTaskDTO.module(reprocessingService); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> reprocessingOneMailsTask(ReprocessingService reprocessingService) { |
| return ReprocessingOneMailTaskDTO.module(Clock.systemUTC(), reprocessingService); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> singleMailboxReindexingTask(SingleMailboxReindexingTask.Factory factory) { |
| return SingleMailboxReindexingTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> singleMessageReindexingTask(SingleMessageReindexingTask.Factory factory) { |
| return SingleMessageReindexingTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public TaskDTOModule<?, ?> userReindexingTask(UserReindexingTask.Factory factory) { |
| return UserReindexingTaskDTO.module(factory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> blobStoreVaultGarbageCollectionAdditionalInformation() { |
| return BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> cassandraMappingsSolveInconsistenciesAdditionalInformation() { |
| return MappingsSourcesMigrationTaskAdditionalInformationDTO.serializationModule(CassandraMappingsSolveInconsistenciesTask.TYPE); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> clearMailQueueAdditionalInformation() { |
| return ClearMailQueueTaskAdditionalInformationDTO.SERIALIZATION_MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> clearMailRepositoryAdditionalInformation() { |
| return ClearMailRepositoryTaskAdditionalInformationDTO.SERIALIZATION_MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> deleteMailsFromMailQueueAdditionalInformation() { |
| return DeleteMailsFromMailQueueTaskAdditionalInformationDTO.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> deletedMessagesVaultDeleteAdditionalInformation(MessageId.Factory factory) { |
| return DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.serializationModule(factory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> deletedMessagesVaultExportAdditionalInformation() { |
| return DeletedMessagesVaultExportTaskAdditionalInformationDTO.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> deletedMessagesVaultRestoreAdditionalInformation() { |
| return DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> errorRecoveryAdditionalInformation(MailboxId.Factory mailboxIdFactory) { |
| return ReprocessingContextInformationDTO.ReprocessingContextInformationForErrorRecoveryIndexationTask.serializationModule(mailboxIdFactory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> eventDeadLettersRedeliveryAdditionalInformationForAll() { |
| return EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForAll.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> eventDeadLettersRedeliveryAdditionalInformationForGroup() { |
| return EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForGroup.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> eventDeadLettersRedeliveryAdditionalInformationForOne() { |
| return EventDeadLettersRedeliveryTaskAdditionalInformationDTO.EventDeadLettersRedeliveryTaskAdditionalInformationForOne.MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> fullReindexAdditionalInformation(MailboxId.Factory mailboxIdFactory) { |
| return ReprocessingContextInformationDTO.ReprocessingContextInformationForFullReindexingTask.serializationModule(mailboxIdFactory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> mailboxMergingAdditionalInformation() { |
| return MailboxMergingTaskAdditionalInformationDTO.SERIALIZATION_MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> messageIdReindexingAdditionalInformation(MessageId.Factory messageIdFactory) { |
| return MessageIdReindexingTaskAdditionalInformationDTO.serializationModule(messageIdFactory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> migrationTaskAdditionalInformation() { |
| return MigrationTaskAdditionalInformationsDTO.serializationModule(); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> reprocessingAllMailsAdditionalInformation() { |
| return ReprocessingAllMailsTaskAdditionalInformationDTO.SERIALIZATION_MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> reprocessingOneMailAdditionalInformation() { |
| return ReprocessingOneMailTaskAdditionalInformationDTO.SERIALIZATION_MODULE; |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> singleMailboxReindexingAdditionalInformation(MailboxId.Factory mailboxIdFactory) { |
| return SingleMailboxReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> singleMessageReindexingAdditionalInformation(MailboxId.Factory mailboxIdFactory) { |
| return SingleMessageReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory); |
| } |
| |
| @ProvidesIntoSet |
| public AdditionalInformationDTOModule<?, ?> userReindexingAdditionalInformation(MailboxId.Factory mailboxIdFactory) { |
| return UserReindexingTaskAdditionalInformationDTO.serializationModule(mailboxIdFactory); |
| } |
| } |