Fixed java.time.Instant serialization

This commit is contained in:
Fabio Sinibaldi 2020-01-16 14:21:46 +01:00
parent 857ab34e64
commit 462a370f53
4 changed files with 60 additions and 16 deletions

View File

@ -65,25 +65,17 @@
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.14</version>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.14</version>
</dependency>
<!-- FORCE JACKSON 2.8
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.4</version>
<scope>compile</scope>
</dependency> -->
<!-- FORCE JACKSON 2.8 <dependency> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId> <version>2.8.4</version> <scope>compile</scope>
</dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId> <version>2.8.4</version> <scope>compile</scope>
</dependency> -->
<!-- Persistence -->

View File

@ -4,6 +4,12 @@ import java.time.Instant;
import java.util.HashSet;
import java.util.Set;
import org.gcube.data.publishing.gCatFeeder.service.model.serialization.DefaultInstantDeserializer;
import org.gcube.data.publishing.gCatFeeder.service.model.serialization.DefaultInstantSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
public class ExecutionDescriptor {
@ -19,7 +25,12 @@ public class ExecutionDescriptor {
private ExecutionStatus status;
private String reportUrl;
@JsonSerialize(using = DefaultInstantSerializer.class)
@JsonDeserialize(using = DefaultInstantDeserializer.class)
private Instant startTime;
@JsonSerialize(using = DefaultInstantSerializer.class)
@JsonDeserialize(using = DefaultInstantDeserializer.class)
private Instant endTime;

View File

@ -0,0 +1,20 @@
package org.gcube.data.publishing.gCatFeeder.service.model.serialization;
import java.io.IOException;
import java.time.Instant;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
public class DefaultInstantDeserializer extends JsonDeserializer<Instant>{
@Override
public Instant deserialize(JsonParser arg0, DeserializationContext arg1)
throws IOException, JsonProcessingException {
return Instant.parse(arg0.getText());
}
}

View File

@ -0,0 +1,21 @@
package org.gcube.data.publishing.gCatFeeder.service.model.serialization;
import java.io.IOException;
import java.time.Instant;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
public class DefaultInstantSerializer extends JsonSerializer<Instant>{
@Override
public void serialize(Instant arg0, JsonGenerator arg1, SerializerProvider arg2)
throws IOException, JsonProcessingException {
arg1.writeString(arg0.toString());
}
}