This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 1549e776d9e91448516e8371edde310ecfa36c94 Author: Matthieu Baechler <[email protected]> AuthorDate: Fri Oct 25 11:23:15 2019 +0200 JAMES-2813 give DTOConvert methods more explicit names --- .../main/java/org/apache/james/json/DTOConverter.java | 4 ++-- .../org/apache/james/json/JsonGenericSerializer.java | 4 ++-- json/src/test/java/org/apache/DTOConverterTest.java | 12 ++++++------ json/src/test/java/org/apache/dto/FirstDTO.java | 2 +- json/src/test/java/org/apache/dto/SecondDTO.java | 2 +- json/src/test/java/org/apache/dto/TestModules.java | 4 ++-- .../james/mailbox/quota/cassandra/dto/DTOTest.java | 2 ++ .../james/dlp/eventsourcing/cassandra/DTOTest.java | 4 ++++ .../apache/james/jmap/cassandra/filtering/DTOTest.java | 5 +++++ .../rabbitmq/view/cassandra/configuration/DTOTest.java | 3 +++ .../task/eventsourcing/distributed/TaskEventDTO.scala | 16 ++++++++-------- 11 files changed, 36 insertions(+), 22 deletions(-) diff --git a/json/src/main/java/org/apache/james/json/DTOConverter.java b/json/src/main/java/org/apache/james/json/DTOConverter.java index d49b623..80b9390 100644 --- a/json/src/main/java/org/apache/james/json/DTOConverter.java +++ b/json/src/main/java/org/apache/james/json/DTOConverter.java @@ -50,7 +50,7 @@ public class DTOConverter<T, U extends DTO> { } @SuppressWarnings("unchecked") - public Optional<U> convert(T domainObject) { + public Optional<U> toDTO(T domainObject) { return Optional .ofNullable(domainClassToModule.get(domainObject.getClass())) .map(module -> (DTOModule<T, U>) module) @@ -58,7 +58,7 @@ public class DTOConverter<T, U extends DTO> { } @SuppressWarnings("unchecked") - public Optional<T> convert(U dto) { + public Optional<T> toDomainObject(U dto) { String type = dto.getType(); return Optional .ofNullable(typeToModule.get(type)) 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 0cf11dc..6ebb443 100644 --- a/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java +++ b/json/src/main/java/org/apache/james/json/JsonGenericSerializer.java @@ -120,7 +120,7 @@ public class JsonGenericSerializer<T, U extends DTO> { } public String serialize(T domainObject) throws JsonProcessingException { - U dto = dtoConverter.convert(domainObject) + U dto = dtoConverter.toDTO(domainObject) .orElseThrow(() -> new UnknownTypeException("unknown type " + domainObject.getClass())); return objectMapper.writeValueAsString(dto); } @@ -128,7 +128,7 @@ public class JsonGenericSerializer<T, U extends DTO> { public T deserialize(String value) throws IOException { U dto = jsonToDTO(value); - return dtoConverter.convert(dto) + return dtoConverter.toDomainObject(dto) .orElseThrow(() -> new UnknownTypeException("unknown type " + dto.getType())); } diff --git a/json/src/test/java/org/apache/DTOConverterTest.java b/json/src/test/java/org/apache/DTOConverterTest.java index 6783b0e..1c34498 100644 --- a/json/src/test/java/org/apache/DTOConverterTest.java +++ b/json/src/test/java/org/apache/DTOConverterTest.java @@ -53,14 +53,14 @@ class DTOConverterTest { void shouldConvertFromKnownDTO() throws Exception { assertThat(DTOConverter .<BaseType, DTO>of(TestModules.FIRST_TYPE) - .convert(FIRST_DTO)) + .toDomainObject(FIRST_DTO)) .contains(FIRST); } @Test void shouldReturnEmptyWhenConvertingFromUnknownDTO() { assertThat(DTOConverter.of() - .convert(FIRST_DTO)) + .toDomainObject(FIRST_DTO)) .isEmpty(); } @@ -72,7 +72,7 @@ class DTOConverterTest { TestModules.FIRST_TYPE, TestModules.SECOND_TYPE); - assertThat(serializer.convert(domainObject)) + assertThat(serializer.toDTO(domainObject)) .hasValueSatisfying(result -> assertThat(result).isInstanceOf(dto.getClass()).isEqualToComparingFieldByField(dto)); } @@ -88,7 +88,7 @@ class DTOConverterTest { TestModules.FIRST_TYPE, TestModules.SECOND_TYPE); - assertThat(serializer.convert(dto)) + assertThat(serializer.toDomainObject(dto)) .hasValueSatisfying(result -> assertThat(result).isInstanceOf(domainObject.getClass()).isEqualToComparingFieldByField(domainObject)); } @@ -107,13 +107,13 @@ class DTOConverterTest { @Test void shouldConvertFromKnownDomainObject() throws Exception { assertThat(DTOConverter.<BaseType, DTO>of(TestModules.FIRST_TYPE) - .convert(FIRST)) + .toDTO(FIRST)) .hasValueSatisfying(result -> assertThat(result).isInstanceOf(FirstDTO.class).isEqualToComparingFieldByField(FIRST_DTO)); } @Test void shouldReturnEmptyWhenConvertUnknownDomainObject() { - assertThat(DTOConverter.of().convert(FIRST)) + assertThat(DTOConverter.of().toDTO(FIRST)) .isEmpty(); } } diff --git a/json/src/test/java/org/apache/dto/FirstDTO.java b/json/src/test/java/org/apache/dto/FirstDTO.java index b1bdf23..16c1041 100644 --- a/json/src/test/java/org/apache/dto/FirstDTO.java +++ b/json/src/test/java/org/apache/dto/FirstDTO.java @@ -72,6 +72,6 @@ public class FirstDTO implements DTO { @JsonIgnore public FirstDomainObject toDomainObject(DTOConverter<NestedType, DTO> converter) { - return new FirstDomainObject(id, ZonedDateTime.parse(time), payload, child.flatMap(converter::convert)); + return new FirstDomainObject(id, ZonedDateTime.parse(time), payload, child.flatMap(converter::toDomainObject)); } } diff --git a/json/src/test/java/org/apache/dto/SecondDTO.java b/json/src/test/java/org/apache/dto/SecondDTO.java index be66948..91204a8 100644 --- a/json/src/test/java/org/apache/dto/SecondDTO.java +++ b/json/src/test/java/org/apache/dto/SecondDTO.java @@ -65,6 +65,6 @@ public class SecondDTO implements DTO { @JsonIgnore public SecondDomainObject toDomainObject(DTOConverter<NestedType, DTO> converter) { - return new SecondDomainObject(UUID.fromString(id), payload, child.flatMap(converter::convert)); + return new SecondDomainObject(UUID.fromString(id), payload, child.flatMap(converter::toDomainObject)); } } diff --git a/json/src/test/java/org/apache/dto/TestModules.java b/json/src/test/java/org/apache/dto/TestModules.java index d7cb781..a8de0b3 100644 --- a/json/src/test/java/org/apache/dto/TestModules.java +++ b/json/src/test/java/org/apache/dto/TestModules.java @@ -55,7 +55,7 @@ public interface TestModules { domainObject.getId(), domainObject.getTime().toString(), domainObject.getPayload(), - domainObject.getChild().flatMap(NESTED_CONVERTERS::convert))) + domainObject.getChild().flatMap(NESTED_CONVERTERS::toDTO))) .typeName("first") .withFactory(TestModule::new); @@ -67,7 +67,7 @@ public interface TestModules { typeName, domainObject.getId().toString(), domainObject.getPayload(), - domainObject.getChild().flatMap(NESTED_CONVERTERS::convert))) + domainObject.getChild().flatMap(NESTED_CONVERTERS::toDTO))) .typeName("second") .withFactory(TestModule::new); diff --git a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/dto/DTOTest.java b/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/dto/DTOTest.java index 394bf6f..3e3d824 100644 --- a/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/dto/DTOTest.java +++ b/mailbox/plugin/quota-mailing-cassandra/src/test/java/org/apache/james/mailbox/quota/cassandra/dto/DTOTest.java @@ -44,6 +44,7 @@ import org.junit.jupiter.api.Test; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; class DTOTest { @@ -104,6 +105,7 @@ class DTOTest { objectMapper = new ObjectMapper(); objectMapper.registerModule(new Jdk8Module()); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT); + objectMapper.registerSubtypes(new NamedType(QuotaThresholdChangedEventDTO.class, "quota-threshold-change")); } @Test diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/DTOTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/DTOTest.java index 3357ba8..062b132 100644 --- a/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/DTOTest.java +++ b/server/data/data-cassandra/src/test/java/org/apache/james/dlp/eventsourcing/cassandra/DTOTest.java @@ -37,6 +37,7 @@ import org.junit.jupiter.api.Test; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.NamedType; import com.fasterxml.jackson.datatype.jdk8.Jdk8Module; import com.google.common.collect.ImmutableList; @@ -92,6 +93,9 @@ public class DTOTest { objectMapper = new ObjectMapper(); objectMapper.registerModule(new Jdk8Module()); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT); + objectMapper.registerSubtypes( + new NamedType(DLPConfigurationItemsRemovedDTO.class, "dlp-configuration-clear"), + new NamedType(DLPConfigurationItemAddedDTO.class, "dlp-configuration-store")); } @Test diff --git a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/DTOTest.java b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/DTOTest.java index fbfddb9..a3e4d29 100644 --- a/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/DTOTest.java +++ b/server/data/data-jmap-cassandra/src/test/java/org/apache/james/jmap/cassandra/filtering/DTOTest.java @@ -33,6 +33,8 @@ import org.apache.james.eventsourcing.EventId; import org.apache.james.jmap.api.filtering.impl.FilteringAggregateId; import org.apache.james.jmap.api.filtering.impl.RuleSetDefined; import org.apache.james.util.ClassLoaderUtils; + +import com.fasterxml.jackson.databind.jsontype.NamedType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -68,6 +70,9 @@ public class DTOTest { objectMapper = new ObjectMapper(); objectMapper.registerModule(new Jdk8Module()); objectMapper.registerModule(new GuavaModule()); + objectMapper.registerSubtypes( + new NamedType(FilteringRuleSetDefinedDTO.class, "filtering-rule-set-defined")); + } @Test diff --git a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/DTOTest.java b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/DTOTest.java index 4bf2658..be2c32a 100644 --- a/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/DTOTest.java +++ b/server/queue/queue-rabbitmq/src/test/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/DTOTest.java @@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.assertThat; import java.time.Duration; +import com.fasterxml.jackson.databind.jsontype.NamedType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -56,6 +57,8 @@ class DTOTest { objectMapper.registerModule(new Jdk8Module()); objectMapper.registerModule(new JavaTimeModule()); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_ABSENT); + objectMapper.registerSubtypes( + new NamedType(ConfigurationChangedDTO.class, "cassandra-mail-queue-view-configuration")); } @Test diff --git a/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/TaskEventDTO.scala b/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/TaskEventDTO.scala index 51761ad..ce4184c 100644 --- a/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/TaskEventDTO.scala +++ b/server/task/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/distributed/TaskEventDTO.scala @@ -91,7 +91,7 @@ case class CompletedDTO(@JsonProperty("type") typeName: String, @JsonProperty("additionalInformation") getAdditionalInformation: Optional[AdditionalInformationDTO]) extends TaskEventDTO(typeName, aggregateId, eventId) { def toDomainObject(additionalInformationConverter: AdditionalInformationConverter): Completed = { - val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.convert(_).orElseThrow()) + val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.toDomainObject(_).orElseThrow()) Completed(domainAggregateId, domainEventId, domainResult, additionalInformation.asScala) } private def domainResult: Task.Result = getResult match { @@ -102,7 +102,7 @@ case class CompletedDTO(@JsonProperty("type") typeName: String, object CompletedDTO { def fromDomainObject(dtoConverter: AdditionalInformationConverter)(event: Completed, typeName: String): CompletedDTO = { - val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(dtoConverter.convert(_).orElseThrow()) + val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(dtoConverter.toDTO(_).orElseThrow()) CompletedDTO(typeName, event.aggregateId.taskId.asString(), event.eventId.serialize(), resultToString(event.result), additionalInformationDTO) } @@ -120,14 +120,14 @@ case class FailedDTO(@JsonProperty("type") typeName: String, @JsonProperty("exception") getException: Optional[String]) extends TaskEventDTO(typeName, aggregateId, eventId) { def toDomainObject(additionalInformationConverter: AdditionalInformationConverter): Failed = { - val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.convert(_).orElseThrow()) + val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.toDomainObject(_).orElseThrow()) Failed(domainAggregateId, domainEventId, additionalInformation.asScala, getErrorMessage.asScala, getException.asScala) } } object FailedDTO { def fromDomainObject(dtoConverter: AdditionalInformationConverter)(event: Failed, typeName: String): FailedDTO = { - val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(dtoConverter.convert(_).orElseThrow()) + val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(dtoConverter.toDTO(_).orElseThrow()) FailedDTO(typeName, event.aggregateId.taskId.asString(), event.eventId.serialize(), additionalInformationDTO, event.errorMessage.asJava, event.exception.asJava) } } @@ -138,14 +138,14 @@ case class CancelledDTO(@JsonProperty("type") typeName: String, @JsonProperty("additionalInformation") getAdditionalInformation: Optional[AdditionalInformationDTO]) extends TaskEventDTO(typeName, aggregateId, eventId) { def toDomainObject(additionalInformationConverter: AdditionalInformationConverter): Cancelled = { - val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.convert(_).orElseThrow()) + val additionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = getAdditionalInformation.map(additionalInformationConverter.toDomainObject(_).orElseThrow()) Cancelled(domainAggregateId, domainEventId, additionalInformation.asScala) } } object CancelledDTO { def fromDomainObject(additionalInformationConverter: AdditionalInformationConverter)(event: Cancelled, typeName: String): CancelledDTO = { - val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(additionalInformationConverter.convert(_).orElseThrow()) + val additionalInformationDTO: Optional[AdditionalInformationDTO] = event.additionalInformation.asJava.map(additionalInformationConverter.toDTO(_).orElseThrow()) CancelledDTO(typeName, event.aggregateId.taskId.asString(), event.eventId.serialize(), additionalInformationDTO) } } @@ -156,7 +156,7 @@ case class AdditionalInformationUpdatedDTO(@JsonProperty("type") typeName: Strin @JsonProperty("additionalInformation") getAdditionalInformation: AdditionalInformationDTO) extends TaskEventDTO(typeName, aggregateId, eventId) { def toDomainObject(additionalInformationConverter: AdditionalInformationConverter): AdditionalInformationUpdated = { - val additionalInformation = additionalInformationConverter.convert(getAdditionalInformation) + val additionalInformation = additionalInformationConverter.toDomainObject(getAdditionalInformation) .orElseThrow() AdditionalInformationUpdated(domainAggregateId, domainEventId, additionalInformation) } @@ -164,7 +164,7 @@ case class AdditionalInformationUpdatedDTO(@JsonProperty("type") typeName: Strin object AdditionalInformationUpdatedDTO { def fromDomainObject(additionalInformationConverter: AdditionalInformationConverter)(event: AdditionalInformationUpdated, typeName: String): AdditionalInformationUpdatedDTO = { - val additionalInformationDTO = additionalInformationConverter.convert(event.additionalInformation) + val additionalInformationDTO = additionalInformationConverter.toDTO(event.additionalInformation) .orElseThrow() AdditionalInformationUpdatedDTO(typeName, event.aggregateId.taskId.asString(), event.eventId.serialize(), additionalInformationDTO) } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
