From 23af542178b9e0c2e80345af13d7876ede40f170 Mon Sep 17 00:00:00 2001 From: Armin Friedl Date: Sun, 21 Jun 2020 17:32:56 +0200 Subject: [PATCH] Use milliseconds as default Instant serialization/deserialization --- .../net/friedl/fling/FlingConfiguration.java | 29 ++++++++++++------- .../friedl/fling/model/dto/ArtifactDto.java | 7 ----- .../net/friedl/fling/model/dto/FlingDto.java | 5 ---- .../src/main/resources/application-local.yml | 1 + .../src/main/resources/application-prod.yml | 1 + 5 files changed, 21 insertions(+), 22 deletions(-) diff --git a/service/fling/src/main/java/net/friedl/fling/FlingConfiguration.java b/service/fling/src/main/java/net/friedl/fling/FlingConfiguration.java index e77e587..334a26c 100644 --- a/service/fling/src/main/java/net/friedl/fling/FlingConfiguration.java +++ b/service/fling/src/main/java/net/friedl/fling/FlingConfiguration.java @@ -7,19 +7,28 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationConfig; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @Configuration public class FlingConfiguration { - @Bean - public MessageDigest keyHashDigest() throws NoSuchAlgorithmException { - return MessageDigest.getInstance("SHA-512"); - } + @Bean + public MessageDigest keyHashDigest() throws NoSuchAlgorithmException { + return MessageDigest.getInstance("SHA-512"); + } - @Bean - public ObjectMapper objectMapper() { - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.setSerializationInclusion(Include.NON_ABSENT); - return objectMapper; - } + @Bean + public ObjectMapper objectMapper() { + ObjectMapper objectMapper = new ObjectMapper() + .setSerializationInclusion(Include.NON_ABSENT) + .registerModule(new JavaTimeModule()) + // Handle instant as milliseconds + .configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false) + .configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false); + + return objectMapper; + } } diff --git a/service/fling/src/main/java/net/friedl/fling/model/dto/ArtifactDto.java b/service/fling/src/main/java/net/friedl/fling/model/dto/ArtifactDto.java index 9447680..e0bd057 100644 --- a/service/fling/src/main/java/net/friedl/fling/model/dto/ArtifactDto.java +++ b/service/fling/src/main/java/net/friedl/fling/model/dto/ArtifactDto.java @@ -23,11 +23,4 @@ public class ArtifactDto { private Instant uploadTime; private FlingDto fling; - - @JsonProperty("uploadTime") - public Long getJsonUploadTime() { - if(uploadTime == null) return null; - - return uploadTime.toEpochMilli(); - } } diff --git a/service/fling/src/main/java/net/friedl/fling/model/dto/FlingDto.java b/service/fling/src/main/java/net/friedl/fling/model/dto/FlingDto.java index 0be3fc4..9b52077 100644 --- a/service/fling/src/main/java/net/friedl/fling/model/dto/FlingDto.java +++ b/service/fling/src/main/java/net/friedl/fling/model/dto/FlingDto.java @@ -93,9 +93,4 @@ public class FlingDto { return expiration; } - - @JsonProperty("creationTime") - public Long getJsonUploadTime() { - return creationTime.toEpochMilli(); - } } diff --git a/service/fling/src/main/resources/application-local.yml b/service/fling/src/main/resources/application-local.yml index 57a824b..8135d43 100644 --- a/service/fling/src/main/resources/application-local.yml +++ b/service/fling/src/main/resources/application-local.yml @@ -5,6 +5,7 @@ spring: username: sa password: jpa: + open-in-view: false hibernate.ddl-auto: update database-platform: org.hibernate.dialect.H2Dialect servlet: diff --git a/service/fling/src/main/resources/application-prod.yml b/service/fling/src/main/resources/application-prod.yml index c1edb54..d5eec04 100644 --- a/service/fling/src/main/resources/application-prod.yml +++ b/service/fling/src/main/resources/application-prod.yml @@ -5,6 +5,7 @@ spring: username: sa password: jpa: + open-in-view: false hibernate.ddl-auto: update database-platform: org.hibernate.dialect.H2Dialect servlet: