Loading vessels-commands/src/main/java/es/redmic/vesselscommands/service/VesselCommandService.java +6 −2 Original line number Diff line number Diff line Loading @@ -67,7 +67,11 @@ public class VesselCommandService implements CommandServiceItfc<VesselDTO> { vessel.setName(aisTracking.getName()); vessel.setCallSign(aisTracking.getCallSign()); vessel.setImo(aisTracking.getImo()); if (aisTracking.getA() != null && aisTracking.getB() != null) vessel.setLength(aisTracking.getA() + aisTracking.getB()); if (aisTracking.getC() != null && aisTracking.getD() != null) vessel.setBeam(aisTracking.getC() + aisTracking.getD()); VesselTypeDTO vesselType = new VesselTypeDTO(); Loading vessels-commands/src/main/resources/application.properties +4 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ oauth.check_token.endpoint=${oauth.server}/api/oauth/check_token oauth.client.id=clientId oauth.client.secret=secret spring.devtools.add-properties=false spring.profiles.active=@spring.profiles.active@ logging.level.root=info Loading @@ -26,10 +28,10 @@ logging.level.es.redmic=info spring.kafka.bootstrap-servers=${spring.kafka.bootstrap-servers} spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.listener.ack-mode=record spring.kafka.listener.log-container-config=true spring.kafka.listener.client-id=${spring.kafka.client-id} spring.kafka.consumer.enable-auto-commit=false spring.kafka.consumer.enable-auto-commit=true spring.kafka.consumer.auto-commit-interval.seconds=1 spring.kafka.client-id=@project.name@ spring.kafka.consumer.group-id=@project.name@ Loading vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/service/CreateVesselFromAis.java 0 → 100644 +88 −0 Original line number Diff line number Diff line package es.redmic.test.vesselscommands.unit.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO; import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil; import es.redmic.vesselscommands.service.VesselCommandService; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; @RunWith(MockitoJUnitRunner.class) public class CreateVesselFromAis { @Test public void convertAisToVessel_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselDTO result = VesselCommandService.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(result.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(result.getBeam(), beam); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), dto.getType().toString()); assertEquals(result.getImo(), dto.getImo()); assertEquals(result.getCallSign(), dto.getCallSign()); } @Test public void convertAisToVesselWithNullValues_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { Integer mmsi = 2; String name = "prueba"; AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(mmsi); dto.setName(name); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselDTO result = VesselCommandService.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), "0"); assertNull(result.getImo()); assertNull(result.getLength()); assertNull(result.getBeam()); assertNull(result.getCallSign()); } } vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/service/CreateVesselTrackingFromAis.java 0 → 100644 +109 −0 Original line number Diff line number Diff line package es.redmic.test.vesselscommands.unit.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO; import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil; import es.redmic.vesselscommands.service.VesselTrackingCommandService; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; @RunWith(MockitoJUnitRunner.class) public class CreateVesselTrackingFromAis { @InjectMocks VesselTrackingCommandService service; @Test public void convertAisToVesselTracking_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselTrackingDTO result = service.convertTrackToVesselTracking(dto); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertEquals(result.getProperties().getCog(), dto.getCog()); assertEquals(result.getProperties().getSog(), dto.getSog()); assertEquals(result.getProperties().getHeading(), dto.getHeading()); assertEquals(result.getProperties().getNavStat(), dto.getNavStat()); assertEquals(result.getProperties().getEta(), dto.getEta()); assertEquals(result.getProperties().getDest(), dto.getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(vesselResult.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(vesselResult.getBeam(), beam); } @Test public void convertAisToVesselTrackingWithNullValues_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setName(vessel.getName()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselTrackingDTO result = service.convertTrackToVesselTracking(dto); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertNull(result.getProperties().getCog()); assertNull(result.getProperties().getSog()); assertNull(result.getProperties().getHeading()); assertNull(result.getProperties().getNavStat()); assertNull(result.getProperties().getEta()); assertNull(result.getProperties().getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); assertNotNull(vesselResult.getType()); assertEquals(vesselResult.getType().getCode(), "0"); assertNull(vesselResult.getImo()); assertNull(vesselResult.getLength()); assertNull(vesselResult.getBeam()); assertNull(vesselResult.getCallSign()); } } vessels-view/src/main/resources/application.properties +6 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,11 @@ oauth.client.secret=secret spring.kafka.bootstrap-servers=${spring.kafka.bootstrap-servers} spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.listener.log-container-config=true spring.kafka.listener.client-id=${spring.kafka.client-id} spring.kafka.consumer.enable-auto-commit=true spring.kafka.consumer.auto-commit-interval.seconds=1 spring.kafka.client-id=@project.name@ spring.kafka.consumer.group-id=@project.name@ spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer Loading @@ -37,7 +41,8 @@ spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.Str spring.kafka.consumer.value-deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer spring.kafka.consumer.max-poll-records=50 spring.kafka.consumer.properties.max.poll.interval.ms=600000 #spring.kafka.consumer.properties.max.poll.interval.ms=600000 spring.kafka.producer.retries=5 spring.kafka.properties.request.timeout.ms=605000 spring.kafka.consumer.heartbeat-interval.seconds=3 spring.kafka.consumer.properties.session.timeout.ms=30000 Loading Loading
vessels-commands/src/main/java/es/redmic/vesselscommands/service/VesselCommandService.java +6 −2 Original line number Diff line number Diff line Loading @@ -67,7 +67,11 @@ public class VesselCommandService implements CommandServiceItfc<VesselDTO> { vessel.setName(aisTracking.getName()); vessel.setCallSign(aisTracking.getCallSign()); vessel.setImo(aisTracking.getImo()); if (aisTracking.getA() != null && aisTracking.getB() != null) vessel.setLength(aisTracking.getA() + aisTracking.getB()); if (aisTracking.getC() != null && aisTracking.getD() != null) vessel.setBeam(aisTracking.getC() + aisTracking.getD()); VesselTypeDTO vesselType = new VesselTypeDTO(); Loading
vessels-commands/src/main/resources/application.properties +4 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ oauth.check_token.endpoint=${oauth.server}/api/oauth/check_token oauth.client.id=clientId oauth.client.secret=secret spring.devtools.add-properties=false spring.profiles.active=@spring.profiles.active@ logging.level.root=info Loading @@ -26,10 +28,10 @@ logging.level.es.redmic=info spring.kafka.bootstrap-servers=${spring.kafka.bootstrap-servers} spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.listener.ack-mode=record spring.kafka.listener.log-container-config=true spring.kafka.listener.client-id=${spring.kafka.client-id} spring.kafka.consumer.enable-auto-commit=false spring.kafka.consumer.enable-auto-commit=true spring.kafka.consumer.auto-commit-interval.seconds=1 spring.kafka.client-id=@project.name@ spring.kafka.consumer.group-id=@project.name@ Loading
vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/service/CreateVesselFromAis.java 0 → 100644 +88 −0 Original line number Diff line number Diff line package es.redmic.test.vesselscommands.unit.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO; import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil; import es.redmic.vesselscommands.service.VesselCommandService; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; @RunWith(MockitoJUnitRunner.class) public class CreateVesselFromAis { @Test public void convertAisToVessel_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselDTO result = VesselCommandService.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(result.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(result.getBeam(), beam); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), dto.getType().toString()); assertEquals(result.getImo(), dto.getImo()); assertEquals(result.getCallSign(), dto.getCallSign()); } @Test public void convertAisToVesselWithNullValues_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { Integer mmsi = 2; String name = "prueba"; AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(mmsi); dto.setName(name); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselDTO result = VesselCommandService.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), "0"); assertNull(result.getImo()); assertNull(result.getLength()); assertNull(result.getBeam()); assertNull(result.getCallSign()); } }
vessels-commands/src/test/java/es/redmic/test/vesselscommands/unit/service/CreateVesselTrackingFromAis.java 0 → 100644 +109 −0 Original line number Diff line number Diff line package es.redmic.test.vesselscommands.unit.service; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO; import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil; import es.redmic.vesselscommands.service.VesselTrackingCommandService; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; @RunWith(MockitoJUnitRunner.class) public class CreateVesselTrackingFromAis { @InjectMocks VesselTrackingCommandService service; @Test public void convertAisToVesselTracking_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselTrackingDTO result = service.convertTrackToVesselTracking(dto); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertEquals(result.getProperties().getCog(), dto.getCog()); assertEquals(result.getProperties().getSog(), dto.getSog()); assertEquals(result.getProperties().getHeading(), dto.getHeading()); assertEquals(result.getProperties().getNavStat(), dto.getNavStat()); assertEquals(result.getProperties().getEta(), dto.getEta()); assertEquals(result.getProperties().getDest(), dto.getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(vesselResult.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(vesselResult.getBeam(), beam); } @Test public void convertAisToVesselTrackingWithNullValues_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setName(vessel.getName()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselTrackingDTO result = service.convertTrackToVesselTracking(dto); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertNull(result.getProperties().getCog()); assertNull(result.getProperties().getSog()); assertNull(result.getProperties().getHeading()); assertNull(result.getProperties().getNavStat()); assertNull(result.getProperties().getEta()); assertNull(result.getProperties().getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); assertNotNull(vesselResult.getType()); assertEquals(vesselResult.getType().getCode(), "0"); assertNull(vesselResult.getImo()); assertNull(vesselResult.getLength()); assertNull(vesselResult.getBeam()); assertNull(vesselResult.getCallSign()); } }
vessels-view/src/main/resources/application.properties +6 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,11 @@ oauth.client.secret=secret spring.kafka.bootstrap-servers=${spring.kafka.bootstrap-servers} spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.listener.log-container-config=true spring.kafka.listener.client-id=${spring.kafka.client-id} spring.kafka.consumer.enable-auto-commit=true spring.kafka.consumer.auto-commit-interval.seconds=1 spring.kafka.client-id=@project.name@ spring.kafka.consumer.group-id=@project.name@ spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer Loading @@ -37,7 +41,8 @@ spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.Str spring.kafka.consumer.value-deserializer=io.confluent.kafka.serializers.KafkaAvroDeserializer spring.kafka.consumer.max-poll-records=50 spring.kafka.consumer.properties.max.poll.interval.ms=600000 #spring.kafka.consumer.properties.max.poll.interval.ms=600000 spring.kafka.producer.retries=5 spring.kafka.properties.request.timeout.ms=605000 spring.kafka.consumer.heartbeat-interval.seconds=3 spring.kafka.consumer.properties.session.timeout.ms=30000 Loading