Loading src/main/java/es/redmic/vesselrestrictionchecker/VesselRestrictionCheckerApplication.java +17 −6 Original line number Diff line number Diff line Loading @@ -134,7 +134,11 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase } // Se crea un nuevo registro con el geohash code y solo con la info necesaria avroRecord.put("mmsi", value.get("mmsi").toString()); avroRecord.put("name", value.get("name").toString()); Object name = value.get("name"); if (name != null) avroRecord.put("name", name.toString()); avroRecord.put("dateTime", value.get("tstamp")); avroRecord.put("vesselType", value.get("type")); avroRecord.put("sog", value.get("sog")); Loading @@ -161,9 +165,9 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase for (String geoHash : geoHashList) { // Se crean nuevos registros con el geohash code y solo con la info necesaria GenericRecord avroRecord = AvroUtils.getGenericRecordFromClass(SimpleArea.class); avroRecord.put(RESULT_GEOMETRY_PROPERTY, geometry.toString()); avroRecord.put("id", value.get("id").toString()); avroRecord.put("name", value.get("name").toString()); avroRecord.put(RESULT_GEOMETRY_PROPERTY, geometry); avroRecord.put("id", value.get("id")); avroRecord.put("name", value.get("name")); avroRecord.put(VESSEL_TYPES_RESTRICTED_PROPERTY, value.get(VESSEL_TYPES_RESTRICTED_PROPERTY)); avroRecord.put(MAX_SPEED_PROPERTY, value.get(MAX_SPEED_PROPERTY)); avroRecord.put(GEO_HASH_KEY, geoHash); Loading Loading @@ -216,11 +220,18 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase // Se crea una alerta con la info básica del punto y del área donde se encuentra PointInAreaAlert pointInAreaAlert = new PointInAreaAlert(); pointInAreaAlert.setVesselMmsi(pointRecord.get("mmsi").toString()); pointInAreaAlert.setVesselName(pointRecord.get("name").toString()); Object name = pointRecord.get("name"); if (name != null) pointInAreaAlert.setVesselName(name.toString()); pointInAreaAlert.setGeometry(pointRecord.get("geometry").toString()); pointInAreaAlert.setDateTime( new DateTime(Long.parseLong(pointRecord.get("dateTime").toString()), DateTimeZone.UTC)); pointInAreaAlert.setVesselType(Integer.parseInt(pointRecord.get("vesselType").toString())); Object vesselType = pointRecord.get("vesselType"); if (vesselType != null) pointInAreaAlert.setVesselType(Integer.parseInt(vesselType.toString())); pointInAreaAlert.setSog((Double) pointRecord.get("sog")); pointInAreaAlert.setAreaId(areaRecord.get("id").toString()); pointInAreaAlert.setAreaName(areaRecord.get("name").toString()); Loading src/main/java/es/redmic/vesselrestrictionchecker/dto/PointInAreaAlert.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,10 +15,10 @@ public class PointInAreaAlert extends org.apache.avro.specific.SpecificRecordBas + "{\"name\":\"areaId\",\"type\":\"string\"}," + "{\"name\":\"areaName\",\"type\":\"string\"}," + "{\"name\":\"vesselMmsi\",\"type\":\"string\"}," + "{\"name\":\"vesselName\",\"type\":\"string\"}," + "{\"name\":\"vesselName\",\"type\":[\"string\", \"null\"]}," + "{\"name\":\"geometry\",\"type\":\"string\"}," + "{\"name\":\"dateTime\",\"type\":{ \"type\":\"long\",\"logicalType\":\"timestamp-millis\"}}," + "{\"name\":\"vesselType\",\"type\":\"int\"}," + "{\"name\":\"vesselType\",\"type\":[\"int\", \"null\"]}," + "{\"name\":\"sog\",\"type\":[\"double\", \"null\"]}]}"); //@formatter:on Loading src/main/java/es/redmic/vesselrestrictionchecker/dto/SimplePoint.java +5 −0 Original line number Diff line number Diff line package es.redmic.vesselrestrictionchecker.dto; import org.apache.avro.reflect.Nullable; public class SimplePoint { private String mmsi; Loading @@ -8,12 +10,15 @@ public class SimplePoint { private String geohash; @Nullable private String name; private long dateTime; @Nullable private Integer vesselType; @Nullable private Double sog; public String getMmsi() { Loading Loading
src/main/java/es/redmic/vesselrestrictionchecker/VesselRestrictionCheckerApplication.java +17 −6 Original line number Diff line number Diff line Loading @@ -134,7 +134,11 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase } // Se crea un nuevo registro con el geohash code y solo con la info necesaria avroRecord.put("mmsi", value.get("mmsi").toString()); avroRecord.put("name", value.get("name").toString()); Object name = value.get("name"); if (name != null) avroRecord.put("name", name.toString()); avroRecord.put("dateTime", value.get("tstamp")); avroRecord.put("vesselType", value.get("type")); avroRecord.put("sog", value.get("sog")); Loading @@ -161,9 +165,9 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase for (String geoHash : geoHashList) { // Se crean nuevos registros con el geohash code y solo con la info necesaria GenericRecord avroRecord = AvroUtils.getGenericRecordFromClass(SimpleArea.class); avroRecord.put(RESULT_GEOMETRY_PROPERTY, geometry.toString()); avroRecord.put("id", value.get("id").toString()); avroRecord.put("name", value.get("name").toString()); avroRecord.put(RESULT_GEOMETRY_PROPERTY, geometry); avroRecord.put("id", value.get("id")); avroRecord.put("name", value.get("name")); avroRecord.put(VESSEL_TYPES_RESTRICTED_PROPERTY, value.get(VESSEL_TYPES_RESTRICTED_PROPERTY)); avroRecord.put(MAX_SPEED_PROPERTY, value.get(MAX_SPEED_PROPERTY)); avroRecord.put(GEO_HASH_KEY, geoHash); Loading Loading @@ -216,11 +220,18 @@ public class VesselRestrictionCheckerApplication extends StreamsApplicationBase // Se crea una alerta con la info básica del punto y del área donde se encuentra PointInAreaAlert pointInAreaAlert = new PointInAreaAlert(); pointInAreaAlert.setVesselMmsi(pointRecord.get("mmsi").toString()); pointInAreaAlert.setVesselName(pointRecord.get("name").toString()); Object name = pointRecord.get("name"); if (name != null) pointInAreaAlert.setVesselName(name.toString()); pointInAreaAlert.setGeometry(pointRecord.get("geometry").toString()); pointInAreaAlert.setDateTime( new DateTime(Long.parseLong(pointRecord.get("dateTime").toString()), DateTimeZone.UTC)); pointInAreaAlert.setVesselType(Integer.parseInt(pointRecord.get("vesselType").toString())); Object vesselType = pointRecord.get("vesselType"); if (vesselType != null) pointInAreaAlert.setVesselType(Integer.parseInt(vesselType.toString())); pointInAreaAlert.setSog((Double) pointRecord.get("sog")); pointInAreaAlert.setAreaId(areaRecord.get("id").toString()); pointInAreaAlert.setAreaName(areaRecord.get("name").toString()); Loading
src/main/java/es/redmic/vesselrestrictionchecker/dto/PointInAreaAlert.java +2 −2 Original line number Diff line number Diff line Loading @@ -15,10 +15,10 @@ public class PointInAreaAlert extends org.apache.avro.specific.SpecificRecordBas + "{\"name\":\"areaId\",\"type\":\"string\"}," + "{\"name\":\"areaName\",\"type\":\"string\"}," + "{\"name\":\"vesselMmsi\",\"type\":\"string\"}," + "{\"name\":\"vesselName\",\"type\":\"string\"}," + "{\"name\":\"vesselName\",\"type\":[\"string\", \"null\"]}," + "{\"name\":\"geometry\",\"type\":\"string\"}," + "{\"name\":\"dateTime\",\"type\":{ \"type\":\"long\",\"logicalType\":\"timestamp-millis\"}}," + "{\"name\":\"vesselType\",\"type\":\"int\"}," + "{\"name\":\"vesselType\",\"type\":[\"int\", \"null\"]}," + "{\"name\":\"sog\",\"type\":[\"double\", \"null\"]}]}"); //@formatter:on Loading
src/main/java/es/redmic/vesselrestrictionchecker/dto/SimplePoint.java +5 −0 Original line number Diff line number Diff line package es.redmic.vesselrestrictionchecker.dto; import org.apache.avro.reflect.Nullable; public class SimplePoint { private String mmsi; Loading @@ -8,12 +10,15 @@ public class SimplePoint { private String geohash; @Nullable private String name; private long dateTime; @Nullable private Integer vesselType; @Nullable private Double sog; public String getMmsi() { Loading