|
23 | 23 | import java.util.stream.Stream;
|
24 | 24 |
|
25 | 25 | import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule;
|
26 |
| -import org.apache.james.server.task.json.JsonTaskAdditionalInformationSerializer; |
| 26 | +import org.apache.james.json.DTOConverter; |
27 | 27 | import org.apache.james.server.task.json.JsonTaskSerializer;
|
| 28 | +import org.apache.james.server.task.json.dto.AdditionalInformationDTO; |
| 29 | +import org.apache.james.task.TaskExecutionDetails; |
28 | 30 | import org.apache.james.task.eventsourcing.AdditionalInformationUpdated;
|
29 | 31 | import org.apache.james.task.eventsourcing.CancelRequested;
|
30 | 32 | import org.apache.james.task.eventsourcing.Cancelled;
|
|
38 | 40 | public interface TasksSerializationModule {
|
39 | 41 | @FunctionalInterface
|
40 | 42 | interface TaskSerializationModuleFactory {
|
41 |
| - EventDTOModule<?, ?> create(JsonTaskSerializer taskSerializer, JsonTaskAdditionalInformationSerializer additionalInformationSerializer); |
| 43 | + EventDTOModule<?, ?> create(JsonTaskSerializer taskSerializer, DTOConverter<TaskExecutionDetails.AdditionalInformation, AdditionalInformationDTO> additionalInformationConverter); |
42 | 44 | }
|
43 | 45 |
|
44 |
| - TaskSerializationModuleFactory CREATED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 46 | + TaskSerializationModuleFactory CREATED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
45 | 47 | .forEvent(Created.class)
|
46 | 48 | .convertToDTO(CreatedDTO.class)
|
47 | 49 | .toDomainObjectConverter(dto -> dto.toDomainObject(jsonTaskSerializer))
|
48 | 50 | .toDTOConverter((event, typeName) -> CreatedDTO.fromDomainObject(event, typeName, jsonTaskSerializer))
|
49 | 51 | .typeName("task-manager-created")
|
50 | 52 | .withFactory(EventDTOModule::new);
|
51 | 53 |
|
52 |
| - TaskSerializationModuleFactory STARTED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 54 | + TaskSerializationModuleFactory STARTED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
53 | 55 | .forEvent(Started.class)
|
54 | 56 | .convertToDTO(StartedDTO.class)
|
55 | 57 | .toDomainObjectConverter(StartedDTO::toDomainObject)
|
56 | 58 | .toDTOConverter(StartedDTO::fromDomainObject)
|
57 | 59 | .typeName("task-manager-started")
|
58 | 60 | .withFactory(EventDTOModule::new);
|
59 | 61 |
|
60 |
| - TaskSerializationModuleFactory CANCEL_REQUESTED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 62 | + TaskSerializationModuleFactory CANCEL_REQUESTED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
61 | 63 | .forEvent(CancelRequested.class)
|
62 | 64 | .convertToDTO(CancelRequestedDTO.class)
|
63 | 65 | .toDomainObjectConverter(CancelRequestedDTO::toDomainObject)
|
64 | 66 | .toDTOConverter(CancelRequestedDTO::fromDomainObject)
|
65 | 67 | .typeName("task-manager-cancel-requested")
|
66 | 68 | .withFactory(EventDTOModule::new);
|
67 | 69 |
|
68 |
| - TaskSerializationModuleFactory COMPLETED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 70 | + TaskSerializationModuleFactory COMPLETED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
69 | 71 | .forEvent(Completed.class)
|
70 | 72 | .convertToDTO(CompletedDTO.class)
|
71 |
| - .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationSerializer)) |
72 |
| - .toDTOConverter((event, typeName) -> CompletedDTO.fromDomainObject(additionalInformationSerializer, event, typeName)) |
| 73 | + .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationConverter)) |
| 74 | + .toDTOConverter((event, typeName) -> CompletedDTO.fromDomainObject(additionalInformationConverter, event, typeName)) |
73 | 75 | .typeName("task-manager-completed")
|
74 | 76 | .withFactory(EventDTOModule::new);
|
75 | 77 |
|
76 |
| - TaskSerializationModuleFactory FAILED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 78 | + TaskSerializationModuleFactory FAILED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
77 | 79 | .forEvent(Failed.class)
|
78 | 80 | .convertToDTO(FailedDTO.class)
|
79 |
| - .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationSerializer)) |
80 |
| - .toDTOConverter((event, typeName) -> FailedDTO.fromDomainObject(additionalInformationSerializer, event, typeName)) |
| 81 | + .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationConverter)) |
| 82 | + .toDTOConverter((event, typeName) -> FailedDTO.fromDomainObject(additionalInformationConverter, event, typeName)) |
81 | 83 | .typeName("task-manager-failed")
|
82 | 84 | .withFactory(EventDTOModule::new);
|
83 | 85 |
|
84 |
| - TaskSerializationModuleFactory CANCELLED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 86 | + TaskSerializationModuleFactory CANCELLED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
85 | 87 | .forEvent(Cancelled.class)
|
86 | 88 | .convertToDTO(CancelledDTO.class)
|
87 |
| - .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationSerializer)) |
88 |
| - .toDTOConverter((event, typeName) -> CancelledDTO.fromDomainObject(additionalInformationSerializer, event, typeName)) |
| 89 | + .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationConverter)) |
| 90 | + .toDTOConverter((event, typeName) -> CancelledDTO.fromDomainObject(additionalInformationConverter, event, typeName)) |
89 | 91 | .typeName("task-manager-cancelled")
|
90 | 92 | .withFactory(EventDTOModule::new);
|
91 | 93 |
|
92 |
| - TaskSerializationModuleFactory UPDATED = (jsonTaskSerializer, additionalInformationSerializer) -> EventDTOModule |
| 94 | + TaskSerializationModuleFactory UPDATED = (jsonTaskSerializer, additionalInformationConverter) -> EventDTOModule |
93 | 95 | .forEvent(AdditionalInformationUpdated.class)
|
94 | 96 | .convertToDTO(AdditionalInformationUpdatedDTO.class)
|
95 |
| - .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationSerializer)) |
96 |
| - .toDTOConverter((event, typeName) -> AdditionalInformationUpdatedDTO.fromDomainObject(additionalInformationSerializer, event, typeName)) |
| 97 | + .toDomainObjectConverter(dto -> dto.toDomainObject(additionalInformationConverter)) |
| 98 | + .toDTOConverter((event, typeName) -> AdditionalInformationUpdatedDTO.fromDomainObject(additionalInformationConverter, event, typeName)) |
97 | 99 | .typeName("task-manager-updated")
|
98 | 100 | .withFactory(EventDTOModule::new);
|
99 | 101 |
|
100 |
| - static Set<EventDTOModule<?, ?>> list(JsonTaskSerializer jsonTaskSerializer, JsonTaskAdditionalInformationSerializer jsonTaskAdditionalInformationSerializer) { |
| 102 | + static Set<EventDTOModule<?, ?>> list(JsonTaskSerializer jsonTaskSerializer, DTOConverter<TaskExecutionDetails.AdditionalInformation, AdditionalInformationDTO> additionalInformationConverter) { |
101 | 103 | return Stream
|
102 | 104 | .of(CREATED, STARTED, CANCEL_REQUESTED, CANCELLED, COMPLETED, FAILED, UPDATED)
|
103 |
| - .map(moduleFactory -> moduleFactory.create(jsonTaskSerializer, jsonTaskAdditionalInformationSerializer)) |
| 105 | + .map(moduleFactory -> moduleFactory.create(jsonTaskSerializer, additionalInformationConverter)) |
104 | 106 | .collect(Guavate.toImmutableSet());
|
105 | 107 | }
|
106 | 108 | }
|
0 commit comments