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

Añade la escucha de ais al controlador de tracking

Tanto para añadir un barco, como para añadir un nuevo punto
al track, se hace a partir de los datos recibidos de ais, por ello
se debe realizar desde un punto común.
parent d94a6e5e
Loading
Loading
Loading
Loading
+0 −13
Original line number Diff line number Diff line
package es.redmic.vesselscommands.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Controller;

import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO;
import es.redmic.commandslib.controller.CommandController;
import es.redmic.vesselscommands.service.VesselCommandService;
import es.redmic.vesselslib.dto.vessel.VesselDTO;
@@ -12,19 +10,8 @@ import es.redmic.vesselslib.dto.vessel.VesselDTO;
@Controller
public class VesselController extends CommandController<VesselDTO> {

	VesselCommandService service;

	@Autowired
	public VesselController(VesselCommandService service) {
		super(service);
		this.service = service;
	}

	@KafkaListener(topics = "${broker.topic.realtime.tracking.vessels}")
	public void run(AISTrackingDTO dto) {

		logger.info("Procesando barco: " + dto.getMmsi() + " date: " + dto.getTstamp());
		service.create(dto);
	}

}
+9 −3
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;

import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO;
import es.redmic.commandslib.controller.CommandGeoController;
import es.redmic.vesselscommands.service.VesselCommandService;
import es.redmic.vesselscommands.service.VesselTrackingCommandService;
import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO;

@@ -16,17 +17,22 @@ public class VesselTrackingController extends CommandGeoController<VesselTrackin

	VesselTrackingCommandService service;

	VesselCommandService vesselService;

	@Autowired
	public VesselTrackingController(VesselTrackingCommandService service) {
	public VesselTrackingController(VesselTrackingCommandService service, VesselCommandService vesselService) {
		super(service);
		this.service = service;
		this.vesselService = vesselService;
	}

	@KafkaListener(topics = "${broker.topic.realtime.tracking.vessels}")
	public void run(AISTrackingDTO dto) {
	public void run(AISTrackingDTO dto) throws InterruptedException {

		logger.info("Procesando barco: " + dto.getMmsi());
		vesselService.create(dto);

		logger.info("Procesando track para el barco: " + dto.getMmsi() + " date: " + dto.getTstamp());
		service.create(dto);
	}

}