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/11 07:04:56 UTC

[james-project] branch master updated (2e9b48c -> a6ca5cb)

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from 2e9b48c  JAMES-2906 Add update flag test for ES
     new 429f5b0  JAMES-2813 add task type in additionalInformation dto
     new a6ca5cb  JAMES-2813 deserialize task additional information with the embeded type

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../migration/MigrationTaskAdditionalInformationsDTO.java | 11 +++++++++--
 .../migration/MigrationTaskSerializationTest.java         |  4 ++--
 .../java/org/apache/james/json/JsonGenericSerializer.java | 10 ----------
 .../test/java/org/apache/JsonGenericSerializerTest.java   | 15 ---------------
 ...ailboxPathV2MigrationTaskAdditionalInformationDTO.java | 12 +++++++++++-
 .../task/MailboxMergingTaskAdditionalInformationDTO.java  | 11 ++++++++++-
 .../MailboxPathV2MigrationTaskSerializationTest.java      |  4 ++--
 .../cassandra/mail/task/MailboxMergingTaskTest.java       |  4 ++--
 ...aultGarbageCollectionTaskAdditionalInformationDTO.java | 14 ++++++++++++--
 ...bStoreVaultGarbageCollectionTaskSerializationTest.java |  4 ++--
 .../MessageIdReindexingTaskAdditionalInformationDTO.java  | 13 ++++++++++---
 .../tools/indexer/ReprocessingContextInformationDTO.java  | 12 ++++++++++--
 ...ngleMailboxReindexingTaskAdditionalInformationDTO.java | 11 +++++++++--
 ...ngleMessageReindexingTaskAdditionalInformationDTO.java | 15 ++++++++++++---
 .../UserReindexingTaskAdditionalInformationDTO.java       | 11 +++++++++--
 .../ErrorRecoveryIndexationTaskSerializationTest.java     |  4 ++--
 .../indexer/FullReindexingTaskSerializationTest.java      |  4 ++--
 .../indexer/MessageIdReindexingTaskSerializationTest.java |  4 ++--
 .../SingleMailboxReindexingTaskSerializationTest.java     |  4 ++--
 .../SingleMessageReindexingTaskSerializationTest.java     |  4 ++--
 .../indexer/UserReindexingTaskSerializationTest.java      |  4 ++--
 ...pingsSourcesMigrationTaskAdditionalInformationDTO.java | 12 +++++++++++-
 .../MappingsSourcesMigrationTaskSerializationTest.java    |  4 ++--
 ...edMessagesVaultDeleteTaskAdditionalInformationDTO.java | 13 +++++++++++--
 ...edMessagesVaultExportTaskAdditionalInformationDTO.java | 11 ++++++++++-
 ...dMessagesVaultRestoreTaskAdditionalInformationDTO.java | 11 ++++++++++-
 .../DeletedMessagesVaultDeleteTaskSerializationTest.java  |  4 ++--
 .../DeletedMessagesVaultExportTaskSerializationTest.java  |  8 ++++----
 .../DeletedMessagesVaultRestoreTaskSerializationTest.java |  4 ++--
 ...DeadLettersRedeliveryTaskAdditionalInformationDTO.java | 11 ++++++++++-
 .../service/EventDeadLettersRedeliverTaskTest.java        |  8 ++++----
 .../ClearMailQueueTaskAdditionalInformationDTO.java       | 10 +++++++++-
 ...eteMailsFromMailQueueTaskAdditionalInformationDTO.java | 11 ++++++++++-
 .../james/webadmin/service/ClearMailQueueTaskTest.java    |  4 ++--
 .../service/DeleteMailsFromMailQueueTaskTest.java         | 12 ++++++------
 .../ClearMailRepositoryTaskAdditionalInformationDTO.java  | 10 +++++++++-
 .../ReprocessingAllMailsTaskAdditionalInformationDTO.java |  9 +++++++++
 .../ReprocessingOneMailTaskAdditionalInformationDTO.java  | 11 ++++++++++-
 .../webadmin/service/ClearMailRepositoryTaskTest.java     |  5 ++---
 .../webadmin/service/ReprocessingAllMailsTaskTest.java    |  6 +++---
 .../webadmin/service/ReprocessingOneMailTaskTest.java     |  4 ++--
 .../json/JsonTaskAdditionalInformationsSerializer.java    |  4 ++--
 .../server/task/json/dto/AdditionalInformationDTO.java    |  1 +
 43 files changed, 243 insertions(+), 105 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 02/02: JAMES-2813 deserialize task additional information with the embeded type

Posted by ro...@apache.org.
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 a6ca5cb847f67bd546227f6a155d1ca644f2238a
Author: Rémi KOWALSKI <rk...@linagora.com>
AuthorDate: Wed Oct 9 15:32:30 2019 +0200

    JAMES-2813 deserialize task additional information with the embeded type
---
 .../migration/MigrationTaskSerializationTest.java         |  4 ++--
 .../java/org/apache/james/json/JsonGenericSerializer.java | 10 ----------
 .../test/java/org/apache/JsonGenericSerializerTest.java   | 15 ---------------
 .../MailboxPathV2MigrationTaskSerializationTest.java      |  4 ++--
 .../cassandra/mail/task/MailboxMergingTaskTest.java       |  4 ++--
 ...bStoreVaultGarbageCollectionTaskSerializationTest.java |  4 ++--
 .../ErrorRecoveryIndexationTaskSerializationTest.java     |  4 ++--
 .../indexer/FullReindexingTaskSerializationTest.java      |  4 ++--
 .../indexer/MessageIdReindexingTaskSerializationTest.java |  4 ++--
 .../SingleMailboxReindexingTaskSerializationTest.java     |  4 ++--
 .../SingleMessageReindexingTaskSerializationTest.java     |  4 ++--
 .../indexer/UserReindexingTaskSerializationTest.java      |  4 ++--
 .../MappingsSourcesMigrationTaskSerializationTest.java    |  4 ++--
 .../DeletedMessagesVaultDeleteTaskSerializationTest.java  |  4 ++--
 .../DeletedMessagesVaultExportTaskSerializationTest.java  |  8 ++++----
 .../DeletedMessagesVaultRestoreTaskSerializationTest.java |  4 ++--
 .../service/EventDeadLettersRedeliverTaskTest.java        |  8 ++++----
 .../james/webadmin/service/ClearMailQueueTaskTest.java    |  4 ++--
 .../service/DeleteMailsFromMailQueueTaskTest.java         | 12 ++++++------
 .../webadmin/service/ClearMailRepositoryTaskTest.java     |  5 ++---
 .../webadmin/service/ReprocessingAllMailsTaskTest.java    |  6 +++---
 .../webadmin/service/ReprocessingOneMailTaskTest.java     |  4 ++--
 .../json/JsonTaskAdditionalInformationsSerializer.java    |  4 ++--
 23 files changed, 51 insertions(+), 77 deletions(-)

diff --git a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/MigrationTaskSerializationTest.java b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/MigrationTaskSerializationTest.java
index 6f2fdc6..29a8108 100644
--- a/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/MigrationTaskSerializationTest.java
+++ b/backends-common/cassandra/src/test/java/org/apache/james/backends/cassandra/migration/MigrationTaskSerializationTest.java
@@ -36,7 +36,7 @@ class MigrationTaskSerializationTest {
 
     private static final int SCHEMA_VERSION = 12;
     private static final String SERIALIZED_TASK = "{\"type\": \"CassandraMigration\", \"targetVersion\": 12}";
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"targetVersion\": 12}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"CassandraMigration\", \"targetVersion\": 12}";
 
     private final CassandraSchemaVersionDAO cassandraSchemaVersionDAO = mock(CassandraSchemaVersionDAO.class);
     private final CassandraSchemaTransitions transitions = mock(CassandraSchemaTransitions.class);
@@ -66,7 +66,7 @@ class MigrationTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         MigrationTask.AdditionalInformations details = new MigrationTask.AdditionalInformations(new SchemaVersion(SCHEMA_VERSION));
-        assertThat(jsonAdditionalInformationSerializer.deserialize("CassandraMigration", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
\ No newline at end of file
diff --git a/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java b/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java
index c03a4a1..5ace727 100644
--- a/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java
+++ b/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java
@@ -107,16 +107,6 @@ public class JsonGenericSerializer<T, U extends DTO> {
         }
     }
 
-    public T deserialize(String type, String value) throws IOException {
-        try {
-            DTOModule<T, U> dtoModule = retrieveModuleForType(type);
-            U dto = objectMapper.readValue(value, dtoModule.getDTOClass());
-            return dtoModule.getToDomainObjectConverter().convert(dto);
-        } catch (MismatchedInputException e) {
-            throw new JsonGenericSerializer.InvalidTypeException("Unable to deserialize the json document", e);
-        }
-    }
-
     private DTOModule<T, U> retrieveModuleForType(String type) {
         return Optional.ofNullable(typeToModule.get(type))
             .orElseThrow(() -> new UnknownTypeException("unknown type " + type));
diff --git a/json/src/test/java/org/apache/JsonGenericSerializerTest.java b/json/src/test/java/org/apache/JsonGenericSerializerTest.java
index ca6a58b..8205553 100644
--- a/json/src/test/java/org/apache/JsonGenericSerializerTest.java
+++ b/json/src/test/java/org/apache/JsonGenericSerializerTest.java
@@ -66,14 +66,6 @@ class JsonGenericSerializerTest {
 
     @SuppressWarnings("unchecked")
     @Test
-    void shouldDeserializeWithMissingWhenSpecifiedType() throws Exception {
-        assertThat(JsonGenericSerializer.of(TestModules.FIRST_TYPE)
-            .deserialize("first", MISSING_TYPE_JSON))
-            .isEqualTo(FIRST);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
     void shouldThrowWhenDeserializeEventWithDuplicatedTypes() {
         assertThatThrownBy(() -> JsonGenericSerializer.of(
                 TestModules.FIRST_TYPE,
@@ -89,13 +81,6 @@ class JsonGenericSerializerTest {
             .isInstanceOf(JsonGenericSerializer.UnknownTypeException.class);
     }
 
-    @Test
-    void shouldThrowWhenDeserializeUnknownTypeWhenSpecifiedType() {
-        assertThatThrownBy(() -> JsonGenericSerializer.of()
-            .deserialize("first",FIRST_JSON))
-            .isInstanceOf(JsonGenericSerializer.UnknownTypeException.class);
-    }
-
     @ParameterizedTest
     @MethodSource
     void serializeShouldHandleAllKnownTypes(BaseType domainObject, String serializedJson) throws Exception {
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskSerializationTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskSerializationTest.java
index 0c98977..f2a1b88 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskSerializationTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskSerializationTest.java
@@ -38,7 +38,7 @@ class MailboxPathV2MigrationTaskSerializationTest {
     private static final MailboxPathV2Migration.MailboxPathV2MigrationTask TASK = new MailboxPathV2Migration.MailboxPathV2MigrationTask(MIGRATION);
     private static final String SERIALIZED_TASK = "{\"type\": \"Cassandra_mailboxPathV2Migration\"}";
     private static final MailboxPathV2Migration.AdditionalInformation DETAILS = new MailboxPathV2Migration.AdditionalInformation(42L, 10);
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"remainingCount\":42,\"initialCount\":10}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"Cassandra_mailboxPathV2Migration\", \"remainingCount\":42,\"initialCount\":10}";
 
     private static final JsonTaskSerializer TASK_SERIALIZER = new JsonTaskSerializer(MailboxPathV2MigrationTaskDTO.MODULE.apply(MIGRATION));
     private static final JsonTaskAdditionalInformationsSerializer JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER = new JsonTaskAdditionalInformationsSerializer(MailboxPathV2MigrationTaskAdditionalInformationDTO.MODULE);
@@ -62,7 +62,7 @@ class MailboxPathV2MigrationTaskSerializationTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        TaskExecutionDetails.AdditionalInformation deserialized = JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("Cassandra_mailboxPathV2Migration", SERIALIZED_ADDITIONAL_INFORMATION);
+        TaskExecutionDetails.AdditionalInformation deserialized = JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION);
         assertThat(deserialized).isInstanceOf(MailboxPathV2Migration.AdditionalInformation.class);
 
         MailboxPathV2Migration.AdditionalInformation additionalInformation = (MailboxPathV2Migration.AdditionalInformation) deserialized;
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskTest.java
index 59fa8b9..c63d591 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskTest.java
@@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
 class MailboxMergingTaskTest {
     private static final CassandraId.Factory CASSANDRA_ID_FACTORY = new CassandraId.Factory();
     private static final String SERIALIZED = "{\"type\":\"mailboxMerging\",\"totalMessageCount\":0,\"oldMailboxId\":\"3b8e5f90-b94f-20f8-ce7b-3c4aad93b90c\",\"newMailboxId\":\"2c7f4081-aa30-11e9-bf6c-2d3b9e84aafd\"}";
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"oldMailboxId\":\"3b8e5f90-b94f-20f8-ce7b-3c4aad93b90c\",\"newMailboxId\":\"2c7f4081-aa30-11e9-bf6c-2d3b9e84aafd\",\"totalMessageCount\":10,\"messageMovedCount\":15,\"messageFailedCount\":20}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\":\"mailboxMerging\", \"oldMailboxId\":\"3b8e5f90-b94f-20f8-ce7b-3c4aad93b90c\",\"newMailboxId\":\"2c7f4081-aa30-11e9-bf6c-2d3b9e84aafd\",\"totalMessageCount\":10,\"messageMovedCount\":15,\"messageFailedCount\":20}";
     private static final MailboxMergingTaskRunner TASK_RUNNER = mock(MailboxMergingTaskRunner.class);
     private static final MailboxMergingTask TASK = new MailboxMergingTask(TASK_RUNNER, 0L, CASSANDRA_ID_FACTORY.fromString("3b8e5f90-b94f-20f8-ce7b-3c4aad93b90c"), CASSANDRA_ID_FACTORY.fromString("2c7f4081-aa30-11e9-bf6c-2d3b9e84aafd"));
     private static final MailboxMergingTask.Details DETAILS = new MailboxMergingTask.Details(CASSANDRA_ID_FACTORY.fromString("3b8e5f90-b94f-20f8-ce7b-3c4aad93b90c"), CASSANDRA_ID_FACTORY.fromString("2c7f4081-aa30-11e9-bf6c-2d3b9e84aafd"), 10, 15, 20);
@@ -62,7 +62,7 @@ class MailboxMergingTaskTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("mailboxMerging", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(DETAILS);
     }
 }
\ No newline at end of file
diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskSerializationTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskSerializationTest.java
index 85e6f6b..21085a0 100644
--- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskSerializationTest.java
+++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskSerializationTest.java
@@ -53,7 +53,7 @@ class BlobStoreVaultGarbageCollectionTaskSerializationTest {
     private static final BlobStoreVaultGarbageCollectionTask TASK = TASK_FACTORY.create();
 
     private static final String SERIALIZED_TASK = "{\"type\":\"deletedMessages/blobStoreBasedGarbageCollection\"}";
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"beginningOfRetentionPeriod\":\"2019-09-03T15:26:13.356+02:00[Europe/Paris]\",\"deletedBuckets\":[\"1\", \"2\", \"3\"]}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"type\":\"deletedMessages/blobStoreBasedGarbageCollection\", \"beginningOfRetentionPeriod\":\"2019-09-03T15:26:13.356+02:00[Europe/Paris]\",\"deletedBuckets\":[\"1\", \"2\", \"3\"]}";
 
     private static final JsonTaskAdditionalInformationsSerializer JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER = new JsonTaskAdditionalInformationsSerializer(BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.MODULE);
 
@@ -85,7 +85,7 @@ class BlobStoreVaultGarbageCollectionTaskSerializationTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("deletedMessages/blobStoreBasedGarbageCollection", SERIALIZED_ADDITIONAL_INFORMATION_TASK))
+        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION_TASK))
             .isEqualToComparingFieldByField(DETAILS);
     }
 }
\ No newline at end of file
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
index e1cca2a..fa0fb0e 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ErrorRecoveryIndexationTaskSerializationTest.java
@@ -50,7 +50,7 @@ class ErrorRecoveryIndexationTaskSerializationTest {
 
     private final String serializedErrorRecoveryReindexingTask = "{\"type\": \"ErrorRecoveryIndexation\"," +
         " \"previousFailures\" : [{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"ErrorRecoveryIndexation\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
 
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
@@ -107,7 +107,7 @@ class ErrorRecoveryIndexationTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         ReprocessingContextInformation details = new ReprocessingContextInformation(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("ErrorRecoveryIndexation", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
index 18659da..eff3fd2 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/FullReindexingTaskSerializationTest.java
@@ -51,7 +51,7 @@ class FullReindexingTaskSerializationTest {
     private ReIndexingExecutionFailures reIndexingExecutionFailures;
 
     private final String serializedFullReindexingTask = "{\"type\": \"FullReIndexing\"}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"FullReIndexing\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
 
     @BeforeEach
     void setUp() {
@@ -95,7 +95,7 @@ class FullReindexingTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         ReprocessingContextInformation details = new ReprocessingContextInformation(successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("FullReIndexing", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
index 36cd393..0961b9c 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskSerializationTest.java
@@ -39,7 +39,7 @@ class MessageIdReindexingTaskSerializationTest {
     private MessageId.Factory messageIdFactory;
     private JsonTaskSerializer taskSerializer;
     private final String serializedMessageIdReIndexingTask = "{\"type\": \"MessageIdReIndexingTask\", \"messageId\": \"1\"}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"messageId\": \"1\"}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"MessageIdReIndexingTask\", \"messageId\": \"1\"}";
 
     private JsonTaskAdditionalInformationsSerializer jsonAdditionalInformationSerializer;
 
@@ -84,7 +84,7 @@ class MessageIdReindexingTaskSerializationTest {
     void additonalInformationShouldBeDeserializable() throws IOException {
         MessageId messageId = messageIdFactory.fromString("1");
         MessageIdReIndexingTask.AdditionalInformation details = new MessageIdReIndexingTask.AdditionalInformation(messageId);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("MessageIdReIndexingTask", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
index 4619f62..e222760 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskSerializationTest.java
@@ -48,7 +48,7 @@ class SingleMailboxReindexingTaskSerializationTest {
 
     private final String serializedMailboxReindexingTask = "{\"type\": \"mailboxReIndexing\", \"mailboxId\": \"1\"}";
 
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{ \"mailboxId\": \"1\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10, 20]}]}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"mailboxReIndexing\", \"mailboxId\": \"1\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10, 20]}]}";
 
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
@@ -101,7 +101,7 @@ class SingleMailboxReindexingTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         SingleMailboxReindexingTask.AdditionalInformation details = new SingleMailboxReindexingTask.AdditionalInformation(mailboxId, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("mailboxReIndexing", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
index b3c7c58..60985cb 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskSerializationTest.java
@@ -39,7 +39,7 @@ class SingleMessageReindexingTaskSerializationTest {
     private ReIndexerPerformer reIndexerPerformer;
     private JsonTaskSerializer taskSerializer;
     private final String serializedMessageReindexingTask = "{\"type\": \"messageReIndexing\", \"mailboxId\": \"1\", \"uid\": 10}";
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"mailboxId\": \"1\", \"uid\": 10}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"messageReIndexing\", \"mailboxId\": \"1\", \"uid\": 10}";
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
     private JsonTaskAdditionalInformationsSerializer jsonAdditionalInformationSerializer = new JsonTaskAdditionalInformationsSerializer(
@@ -79,7 +79,7 @@ class SingleMessageReindexingTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         SingleMessageReindexingTask.AdditionalInformation details = new SingleMessageReindexingTask.AdditionalInformation(mailboxId, messageUid);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("messageReIndexing", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
index 737f17a..6aa907d 100644
--- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
+++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/UserReindexingTaskSerializationTest.java
@@ -49,7 +49,7 @@ class UserReindexingTaskSerializationTest {
     private ReIndexingExecutionFailures reIndexingExecutionFailures;
     private final String serializedUserReindexingTask = "{\"type\": \"userReIndexing\", \"username\": \"foo@apache.org\"}";
 
-    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{ \"user\": \"foo@apache.org\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
+    private final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"userReIndexing\", \"user\": \"foo@apache.org\", \"successfullyReprocessedMailCount\":42,\"failedReprocessedMailCount\":2,\"failures\":[{\"mailboxId\":\"1\",\"uids\":[10]},{\"mailboxId\":\"2\",\"uids\":[20]}]}";
 
     private final TestId mailboxId = TestId.of(1L);
     private final MessageUid messageUid = MessageUid.of(10L);
@@ -104,7 +104,7 @@ class UserReindexingTaskSerializationTest {
     @Test
     void additionalInformationShouldBeDeserializable() throws IOException {
         UserReindexingTask.AdditionalInformation details = new UserReindexingTask.AdditionalInformation(user, successfullyReprocessedMailCount, failedReprocessedMailCount, reIndexingExecutionFailures);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("userReIndexing", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskSerializationTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskSerializationTest.java
index c60acd9..2fa7549 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskSerializationTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskSerializationTest.java
@@ -38,7 +38,7 @@ class MappingsSourcesMigrationTaskSerializationTest {
     private static final MappingsSourcesMigration.MappingsSourcesMigrationTask TASK = new MappingsSourcesMigration.MappingsSourcesMigrationTask(MIGRATION);
     private static final String SERIALIZED_TASK = "{\"type\": \"mappingsSourcesMigration\"}";
     private static final MappingsSourcesMigration.AdditionalInformation DETAILS = new MappingsSourcesMigration.AdditionalInformation(42L, 10);
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"successfulMappingsCount\":42,\"errorMappinsCount\":10}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION = "{\"type\": \"mappingsSourcesMigration\", \"successfulMappingsCount\":42,\"errorMappinsCount\":10}";
 
     private static final JsonTaskSerializer TASK_SERIALIZER = new JsonTaskSerializer(MappingsSourcesMigrationTaskDTO.MODULE.apply(MIGRATION));
     private static final JsonTaskAdditionalInformationsSerializer JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER = new JsonTaskAdditionalInformationsSerializer(MappingsSourcesMigrationTaskAdditionalInformationDTO.MODULE);
@@ -62,7 +62,7 @@ class MappingsSourcesMigrationTaskSerializationTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("mappingsSourcesMigration", SERIALIZED_ADDITIONAL_INFORMATION))
+        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(DETAILS);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java
index c196d25..01b5789 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskSerializationTest.java
@@ -46,7 +46,7 @@ class DeletedMessagesVaultDeleteTaskSerializationTest {
     private final MessageId messageId = messageIdFactory.generate();
 
     private final String serializedDeleteMessagesVaultDeleteTask = "{\"type\": \"deletedMessages/delete\", \"userName\":\"james\", \"messageId\": \"" + messageId.serialize() + "\"}";
-    private final String serializedAdditionalInformation = "{\"userName\":\"james\", \"messageId\": \"" + messageId.serialize() + "\"}";
+    private final String serializedAdditionalInformation = "{\"type\": \"deletedMessages/delete\", \"userName\":\"james\", \"messageId\": \"" + messageId.serialize() + "\"}";
 
     private JsonTaskAdditionalInformationsSerializer jsonAdditionalInformationSerializer;
 
@@ -84,7 +84,7 @@ class DeletedMessagesVaultDeleteTaskSerializationTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         DeletedMessagesVaultDeleteTask.AdditionalInformation details = new DeletedMessagesVaultDeleteTask.AdditionalInformation(user, messageId);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("deletedMessages/delete", serializedAdditionalInformation))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(serializedAdditionalInformation))
             .isEqualToComparingFieldByField(details);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
index 57ccf5e..61bd226 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
@@ -60,7 +60,7 @@ class DeletedMessagesVaultExportTaskSerializationTest {
         "\"userExportFrom\":\"james\"," +
         "\"exportQuery\":{\"combinator\":\"and\",\"criteria\":[{\"fieldName\":\"hasAttachment\",\"operator\":\"equals\",\"value\":\"true\"}]}," +
         "\"exportTo\":\"james@apache.org\"}\n";
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"exportTo\":\"james@apache.org\",\"userExportFrom\":\"james\",\"totalExportedMessages\":42}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"type\":\"deletedMessages/export\", \"exportTo\":\"james@apache.org\",\"userExportFrom\":\"james\",\"totalExportedMessages\":42}";
 
     private static final JsonTaskAdditionalInformationsSerializer JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER = new JsonTaskAdditionalInformationsSerializer(DeletedMessagesVaultExportTaskAdditionalInformationDTO.MODULE);
 
@@ -104,14 +104,14 @@ class DeletedMessagesVaultExportTaskSerializationTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("deletedMessages/export", SERIALIZED_ADDITIONAL_INFORMATION_TASK))
+        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION_TASK))
             .isEqualToComparingFieldByField(details);
     }
 
     @Test
     void additonalInformationWithInvalidMailAddressShouldThrow() throws IOException {
-        String invalidSerializedAdditionalInformationTask = "{\"exportTo\":\"invalid\",\"userExportFrom\":\"james\",\"totalExportedMessages\":42}";;
-        assertThatCode(() -> JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("deletedMessages/export", invalidSerializedAdditionalInformationTask))
+        String invalidSerializedAdditionalInformationTask = "{\"type\":\"deletedMessages/export\",\"exportTo\":\"invalid\",\"userExportFrom\":\"james\",\"totalExportedMessages\":42}";;
+        assertThatCode(() -> JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(invalidSerializedAdditionalInformationTask))
             .hasCauseInstanceOf(AddressException.class);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java
index d6dba23..b15c43e 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java
@@ -54,7 +54,7 @@ class DeletedMessagesVaultRestoreTaskSerializationTest {
         "\"userToRestore\":\"james\"," +
         "\"query\":{\"combinator\":\"and\",\"criteria\":[{\"fieldName\":\"hasAttachment\",\"operator\":\"equals\",\"value\":\"true\"}]}" +
         "}";
-    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"user\":\"james\",\"successfulRestoreCount\":42,\"errorRestoreCount\":10}";
+    private static final String SERIALIZED_ADDITIONAL_INFORMATION_TASK = "{\"type\":\"deletedMessages/restore\", \"user\":\"james\",\"successfulRestoreCount\":42,\"errorRestoreCount\":10}";
 
     private static final JsonTaskAdditionalInformationsSerializer JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER = new JsonTaskAdditionalInformationsSerializer(DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.MODULE);
 
@@ -92,7 +92,7 @@ class DeletedMessagesVaultRestoreTaskSerializationTest {
 
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
-        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize("deletedMessages/restore", SERIALIZED_ADDITIONAL_INFORMATION_TASK))
+        assertThat(JSON_TASK_ADDITIONAL_INFORMATIONS_SERIALIZER.deserialize(SERIALIZED_ADDITIONAL_INFORMATION_TASK))
             .isEqualToComparingFieldByField(DETAILS);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
index a3dd8ba..3b89caa 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/service/EventDeadLettersRedeliverTaskTest.java
@@ -38,8 +38,8 @@ import net.javacrumbs.jsonunit.assertj.JsonAssertions;
 
 class EventDeadLettersRedeliverTaskTest {
     private static final String SERIALIZED = "{\"type\":\"eventDeadLettersRedeliverTask\"}";
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"successfulRedeliveriesCount\":10,\"failedRedeliveriesCount\":4,\"group\":\"org.apache.james.mailbox.events.GenericGroup-foo\",\"insertionId\":\"53db3dd9-80eb-476f-b25a-722ad364905a\"}";
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_EMPTY_FIELDS = "{\"successfulRedeliveriesCount\":10,\"failedRedeliveriesCount\":4}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"type\":\"eventDeadLettersRedeliverTask\", \"successfulRedeliveriesCount\":10,\"failedRedeliveriesCount\":4,\"group\":\"org.apache.james.mailbox.events.GenericGroup-foo\",\"insertionId\":\"53db3dd9-80eb-476f-b25a-722ad364905a\"}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_EMPTY_FIELDS = "{\"type\":\"eventDeadLettersRedeliverTask\", \"successfulRedeliveriesCount\":10,\"failedRedeliveriesCount\":4}";
     private static final EventDeadLettersRedeliverService SERVICE = mock(EventDeadLettersRedeliverService.class);
     private static final EventRetriever EVENT_RETRIEVER = mock(EventRetriever.class);
     private static final EventDeadLettersRedeliverTask TASK = new EventDeadLettersRedeliverTask(SERVICE, EVENT_RETRIEVER);
@@ -88,7 +88,7 @@ class EventDeadLettersRedeliverTaskTest {
             FAILED_REDELIVERY_COUNT,
             SOME_GROUP,
             SOME_INSERTION_ID);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("eventDeadLettersRedeliverTask", SERIALIZED_TASK_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_TASK_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 
@@ -107,7 +107,7 @@ class EventDeadLettersRedeliverTaskTest {
             FAILED_REDELIVERY_COUNT,
             NO_GROUP,
             NO_INSERTION_ID);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("eventDeadLettersRedeliverTask", SERIALIZED_TASK_ADDITIONAL_INFORMATION_EMPTY_FIELDS))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_TASK_ADDITIONAL_INFORMATION_EMPTY_FIELDS))
             .isEqualToComparingFieldByField(details);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
index c6b3c29..a6d1b41 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
@@ -44,7 +44,7 @@ class ClearMailQueueTaskTest {
     private static final long REMAINING_COUNT = 10L;
     private JsonTaskAdditionalInformationsSerializer jsonAdditionalInformationSerializer = new JsonTaskAdditionalInformationsSerializer(
         ClearMailQueueTaskAdditionalInformationDTO.SERIALIZATION_MODULE);
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"mailQueueName\":\"anyQueue\",\"initialCount\":0,\"remainingCount\":10}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"type\": \"clear-mail-queue\", \"mailQueueName\":\"anyQueue\",\"initialCount\":0,\"remainingCount\":10}";
 
     @Test
     void taskShouldBeSerializable() throws Exception {
@@ -92,7 +92,7 @@ class ClearMailQueueTaskTest {
     @Test
     void additionalInformationShouldBeDeserializable() throws IOException {
         ClearMailQueueTask.AdditionalInformation details = new ClearMailQueueTask.AdditionalInformation(QUEUE_NAME, INITIAL_COUNT, REMAINING_COUNT);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("clear-mail-queue", SERIALIZED_TASK_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_TASK_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
index 899c07c..36f65bc 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
@@ -117,9 +117,9 @@ class DeleteMailsFromMailQueueTaskTest {
 
     private static Stream<Arguments> validAdditionalInformations() throws Exception {
         return Stream.of(
-            Arguments.of(10L, 5L, Optional.of(new MailAddress("a@b.c")), Optional.empty(), Optional.empty(), "{\"queue\": \"anyQueue\", \"sender\": \"a@b.c\", \"initialCount\" : 10, \"remainingCount\":5}"),
-            Arguments.of(1L, 0L, Optional.empty(), Optional.of("name"), Optional.empty(), "{\"queue\": \"anyQueue\", \"name\": \"name\", \"initialCount\" : 1, \"remainingCount\":0}"),
-            Arguments.of(6L, 6L, Optional.empty(), Optional.empty(), Optional.of(new MailAddress("d@e.f")), "{\"queue\": \"anyQueue\", \"recipient\": \"d@e.f\", \"initialCount\" : 6, \"remainingCount\":6}")
+            Arguments.of(10L, 5L, Optional.of(new MailAddress("a@b.c")), Optional.empty(), Optional.empty(), "{\"type\": \"delete-mails-from-mail-queue\", \"queue\": \"anyQueue\", \"sender\": \"a@b.c\", \"initialCount\" : 10, \"remainingCount\":5}"),
+            Arguments.of(1L, 0L, Optional.empty(), Optional.of("name"), Optional.empty(), "{\"type\": \"delete-mails-from-mail-queue\", \"queue\": \"anyQueue\", \"name\": \"name\", \"initialCount\" : 1, \"remainingCount\":0}"),
+            Arguments.of(6L, 6L, Optional.empty(), Optional.empty(), Optional.of(new MailAddress("d@e.f")), "{\"type\": \"delete-mails-from-mail-queue\", \"queue\": \"anyQueue\", \"recipient\": \"d@e.f\", \"initialCount\" : 6, \"remainingCount\":6}")
         );
     }
 
@@ -152,7 +152,7 @@ class DeleteMailsFromMailQueueTaskTest {
                                                      String serializedAdditionalInformationJson) throws IOException {
         DeleteMailsFromMailQueueTask.AdditionalInformation details = new DeleteMailsFromMailQueueTask.AdditionalInformation(queueName, initialCount, remainingCount, sender, name, recipient);
 
-        assertThat(jsonAdditionalInformationsSerializer.deserialize("delete-mails-from-mail-queue", serializedAdditionalInformationJson))
+        assertThat(jsonAdditionalInformationsSerializer.deserialize(serializedAdditionalInformationJson))
             .isEqualToComparingFieldByField(details);
     }
 
@@ -163,8 +163,8 @@ class DeleteMailsFromMailQueueTaskTest {
     @Test
     void additionalInformationShouldThrowWhenDeserializeAMalformedMailAddress() throws Exception {
 
-        String serializedJson = "{\"queue\": \"anyQueue\", \"sender\": \"a.b.c\", \"initialCount\" : 10, \"remainingCount\":5}";
-        assertThatThrownBy(() -> jsonAdditionalInformationsSerializer.deserialize("delete-mails-from-mail-queue", serializedJson))
+        String serializedJson = "{\"type\": \"delete-mails-from-mail-queue\", \"queue\": \"anyQueue\", \"sender\": \"a.b.c\", \"initialCount\" : 10, \"remainingCount\":5}";
+        assertThatThrownBy(() -> jsonAdditionalInformationsSerializer.deserialize(serializedJson))
             .isInstanceOf(AddressException.class);
     }
 
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskTest.java
index f3c48e7..237c88e 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskTest.java
@@ -37,7 +37,7 @@ import net.javacrumbs.jsonunit.assertj.JsonAssertions;
 
 class ClearMailRepositoryTaskTest {
     private static final String SERIALIZED = "{\"type\":\"clearMailRepository\",\"mailRepositoryPath\":\"a\"}";
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"mailRepositoryPath\":\"a\", \"initialCount\": 0, \"remainingCount\": 10}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION = "{\"type\":\"clearMailRepository\", \"mailRepositoryPath\":\"a\", \"initialCount\": 0, \"remainingCount\": 10}";
     private static final ImmutableList<MailRepository> MAIL_REPOSITORIES = ImmutableList.of();
     private static final MailRepositoryPath MAIL_REPOSITORY_PATH = MailRepositoryPath.from("a");
     private static final ClearMailRepositoryTask TASK = new ClearMailRepositoryTask(MAIL_REPOSITORIES, MAIL_REPOSITORY_PATH);
@@ -46,7 +46,6 @@ class ClearMailRepositoryTaskTest {
     private JsonTaskAdditionalInformationsSerializer jsonAdditionalInformationSerializer = new JsonTaskAdditionalInformationsSerializer(
         ClearMailRepositoryTaskAdditionalInformationDTO.SERIALIZATION_MODULE);
 
-
     @Test
     void taskShouldBeSerializable() throws JsonProcessingException {
         JsonTaskSerializer testee = new JsonTaskSerializer(ClearMailRepositoryTaskDTO.MODULE.apply(MAIL_REPOSITORIES));
@@ -79,7 +78,7 @@ class ClearMailRepositoryTaskTest {
     @Test
     void additionalInformationShouldBeDeserializable() throws IOException {
         ClearMailRepositoryTask.AdditionalInformation details = new ClearMailRepositoryTask.AdditionalInformation(MAIL_REPOSITORY_PATH, INITIAL_COUNT, REMAINING_COUNT);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("clearMailRepository", SERIALIZED_TASK_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_TASK_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskTest.java
index 810bafe..c49659d 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskTest.java
@@ -50,8 +50,8 @@ class ReprocessingAllMailsTaskTest {
     private static final long REMAINING_COUNT = 3L;
     private static final String SERIALIZED_TASK_WITH_TARGET_PROCESSOR = "{\"type\":\"reprocessingAllTask\",\"repositorySize\":5,\"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"targetProcessor\":\"targetProcessor\"}";
     private static final String SERIALIZED_TASK_WITHOUT_TARGET_PROCESSOR = "{\"type\":\"reprocessingAllTask\",\"repositorySize\":5,\"repositoryPath\":\"a\",\"targetQueue\":\"queue\"}";
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_WITH_TARGET_PROCESSOR = "{\"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"targetProcessor\":\"targetProcessor\",\"initialCount\":5,\"remainingCount\":3}";
-    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_WITHOUT_TARGET_PROCESSOR = "{\"repositoryPath\":\"a\",\"targetQueue\":\"queue\", \"initialCount\":5,\"remainingCount\":3}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_WITH_TARGET_PROCESSOR = "{\"type\":\"reprocessingAllTask\", \"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"targetProcessor\":\"targetProcessor\",\"initialCount\":5,\"remainingCount\":3}";
+    private static final String SERIALIZED_TASK_ADDITIONAL_INFORMATION_WITHOUT_TARGET_PROCESSOR = "{\"type\":\"reprocessingAllTask\", \"repositoryPath\":\"a\",\"targetQueue\":\"queue\", \"initialCount\":5,\"remainingCount\":3}";
 
     @ParameterizedTest
     @MethodSource
@@ -137,7 +137,7 @@ class ReprocessingAllMailsTaskTest {
                                                      long remainingCount,
                                                      String serialized) throws IOException {
         ReprocessingAllMailsTask.AdditionalInformation details = new ReprocessingAllMailsTask.AdditionalInformation(repositoryPath, targetQueue, targetProcessor, repositorySize, remainingCount);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("reprocessingAllTask", serialized))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(serialized))
             .isEqualToComparingFieldByField(details);
     }
 
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskTest.java
index b9cec70..ab42374 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskTest.java
@@ -44,7 +44,7 @@ import net.javacrumbs.jsonunit.assertj.JsonAssertions;
 class ReprocessingOneMailTaskTest {
     private static final ReprocessingService REPROCESSING_SERVICE = mock(ReprocessingService.class);
     private static final String SERIALIZED_TASK_1 = "{\"type\":\"reprocessingOneTask\",\"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"mailKey\": \"myMail\",\"targetProcessor\":\"targetProcessor\"}";
-    private static final String SERIALIZED_TASK_1_ADDITIONAL_INFORMATION = "{\"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"mailKey\": \"myMail\",\"targetProcessor\":\"targetProcessor\"}";
+    private static final String SERIALIZED_TASK_1_ADDITIONAL_INFORMATION = "{\"type\":\"reprocessingOneTask\", \"repositoryPath\":\"a\",\"targetQueue\":\"queue\",\"mailKey\": \"myMail\",\"targetProcessor\":\"targetProcessor\"}";
     private static final MailRepositoryPath REPOSITORY_PATH = MailRepositoryPath.from("a");
     private static final String TARGET_QUEUE = "queue";
     private static final MailKey MAIL_KEY = new MailKey("myMail");
@@ -111,7 +111,7 @@ class ReprocessingOneMailTaskTest {
     @Test
     void additonalInformationShouldBeDeserializable() throws IOException {
         ReprocessingOneMailTask.AdditionalInformation details = new ReprocessingOneMailTask.AdditionalInformation(REPOSITORY_PATH, TARGET_QUEUE, MAIL_KEY, TARGET_PROCESSOR);
-        assertThat(jsonAdditionalInformationSerializer.deserialize("reprocessingOneTask", SERIALIZED_TASK_1_ADDITIONAL_INFORMATION))
+        assertThat(jsonAdditionalInformationSerializer.deserialize(SERIALIZED_TASK_1_ADDITIONAL_INFORMATION))
             .isEqualToComparingFieldByField(details);
     }
 }
diff --git a/server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskAdditionalInformationsSerializer.java b/server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskAdditionalInformationsSerializer.java
index eeb4dd0..fbca09e 100644
--- a/server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskAdditionalInformationsSerializer.java
+++ b/server/task/task-json/src/main/java/org/apache/james/server/task/json/JsonTaskAdditionalInformationsSerializer.java
@@ -65,9 +65,9 @@ public class JsonTaskAdditionalInformationsSerializer {
         }
     }
 
-    public TaskExecutionDetails.AdditionalInformation deserialize(String type, String value) throws IOException {
+    public TaskExecutionDetails.AdditionalInformation deserialize(String value) throws IOException {
         try {
-            return jsonGenericSerializer.deserialize(type, value);
+            return jsonGenericSerializer.deserialize(value);
         } catch (JsonGenericSerializer.UnknownTypeException e) {
             throw new UnknownAdditionalInformationException(e);
         } catch (JsonGenericSerializer.InvalidTypeException e) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[james-project] 01/02: JAMES-2813 add task type in additionalInformation dto

Posted by ro...@apache.org.
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 429f5b0348eb3fc26dbf8db6bce444f4d0cb570a
Author: Rémi KOWALSKI <rk...@linagora.com>
AuthorDate: Wed Oct 9 15:05:05 2019 +0200

    JAMES-2813 add task type in additionalInformation dto
---
 .../migration/MigrationTaskAdditionalInformationsDTO.java | 11 +++++++++--
 ...ailboxPathV2MigrationTaskAdditionalInformationDTO.java | 12 +++++++++++-
 .../task/MailboxMergingTaskAdditionalInformationDTO.java  | 11 ++++++++++-
 ...aultGarbageCollectionTaskAdditionalInformationDTO.java | 14 ++++++++++++--
 .../MessageIdReindexingTaskAdditionalInformationDTO.java  | 13 ++++++++++---
 .../tools/indexer/ReprocessingContextInformationDTO.java  | 12 ++++++++++--
 ...ngleMailboxReindexingTaskAdditionalInformationDTO.java | 11 +++++++++--
 ...ngleMessageReindexingTaskAdditionalInformationDTO.java | 15 ++++++++++++---
 .../UserReindexingTaskAdditionalInformationDTO.java       | 11 +++++++++--
 ...pingsSourcesMigrationTaskAdditionalInformationDTO.java | 12 +++++++++++-
 ...edMessagesVaultDeleteTaskAdditionalInformationDTO.java | 13 +++++++++++--
 ...edMessagesVaultExportTaskAdditionalInformationDTO.java | 11 ++++++++++-
 ...dMessagesVaultRestoreTaskAdditionalInformationDTO.java | 11 ++++++++++-
 ...DeadLettersRedeliveryTaskAdditionalInformationDTO.java | 11 ++++++++++-
 .../ClearMailQueueTaskAdditionalInformationDTO.java       | 10 +++++++++-
 ...eteMailsFromMailQueueTaskAdditionalInformationDTO.java | 11 ++++++++++-
 .../ClearMailRepositoryTaskAdditionalInformationDTO.java  | 10 +++++++++-
 .../ReprocessingAllMailsTaskAdditionalInformationDTO.java |  9 +++++++++
 .../ReprocessingOneMailTaskAdditionalInformationDTO.java  | 11 ++++++++++-
 .../server/task/json/dto/AdditionalInformationDTO.java    |  1 +
 20 files changed, 192 insertions(+), 28 deletions(-)

diff --git a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskAdditionalInformationsDTO.java b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskAdditionalInformationsDTO.java
index b8e8400..a8c74b2 100644
--- a/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskAdditionalInformationsDTO.java
+++ b/backends-common/cassandra/src/main/java/org/apache/james/backends/cassandra/migration/MigrationTaskAdditionalInformationsDTO.java
@@ -31,16 +31,23 @@ public class MigrationTaskAdditionalInformationsDTO implements AdditionalInforma
         DTOModule.forDomainObject(MigrationTask.AdditionalInformations.class)
             .convertToDTO(MigrationTaskAdditionalInformationsDTO.class)
             .toDomainObjectConverter(dto -> new MigrationTask.AdditionalInformations(new SchemaVersion(dto.getTargetVersion())))
-            .toDTOConverter((details, type) -> new MigrationTaskAdditionalInformationsDTO(details.getToVersion()))
+            .toDTOConverter((details, type) -> new MigrationTaskAdditionalInformationsDTO(type, details.getToVersion()))
             .typeName(MigrationTask.CASSANDRA_MIGRATION.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final int targetVersion;
 
-    public MigrationTaskAdditionalInformationsDTO(@JsonProperty("targetVersion") int targetVersion) {
+    public MigrationTaskAdditionalInformationsDTO(@JsonProperty("type") String type, @JsonProperty("targetVersion") int targetVersion) {
+        this.type = type;
         this.targetVersion = targetVersion;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     public int getTargetVersion() {
         return targetVersion;
     }
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskAdditionalInformationDTO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskAdditionalInformationDTO.java
index d6c021d..dbe9890 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskAdditionalInformationDTO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/MailboxPathV2MigrationTaskAdditionalInformationDTO.java
@@ -30,6 +30,7 @@ public class MailboxPathV2MigrationTaskAdditionalInformationDTO implements Addit
 
     private static MailboxPathV2MigrationTaskAdditionalInformationDTO fromDomainObject(MailboxPathV2Migration.AdditionalInformation additionalInformation, String type) {
         return new MailboxPathV2MigrationTaskAdditionalInformationDTO(
+            type,
             additionalInformation.getRemainingCount(),
             additionalInformation.getInitialCount()
         );
@@ -44,10 +45,14 @@ public class MailboxPathV2MigrationTaskAdditionalInformationDTO implements Addit
             .typeName(MailboxPathV2Migration.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final long remainingCount;
     private final long initialCount;
 
-    public MailboxPathV2MigrationTaskAdditionalInformationDTO(@JsonProperty("remainingCount") long remainingCount, @JsonProperty("initialCount") long initialCount) {
+    public MailboxPathV2MigrationTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                              @JsonProperty("remainingCount") long remainingCount,
+                                                              @JsonProperty("initialCount") long initialCount) {
+        this.type = type;
         this.remainingCount = remainingCount;
         this.initialCount = initialCount;
     }
@@ -60,6 +65,11 @@ public class MailboxPathV2MigrationTaskAdditionalInformationDTO implements Addit
         return initialCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     private MailboxPathV2Migration.AdditionalInformation toDomainObject() {
         return new MailboxPathV2Migration.AdditionalInformation(
             remainingCount,
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskAdditionalInformationDTO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskAdditionalInformationDTO.java
index 16a898e..1bcf8a7 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskAdditionalInformationDTO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/MailboxMergingTaskAdditionalInformationDTO.java
@@ -32,6 +32,7 @@ public class MailboxMergingTaskAdditionalInformationDTO implements AdditionalInf
 
     private static MailboxMergingTaskAdditionalInformationDTO fromDomainObject(MailboxMergingTask.Details details, String type) {
         return new MailboxMergingTaskAdditionalInformationDTO(
+            type,
             details.getOldMailboxId(),
             details.getNewMailboxId(),
             details.getTotalMessageCount(),
@@ -48,17 +49,20 @@ public class MailboxMergingTaskAdditionalInformationDTO implements AdditionalInf
             .typeName(MailboxMergingTask.MAILBOX_MERGING.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String oldMailboxId;
     private final String newMailboxId;
     private final long totalMessageCount;
     private final long messageMovedCount;
     private final long messageFailedCount;
 
-    public MailboxMergingTaskAdditionalInformationDTO(@JsonProperty("oldMailboxId") String oldMailboxId,
+    public MailboxMergingTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                      @JsonProperty("oldMailboxId") String oldMailboxId,
                                                       @JsonProperty("newMailboxId") String newMailboxId,
                                                       @JsonProperty("totalMessageCount") long totalMessageCount,
                                                       @JsonProperty("messageMovedCount") long messageMovedCount,
                                                       @JsonProperty("messageFailedCount") long messageFailedCount) {
+        this.type = type;
         this.oldMailboxId = oldMailboxId;
         this.newMailboxId = newMailboxId;
         this.totalMessageCount = totalMessageCount;
@@ -86,6 +90,11 @@ public class MailboxMergingTaskAdditionalInformationDTO implements AdditionalInf
         return messageFailedCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     private MailboxMergingTask.Details toDomainObject() {
         return new MailboxMergingTask.Details(
             ID_FACTORY.fromString(oldMailboxId),
diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.java
index cc68f1a..87d236c 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO.java
@@ -34,6 +34,7 @@ import com.github.steveash.guavate.Guavate;
 public class BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO implements AdditionalInformationDTO {
     static BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO fromDomainObject(BlobStoreVaultGarbageCollectionTask.AdditionalInformation additionalInformation, String type) {
         return new BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO(
+            type,
             additionalInformation.getBeginningOfRetentionPeriod().toString(),
             additionalInformation.getDeletedBuckets()
         );
@@ -50,9 +51,13 @@ public class BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO impleme
 
     private final String beginningOfRetentionPeriod;
     private final Collection<String> deletedBuckets;
+    private final String type;
 
-    BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO(@JsonProperty("beginningOfRetentionPeriod") String beginningOfRetentionPeriod,
-                                                                @JsonProperty("deletedBuckets") Collection<String> deletedBuckets) {
+    BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO(
+        @JsonProperty("type") String type,
+        @JsonProperty("beginningOfRetentionPeriod") String beginningOfRetentionPeriod,
+        @JsonProperty("deletedBuckets") Collection<String> deletedBuckets) {
+        this.type = type;
         this.beginningOfRetentionPeriod = beginningOfRetentionPeriod;
         this.deletedBuckets = deletedBuckets;
     }
@@ -73,4 +78,9 @@ public class BlobStoreVaultGarbageCollectionTaskAdditionalInformationDTO impleme
     public Collection<String> getDeletedBuckets() {
         return deletedBuckets;
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskAdditionalInformationDTO.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskAdditionalInformationDTO.java
index 3d84a1c..b52d055 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskAdditionalInformationDTO.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/MessageIdReindexingTaskAdditionalInformationDTO.java
@@ -34,13 +34,15 @@ public class MessageIdReindexingTaskAdditionalInformationDTO implements Addition
             DTOModule.forDomainObject(MessageIdReIndexingTask.AdditionalInformation.class)
                 .convertToDTO(MessageIdReindexingTaskAdditionalInformationDTO.class)
                 .toDomainObjectConverter(dto -> new MessageIdReIndexingTask.AdditionalInformation(factory.fromString(dto.getMessageId())))
-                .toDTOConverter((details, type) -> new MessageIdReindexingTaskAdditionalInformationDTO(details.getMessageId()))
+                .toDTOConverter((details, type) -> new MessageIdReindexingTaskAdditionalInformationDTO(type, details.getMessageId()))
                 .typeName(MessageIdReIndexingTask.TYPE.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String messageId;
 
-    private MessageIdReindexingTaskAdditionalInformationDTO(@JsonProperty("messageId") String messageId) {
+    private MessageIdReindexingTaskAdditionalInformationDTO(@JsonProperty("type") String type, @JsonProperty("messageId") String messageId) {
+        this.type = type;
         this.messageId = messageId;
     }
 
@@ -48,7 +50,12 @@ public class MessageIdReindexingTaskAdditionalInformationDTO implements Addition
         return messageId;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     public static MessageIdReindexingTaskAdditionalInformationDTO of(MessageIdReIndexingTask task) {
-        return new MessageIdReindexingTaskAdditionalInformationDTO(task.getMessageId().serialize());
+        return new MessageIdReindexingTaskAdditionalInformationDTO(task.type().asString(), task.getMessageId().serialize());
     }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContextInformationDTO.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContextInformationDTO.java
index 7d5c27d..78f4aa9 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContextInformationDTO.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReprocessingContextInformationDTO.java
@@ -63,7 +63,7 @@ public class ReprocessingContextInformationDTO implements AdditionalInformationD
             DTOModule.forDomainObject(ReprocessingContextInformation.class)
                 .convertToDTO(ReprocessingContextInformationDTO.class)
                 .toDomainObjectConverter(dto -> new ReprocessingContextInformation(dto.successfullyReprocessedMailCount, dto.failedReprocessedMailCount, deserializeFailures(factory, dto.failures)))
-                .toDTOConverter((details, type) -> new ReprocessingContextInformationDTO(details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(), serializeFailures(details.failures())))
+                .toDTOConverter((details, type) -> new ReprocessingContextInformationDTO(type, details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(), serializeFailures(details.failures())))
                 .typeName(taskType.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
 
@@ -110,14 +110,17 @@ public class ReprocessingContextInformationDTO implements AdditionalInformationD
             .collect(Guavate.toImmutableList());
     }
 
+    private final String type;
     private final int successfullyReprocessedMailCount;
     private final int failedReprocessedMailCount;
     private final List<ReindexingFailureDTO> failures;
 
 
-    ReprocessingContextInformationDTO(@JsonProperty("successfullyReprocessedMailCount") int successfullyReprocessedMailCount,
+    ReprocessingContextInformationDTO(@JsonProperty("type") String type,
+                                      @JsonProperty("successfullyReprocessedMailCount") int successfullyReprocessedMailCount,
                                       @JsonProperty("failedReprocessedMailCount") int failedReprocessedMailCount,
                                       @JsonProperty("failures") List<ReindexingFailureDTO> failures) {
+        this.type = type;
         this.successfullyReprocessedMailCount = successfullyReprocessedMailCount;
         this.failedReprocessedMailCount = failedReprocessedMailCount;
         this.failures = failures;
@@ -134,4 +137,9 @@ public class ReprocessingContextInformationDTO implements AdditionalInformationD
     public List<ReindexingFailureDTO> getFailures() {
         return failures;
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskAdditionalInformationDTO.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskAdditionalInformationDTO.java
index c7b9efc..ee9a904 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskAdditionalInformationDTO.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMailboxReindexingTaskAdditionalInformationDTO.java
@@ -39,7 +39,7 @@ public class SingleMailboxReindexingTaskAdditionalInformationDTO implements Addi
                     dto.getSuccessfullyReprocessedMailCount(),
                     dto.getFailedReprocessedMailCount(),
                     ReprocessingContextInformationDTO.deserializeFailures(factory, dto.getFailures())))
-                .toDTOConverter((details, type) -> new SingleMailboxReindexingTaskAdditionalInformationDTO(details.getMailboxId(), details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(),
+                .toDTOConverter((details, type) -> new SingleMailboxReindexingTaskAdditionalInformationDTO(type, details.getMailboxId(), details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(),
                     ReprocessingContextInformationDTO.serializeFailures(details.failures())))
                 .typeName(SingleMailboxReindexingTask.MAILBOX_RE_INDEXING.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
@@ -48,16 +48,23 @@ public class SingleMailboxReindexingTaskAdditionalInformationDTO implements Addi
     private final String mailboxId;
 
     @JsonCreator
-    private SingleMailboxReindexingTaskAdditionalInformationDTO(@JsonProperty("mailboxId") String mailboxId,
+    private SingleMailboxReindexingTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                @JsonProperty("mailboxId") String mailboxId,
                                                                 @JsonProperty("successfullyReprocessedMailCount") int successfullyReprocessedMailCount,
                                                                 @JsonProperty("failedReprocessedMailCount") int failedReprocessedMailCount,
                                                                 @JsonProperty("failures") List<ReprocessingContextInformationDTO.ReindexingFailureDTO> failures) {
         this.mailboxId = mailboxId;
         this.reprocessingContextInformationDTO = new ReprocessingContextInformationDTO(
+            type,
             successfullyReprocessedMailCount,
             failedReprocessedMailCount, failures);
     }
 
+    @Override
+    public String getType() {
+        return reprocessingContextInformationDTO.getType();
+    }
+
     public String getMailboxId() {
         return mailboxId;
     }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskAdditionalInformationDTO.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskAdditionalInformationDTO.java
index b5f144b..e1d4ba6 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskAdditionalInformationDTO.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/SingleMessageReindexingTaskAdditionalInformationDTO.java
@@ -35,14 +35,18 @@ public class SingleMessageReindexingTaskAdditionalInformationDTO implements Addi
             DTOModule.forDomainObject(SingleMessageReindexingTask.AdditionalInformation.class)
                 .convertToDTO(SingleMessageReindexingTaskAdditionalInformationDTO.class)
                 .toDomainObjectConverter(dto -> new SingleMessageReindexingTask.AdditionalInformation(factory.fromString(dto.mailboxId), MessageUid.of(dto.getUid())))
-                .toDTOConverter((details, type) -> new SingleMessageReindexingTaskAdditionalInformationDTO(details.getMailboxId(), details.getUid()))
+                .toDTOConverter((details, type) -> new SingleMessageReindexingTaskAdditionalInformationDTO(type, details.getMailboxId(), details.getUid()))
                 .typeName(SingleMessageReindexingTask.MESSAGE_RE_INDEXING.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String mailboxId;
     private final long uid;
 
-    private SingleMessageReindexingTaskAdditionalInformationDTO(@JsonProperty("mailboxId") String mailboxId, @JsonProperty("uid") long uid) {
+    private SingleMessageReindexingTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                @JsonProperty("mailboxId") String mailboxId,
+                                                                @JsonProperty("uid") long uid) {
+        this.type = type;
         this.mailboxId = mailboxId;
         this.uid = uid;
     }
@@ -55,7 +59,12 @@ public class SingleMessageReindexingTaskAdditionalInformationDTO implements Addi
         return uid;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     public static SingleMessageReindexingTaskAdditionalInformationDTO of(SingleMessageReindexingTask task) {
-        return new SingleMessageReindexingTaskAdditionalInformationDTO(task.getMailboxId().serialize(), task.getUid().asLong());
+        return new SingleMessageReindexingTaskAdditionalInformationDTO(task.type().asString(), task.getMailboxId().serialize(), task.getUid().asLong());
     }
 }
diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskAdditionalInformationDTO.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskAdditionalInformationDTO.java
index 3b82156..0ea68bd 100644
--- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskAdditionalInformationDTO.java
+++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/UserReindexingTaskAdditionalInformationDTO.java
@@ -40,7 +40,7 @@ public class UserReindexingTaskAdditionalInformationDTO implements AdditionalInf
                     dto.getSuccessfullyReprocessedMailCount(),
                     dto.getFailedReprocessedMailCount(),
                     ReprocessingContextInformationDTO.deserializeFailures(factory, dto.getFailures())))
-                .toDTOConverter((details, type) -> new UserReindexingTaskAdditionalInformationDTO(details.getUser(), details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(),
+                .toDTOConverter((details, type) -> new UserReindexingTaskAdditionalInformationDTO(type, details.getUser(), details.getSuccessfullyReprocessedMailCount(), details.getFailedReprocessedMailCount(),
                     ReprocessingContextInformationDTO.serializeFailures(details.failures())))
                 .typeName(UserReindexingTask.USER_RE_INDEXING.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
@@ -49,16 +49,23 @@ public class UserReindexingTaskAdditionalInformationDTO implements AdditionalInf
     private final String user;
 
     @JsonCreator
-    private UserReindexingTaskAdditionalInformationDTO(@JsonProperty("user") String user,
+    private UserReindexingTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                       @JsonProperty("user") String user,
                                                        @JsonProperty("successfullyReprocessedMailCount") int successfullyReprocessedMailCount,
                                                        @JsonProperty("failedReprocessedMailCount") int failedReprocessedMailCount,
                                                        @JsonProperty("failures") List<ReprocessingContextInformationDTO.ReindexingFailureDTO> failures) {
         this.user = user;
         this.reprocessingContextInformationDTO = new ReprocessingContextInformationDTO(
+            type,
             successfullyReprocessedMailCount,
             failedReprocessedMailCount, failures);
     }
 
+    @Override
+    public String getType() {
+        return reprocessingContextInformationDTO.getType();
+    }
+
     public String getUser() {
         return user;
     }
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskAdditionalInformationDTO.java b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskAdditionalInformationDTO.java
index e84bc05..82697bd 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskAdditionalInformationDTO.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/rrt/cassandra/migration/MappingsSourcesMigrationTaskAdditionalInformationDTO.java
@@ -30,6 +30,7 @@ public class MappingsSourcesMigrationTaskAdditionalInformationDTO implements Add
 
     private static MappingsSourcesMigrationTaskAdditionalInformationDTO fromDomainObject(MappingsSourcesMigration.AdditionalInformation additionalInformation, String type) {
         return new MappingsSourcesMigrationTaskAdditionalInformationDTO(
+            type,
             additionalInformation.getSuccessfulMappingsCount(),
             additionalInformation.getErrorMappingsCount()
         );
@@ -44,10 +45,14 @@ public class MappingsSourcesMigrationTaskAdditionalInformationDTO implements Add
             .typeName(MappingsSourcesMigration.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final long successfulMappingsCount;
     private final long errorMappinsCount;
 
-    public MappingsSourcesMigrationTaskAdditionalInformationDTO(@JsonProperty("successfulMappingsCount") long successfulMappingsCount, @JsonProperty("errorMappinsCount") long errorMappinsCount) {
+    public MappingsSourcesMigrationTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                @JsonProperty("successfulMappingsCount") long successfulMappingsCount,
+                                                                @JsonProperty("errorMappinsCount") long errorMappinsCount) {
+        this.type = type;
         this.successfulMappingsCount = successfulMappingsCount;
         this.errorMappinsCount = errorMappinsCount;
     }
@@ -60,6 +65,11 @@ public class MappingsSourcesMigrationTaskAdditionalInformationDTO implements Add
         return errorMappinsCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     private MappingsSourcesMigration.AdditionalInformation toDomainObject() {
         return new MappingsSourcesMigration.AdditionalInformation(
             successfulMappingsCount,
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java
index 363e1c5..b4643d6 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.java
@@ -35,14 +35,18 @@ public class DeletedMessagesVaultDeleteTaskAdditionalInformationDTO implements A
             DTOModule.forDomainObject(DeletedMessagesVaultDeleteTask.AdditionalInformation.class)
                 .convertToDTO(DeletedMessagesVaultDeleteTaskAdditionalInformationDTO.class)
                 .toDomainObjectConverter(dto -> new DeletedMessagesVaultDeleteTask.AdditionalInformation(User.fromUsername(dto.userName), factory.fromString(dto.getMessageId())))
-                .toDTOConverter((details, type) -> new DeletedMessagesVaultDeleteTaskAdditionalInformationDTO(details.getUser(), details.getDeleteMessageId()))
+                .toDTOConverter((details, type) -> new DeletedMessagesVaultDeleteTaskAdditionalInformationDTO(type, details.getUser(), details.getDeleteMessageId()))
                 .typeName(DeletedMessagesVaultDeleteTask.TYPE.asString())
                 .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String userName;
     private final String messageId;
 
-    public DeletedMessagesVaultDeleteTaskAdditionalInformationDTO(@JsonProperty("userName") String userName, @JsonProperty("messageId") String messageId) {
+    public DeletedMessagesVaultDeleteTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                  @JsonProperty("userName") String userName,
+                                                                  @JsonProperty("messageId") String messageId) {
+        this.type = type;
         this.userName = userName;
         this.messageId = messageId;
     }
@@ -54,4 +58,9 @@ public class DeletedMessagesVaultDeleteTaskAdditionalInformationDTO implements A
     public String getUserName() {
         return userName;
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskAdditionalInformationDTO.java
index 27897ca..2e56836 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskAdditionalInformationDTO.java
@@ -34,6 +34,7 @@ public class DeletedMessagesVaultExportTaskAdditionalInformationDTO implements A
 
     private static DeletedMessagesVaultExportTaskAdditionalInformationDTO fromDomainObject(DeletedMessagesVaultExportTask.AdditionalInformation additionalInformation, String type) {
         return new DeletedMessagesVaultExportTaskAdditionalInformationDTO(
+            type,
             additionalInformation.getUserExportFrom(),
             additionalInformation.getExportTo(),
             additionalInformation.getTotalExportedMessages()
@@ -49,13 +50,16 @@ public class DeletedMessagesVaultExportTaskAdditionalInformationDTO implements A
             .typeName(DeletedMessagesVaultExportTask.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String userExportFrom;
     private final String exportTo;
     private final Long totalExportedMessages;
 
-    public DeletedMessagesVaultExportTaskAdditionalInformationDTO(@JsonProperty("user") String userExportFrom,
+    public DeletedMessagesVaultExportTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                  @JsonProperty("user") String userExportFrom,
                                                                   @JsonProperty("exportTo") String exportTo,
                                                                   @JsonProperty("errorRestoreCount") Long totalExportedMessages) {
+        this.type = type;
         this.userExportFrom = userExportFrom;
         this.exportTo = exportTo;
         this.totalExportedMessages = totalExportedMessages;
@@ -84,4 +88,9 @@ public class DeletedMessagesVaultExportTaskAdditionalInformationDTO implements A
             throw new RuntimeException(e);
         }
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java
index 1d58b2d..6582a61 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskAdditionalInformationDTO.java
@@ -31,6 +31,7 @@ public class DeletedMessagesVaultRestoreTaskAdditionalInformationDTO implements
 
     private static DeletedMessagesVaultRestoreTaskAdditionalInformationDTO fromDomainObject(DeletedMessagesVaultRestoreTask.AdditionalInformation additionalInformation, String type) {
         return new DeletedMessagesVaultRestoreTaskAdditionalInformationDTO(
+            type,
             additionalInformation.getUser(),
             additionalInformation.getSuccessfulRestoreCount(),
             additionalInformation.getErrorRestoreCount()
@@ -46,13 +47,16 @@ public class DeletedMessagesVaultRestoreTaskAdditionalInformationDTO implements
             .typeName(DeletedMessagesVaultRestoreTask.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String user;
     private final Long successfulRestoreCount;
     private final Long errorRestoreCount;
 
-    public DeletedMessagesVaultRestoreTaskAdditionalInformationDTO(@JsonProperty("user") String user,
+    public DeletedMessagesVaultRestoreTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                   @JsonProperty("user") String user,
                                                                    @JsonProperty("successfulRestoreCount") Long successfulRestoreCount,
                                                                    @JsonProperty("errorRestoreCount") Long errorRestoreCount) {
+        this.type = type;
         this.user = user;
         this.successfulRestoreCount = successfulRestoreCount;
         this.errorRestoreCount = errorRestoreCount;
@@ -77,4 +81,9 @@ public class DeletedMessagesVaultRestoreTaskAdditionalInformationDTO implements
             errorRestoreCount
         );
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformationDTO.java
index d1ed9f5..d01c63f 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/EventDeadLettersRedeliveryTaskAdditionalInformationDTO.java
@@ -24,6 +24,7 @@ public class EventDeadLettersRedeliveryTaskAdditionalInformationDTO implements A
 
     private static EventDeadLettersRedeliveryTaskAdditionalInformationDTO toDTO(EventDeadLettersRedeliverTask.AdditionalInformation domainObject, String typeName) {
         return new EventDeadLettersRedeliveryTaskAdditionalInformationDTO(
+            typeName,
             domainObject.getSuccessfulRedeliveriesCount(),
             domainObject.getFailedRedeliveriesCount(),
             domainObject.getGroup(),
@@ -39,16 +40,19 @@ public class EventDeadLettersRedeliveryTaskAdditionalInformationDTO implements A
     }
 
 
+    private final String type;
     private final long successfulRedeliveriesCount;
     private final long failedRedeliveriesCount;
     private final Optional<String> group;
     private final Optional<String> insertionId;
 
-    public EventDeadLettersRedeliveryTaskAdditionalInformationDTO(@JsonProperty("successfulRedeliveriesCount") long successfulRedeliveriesCount,
+    public EventDeadLettersRedeliveryTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                  @JsonProperty("successfulRedeliveriesCount") long successfulRedeliveriesCount,
                                                                   @JsonProperty("failedRedeliveriesCount") long failedRedeliveriesCount,
                                                                   @JsonProperty("group") Optional<String> group,
                                                                   @JsonProperty("insertionId") Optional<String> insertionId
     ) {
+        this.type = type;
         this.successfulRedeliveriesCount = successfulRedeliveriesCount;
         this.failedRedeliveriesCount = failedRedeliveriesCount;
         this.group = group;
@@ -71,4 +75,9 @@ public class EventDeadLettersRedeliveryTaskAdditionalInformationDTO implements A
     public Optional<String> getInsertionId() {
         return insertionId;
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskAdditionalInformationDTO.java
index 4a4f5b0..3d8015d 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskAdditionalInformationDTO.java
@@ -35,6 +35,7 @@ public class ClearMailQueueTaskAdditionalInformationDTO implements AdditionalInf
                 dto.remainingCount
             ))
             .toDTOConverter((details, type) -> new ClearMailQueueTaskAdditionalInformationDTO(
+                type,
                 details.getMailQueueName(),
                 details.getInitialCount(),
                 details.getRemainingCount()))
@@ -42,12 +43,15 @@ public class ClearMailQueueTaskAdditionalInformationDTO implements AdditionalInf
             .withFactory(AdditionalInformationDTOModule::new);
 
     private final String mailQueueName;
+    private final String type;
     private final long initialCount;
     private final long remainingCount;
 
-    public ClearMailQueueTaskAdditionalInformationDTO(@JsonProperty("mailQueueName") String mailQueueName,
+    public ClearMailQueueTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                      @JsonProperty("mailQueueName") String mailQueueName,
                                                       @JsonProperty("initialCount") long initialCount,
                                                       @JsonProperty("remainingCount") long remainingCount) {
+        this.type = type;
         this.mailQueueName = mailQueueName;
         this.initialCount = initialCount;
         this.remainingCount = remainingCount;
@@ -65,4 +69,8 @@ public class ClearMailQueueTaskAdditionalInformationDTO implements AdditionalInf
         return remainingCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskAdditionalInformationDTO.java
index 53d15af..74e44c6 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskAdditionalInformationDTO.java
@@ -23,6 +23,7 @@ public class DeleteMailsFromMailQueueTaskAdditionalInformationDTO implements Add
 
     private static DeleteMailsFromMailQueueTaskAdditionalInformationDTO toDTO(DeleteMailsFromMailQueueTask.AdditionalInformation domainObject, String typeName) {
         return new DeleteMailsFromMailQueueTaskAdditionalInformationDTO(
+            typeName,
             domainObject.getMailQueueName(),
             domainObject.getSender(),
             domainObject.getName(),
@@ -43,19 +44,22 @@ public class DeleteMailsFromMailQueueTaskAdditionalInformationDTO implements Add
 
 
     private final String queue;
+    private final String type;
     private final Optional<String> sender;
     private final Optional<String> name;
     private final Optional<String> recipient;
     private final long initialCount;
     private final long remainingCount;
 
-    public DeleteMailsFromMailQueueTaskAdditionalInformationDTO(@JsonProperty("queue") String queue,
+    public DeleteMailsFromMailQueueTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                                @JsonProperty("queue") String queue,
                                                                 @JsonProperty("sender") Optional<String> sender,
                                                                 @JsonProperty("name") Optional<String> name,
                                                                 @JsonProperty("recipient") Optional<String> recipient,
                                                                 @JsonProperty("initialCount") long initialCount,
                                                                 @JsonProperty("remainingCount") long remainingCount
     ) {
+        this.type = type;
         this.queue = queue;
         this.sender = sender;
         this.name = name;
@@ -88,4 +92,9 @@ public class DeleteMailsFromMailQueueTaskAdditionalInformationDTO implements Add
     public long getRemainingCount() {
         return remainingCount;
     }
+
+    @Override
+    public String getType() {
+        return type;
+    }
 }
\ No newline at end of file
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskAdditionalInformationDTO.java
index d73adbc..b94042c 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ClearMailRepositoryTaskAdditionalInformationDTO.java
@@ -36,6 +36,7 @@ public class ClearMailRepositoryTaskAdditionalInformationDTO implements Addition
                 dto.remainingCount
             ))
             .toDTOConverter((details, type) -> new ClearMailRepositoryTaskAdditionalInformationDTO(
+                type,
                 details.getRepositoryPath(),
                 details.getInitialCount(),
                 details.getRemainingCount()))
@@ -43,12 +44,15 @@ public class ClearMailRepositoryTaskAdditionalInformationDTO implements Addition
             .withFactory(AdditionalInformationDTOModule::new);
 
     private final String mailRepositoryPath;
+    private final String type;
     private final long initialCount;
     private final long remainingCount;
 
-    public ClearMailRepositoryTaskAdditionalInformationDTO(@JsonProperty("mailRepositoryPath") String mailRepositoryPath,
+    public ClearMailRepositoryTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                           @JsonProperty("mailRepositoryPath") String mailRepositoryPath,
                                                            @JsonProperty("initialCount") long initialCount,
                                                            @JsonProperty("remainingCount") long remainingCount) {
+        this.type = type;
         this.mailRepositoryPath = mailRepositoryPath;
         this.initialCount = initialCount;
         this.remainingCount = remainingCount;
@@ -66,4 +70,8 @@ public class ClearMailRepositoryTaskAdditionalInformationDTO implements Addition
         return remainingCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
 }
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskAdditionalInformationDTO.java
index 3b117ed..6f773c2 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTaskAdditionalInformationDTO.java
@@ -40,6 +40,7 @@ public class ReprocessingAllMailsTaskAdditionalInformationDTO implements Additio
                 dto.remainingCount
             ))
             .toDTOConverter((details, type) -> new ReprocessingAllMailsTaskAdditionalInformationDTO(
+                type,
                 details.getRepositoryPath(),
                 details.getTargetQueue(),
                 details.getTargetProcessor(),
@@ -48,6 +49,7 @@ public class ReprocessingAllMailsTaskAdditionalInformationDTO implements Additio
             .typeName(ReprocessingAllMailsTask.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String repositoryPath;
     private final String targetQueue;
     private final Optional<String> targetProcessor;
@@ -55,11 +57,13 @@ public class ReprocessingAllMailsTaskAdditionalInformationDTO implements Additio
     private final long remainingCount;
 
     public ReprocessingAllMailsTaskAdditionalInformationDTO(
+        @JsonProperty("type") String type,
         @JsonProperty("repositoryPath") String repositoryPath,
         @JsonProperty("targetQueue") String targetQueue,
         @JsonProperty("targetProcessor") Optional<String> targetProcessor,
         @JsonProperty("initialCount") long initialCount,
         @JsonProperty("remainingCount") long remainingCount) {
+        this.type = type;
         this.repositoryPath = repositoryPath;
         this.targetQueue = targetQueue;
         this.targetProcessor = targetProcessor;
@@ -67,6 +71,11 @@ public class ReprocessingAllMailsTaskAdditionalInformationDTO implements Additio
         this.remainingCount = remainingCount;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     public long getInitialCount() {
         return initialCount;
     }
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskAdditionalInformationDTO.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskAdditionalInformationDTO.java
index 045ca81..c53fc00 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskAdditionalInformationDTO.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTaskAdditionalInformationDTO.java
@@ -40,6 +40,7 @@ public class ReprocessingOneMailTaskAdditionalInformationDTO implements Addition
                 dto.targetProcessor
             ))
             .toDTOConverter((details, type) -> new ReprocessingOneMailTaskAdditionalInformationDTO(
+                type,
                 details.getRepositoryPath(),
                 details.getTargetQueue(),
                 details.getMailKey(),
@@ -47,21 +48,29 @@ public class ReprocessingOneMailTaskAdditionalInformationDTO implements Addition
             .typeName(ReprocessingOneMailTask.TYPE.asString())
             .withFactory(AdditionalInformationDTOModule::new);
 
+    private final String type;
     private final String repositoryPath;
     private final String targetQueue;
     private final String mailKey;
     private final Optional<String> targetProcessor;
 
-    public ReprocessingOneMailTaskAdditionalInformationDTO(@JsonProperty("repositoryPath") String repositoryPath,
+    public ReprocessingOneMailTaskAdditionalInformationDTO(@JsonProperty("type") String type,
+                                                           @JsonProperty("repositoryPath") String repositoryPath,
                                                            @JsonProperty("targetQueue") String targetQueue,
                                                            @JsonProperty("mailKey") String mailKey,
                                                            @JsonProperty("targetProcessor") Optional<String> targetProcessor) {
+        this.type = type;
         this.repositoryPath = repositoryPath;
         this.targetQueue = targetQueue;
         this.mailKey = mailKey;
         this.targetProcessor = targetProcessor;
     }
 
+    @Override
+    public String getType() {
+        return type;
+    }
+
     public String getRepositoryPath() {
         return repositoryPath;
     }
diff --git a/server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTO.java b/server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTO.java
index 4ce0a88..548cf1c 100644
--- a/server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTO.java
+++ b/server/task/task-json/src/main/java/org/apache/james/server/task/json/dto/AdditionalInformationDTO.java
@@ -21,4 +21,5 @@ package org.apache.james.server.task.json.dto;
 import org.apache.james.json.DTO;
 
 public interface AdditionalInformationDTO extends DTO {
+    String getType();
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org