Commit debac348 authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade etiquetas para de/serializar fechas

Adapta base + tests para que la de/serialización se funcione correctamente
parent c9ecd7a0
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -13,7 +13,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.kjetland.jackson.jsonSchema.annotations.JsonSchemaUrl;

import es.redmic.brokerlib.avro.common.CommonDTO;
import es.redmic.brokerlib.deserializer.CustomDateTimeDeserializer;
import es.redmic.brokerlib.deserializer.CustomRelationDeserializer;
import es.redmic.brokerlib.serializer.CustomDateTimeSerializer;
import es.redmic.vesselslib.constraintvalidation.vessel.ValidateVesselId;

@ValidateVesselId(mmsi = "mmsi", imo = "imo")
@@ -68,8 +70,12 @@ public class VesselDTO extends CommonDTO {

	private Double beam;

	@JsonSerialize(using = CustomDateTimeSerializer.class)
	@JsonDeserialize(using = CustomDateTimeDeserializer.class)
	private DateTime inserted;

	@JsonSerialize(using = CustomDateTimeSerializer.class)
	@JsonDeserialize(using = CustomDateTimeDeserializer.class)
	private DateTime updated;

	public Integer getMmsi() {
@@ -209,10 +215,10 @@ public class VesselDTO extends CommonDTO {
			beam = (java.lang.Double) value$;
			break;
		case 7:
			inserted = value$ != null ? new DateTime(value$, DateTimeZone.UTC) : null;
			inserted = value$ != null ? new DateTime(value$, DateTimeZone.UTC).toDateTime() : null;
			break;
		case 8:
			updated = value$ != null ? new DateTime(value$, DateTimeZone.UTC) : null;
			updated = value$ != null ? new DateTime(value$, DateTimeZone.UTC).toDateTime() : null;
			break;
		case 9:
			setId(value$.toString());
+9 −0
Original line number Diff line number Diff line
package es.redmic.vesselslib.events.vessel.common;

import org.apache.avro.Schema;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;

@@ -24,6 +25,7 @@ public abstract class VesselEvent extends Event {
		this.vessel = vessel;
	}

	@JsonIgnore
	@Override
	public Object get(int field$) {
		switch (field$) {
@@ -48,6 +50,7 @@ public abstract class VesselEvent extends Event {
		}
	}

	@JsonIgnore
	@Override
	public void put(int field$, Object value$) {
		switch (field$) {
@@ -85,4 +88,10 @@ public abstract class VesselEvent extends Event {

		return "{\"name\":\"vessel\", \"type\": " + VesselDTO.SCHEMA$.toString() + "}";
	}

	@JsonIgnore
	@Override
	public Schema getSchema() {
		return null;
	}
}
+4 −1
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ import org.apache.avro.Schema;
import org.apache.avro.reflect.ReflectData;
import org.junit.Test;

import com.fasterxml.jackson.core.JsonProcessingException;

import es.redmic.vesselslib.events.vessel.create.CreateVesselCancelledEvent;
import es.redmic.vesselslib.events.vessel.create.CreateVesselConfirmedEvent;
import es.redmic.vesselslib.events.vessel.create.CreateVesselEvent;
@@ -56,7 +58,8 @@ public class VesselEventsCheckAvroSchemaTest extends VesselAvroBaseTest {
	}

	@Test
	public void VesselCreatedEventSerializeAndDeserialize_IsSuccessful_IfSchemaAndDataAreCorrect() {
	public void VesselCreatedEventSerializeAndDeserialize_IsSuccessful_IfSchemaAndDataAreCorrect()
			throws JsonProcessingException {

		VesselCreatedEvent event = VesselDataUtil.getCreatedEvent();

+0 −4
Original line number Diff line number Diff line
@@ -3,8 +3,6 @@ package es.redmic.vesselslib.unit.utils;
import java.util.HashMap;
import java.util.Properties;

import com.fasterxml.jackson.databind.ObjectMapper;

import io.confluent.kafka.schemaregistry.client.MockSchemaRegistryClient;
import io.confluent.kafka.schemaregistry.client.SchemaRegistryClient;
import io.confluent.kafka.serializers.KafkaAvroDeserializer;
@@ -19,8 +17,6 @@ public abstract class VesselAvroBaseTest {

	protected KafkaAvroDeserializer avroDeserializer;

	ObjectMapper objectMapper = new ObjectMapper();

	@SuppressWarnings({ "unchecked", "rawtypes" })
	public VesselAvroBaseTest() {

+4 −0
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@ package es.redmic.vesselslib.unit.utils;
import java.util.HashMap;
import java.util.Map;

import org.joda.time.DateTime;

import es.redmic.vesselslib.dto.VesselDTO;
import es.redmic.vesselslib.dto.VesselTypeDTO;
import es.redmic.vesselslib.events.vessel.VesselEventType;
@@ -178,6 +180,8 @@ public abstract class VesselDataUtil {
		vessel.setBeam(30.2);
		vessel.setLength(230.5);
		vessel.setCallSign("23e2");
		vessel.setInserted(DateTime.now());
		vessel.setUpdated(DateTime.now());

		VesselTypeDTO vesselType = new VesselTypeDTO();
		vesselType.setCode("70");