Commit 9d553d28 authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade control de elementos bloqueados

parent eeb94454
Loading
Loading
Loading
Loading
+31 −6
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import es.redmic.atlaslib.events.category.update.UpdateCategoryCancelledEvent;
import es.redmic.atlaslib.events.category.update.UpdateCategoryEvent;
import es.redmic.brokerlib.alert.AlertService;
import es.redmic.commandslib.commands.CommandHandler;
import es.redmic.commandslib.exceptions.ItemLockedException;
import es.redmic.commandslib.streaming.common.StreamConfig;
import es.redmic.commandslib.streaming.common.StreamConfig.Builder;
import es.redmic.exception.factory.ExceptionFactory;
@@ -123,7 +124,15 @@ public class CategoryCommandHandler extends CommandHandler {

		CategoryAggregate agg = new CategoryAggregate(categoryStateStore, userService);

		CreateCategoryEvent event = agg.process(cmd);
		CreateCategoryEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getCategory().getId(), categoryTopic);
			throw e;
		}

		// Si no se genera evento significa que no se debe aplicar
		if (event == null)
@@ -132,7 +141,7 @@ public class CategoryCommandHandler extends CommandHandler {
		// Se aplica el evento
		agg.apply(event);

		return sendEventAndWaitResult(event, categoryTopic);
		return sendEventAndWaitResult(agg, event, categoryTopic);
	}

	public CategoryDTO update(String id, UpdateCategoryCommand cmd) {
@@ -140,7 +149,15 @@ public class CategoryCommandHandler extends CommandHandler {
		CategoryAggregate agg = new CategoryAggregate(categoryStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		UpdateCategoryEvent event = agg.process(cmd);
		UpdateCategoryEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getCategory().getId(), categoryTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -149,7 +166,7 @@ public class CategoryCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, categoryTopic);
		return sendEventAndWaitResult(agg, event, categoryTopic);
	}

	public CategoryDTO update(String id, DeleteCategoryCommand cmd) {
@@ -158,7 +175,15 @@ public class CategoryCommandHandler extends CommandHandler {
		agg.setAggregateId(id);

		// Se procesa el comando, obteniendo el evento generado
		CheckDeleteCategoryEvent event = agg.process(cmd);
		CheckDeleteCategoryEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getCategoryId(), categoryTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -167,7 +192,7 @@ public class CategoryCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, categoryTopic);
		return sendEventAndWaitResult(agg, event, categoryTopic);
	}

	@KafkaHandler
+41 −8
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import es.redmic.atlaslib.events.themeinspire.update.ThemeInspireUpdatedEvent;
import es.redmic.brokerlib.alert.AlertService;
import es.redmic.brokerlib.avro.common.Event;
import es.redmic.commandslib.commands.CommandHandler;
import es.redmic.commandslib.exceptions.ItemLockedException;
import es.redmic.commandslib.streaming.common.StreamConfig;
import es.redmic.commandslib.streaming.common.StreamConfig.Builder;
import es.redmic.exception.common.ExceptionType;
@@ -139,7 +140,15 @@ public class LayerCommandHandler extends CommandHandler {

		LayerAggregate agg = new LayerAggregate(layerStateStore, userService);

		LayerEvent event = agg.process(cmd);
		LayerEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getLayer().getId(), layerTopic);
			throw e;
		}

		// Si no se genera evento significa que no se debe aplicar
		if (event == null)
@@ -148,7 +157,7 @@ public class LayerCommandHandler extends CommandHandler {
		// Se aplica el evento
		agg.apply(event);

		return sendEventAndWaitResult(event, layerTopic);
		return sendEventAndWaitResult(agg, event, layerTopic);
	}

	public LayerDTO update(String id, UpdateLayerCommand cmd) {
@@ -156,7 +165,15 @@ public class LayerCommandHandler extends CommandHandler {
		LayerAggregate agg = new LayerAggregate(layerStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		LayerEvent event = agg.process(cmd);
		LayerEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getLayer().getId(), layerTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -165,7 +182,7 @@ public class LayerCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, layerTopic);
		return sendEventAndWaitResult(agg, event, layerTopic);
	}

	public LayerDTO update(String id, DeleteLayerCommand cmd) {
@@ -173,7 +190,15 @@ public class LayerCommandHandler extends CommandHandler {
		LayerAggregate agg = new LayerAggregate(layerStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		CheckDeleteLayerEvent event = agg.process(cmd);
		CheckDeleteLayerEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getLayerId(), layerTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -182,7 +207,7 @@ public class LayerCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, layerTopic);
		return sendEventAndWaitResult(agg, event, layerTopic);
	}

	public LayerDTO refresh(RefreshLayerCommand cmd) {
@@ -190,7 +215,15 @@ public class LayerCommandHandler extends CommandHandler {
		LayerAggregate agg = new LayerAggregate(layerStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		RefreshLayerEvent event = agg.process(cmd);
		RefreshLayerEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getLayer().getId(), layerTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -199,7 +232,7 @@ public class LayerCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, layerTopic);
		return sendEventAndWaitResult(agg, event, layerTopic);
	}

	@KafkaHandler
+31 −6
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ import es.redmic.atlaslib.events.themeinspire.update.UpdateThemeInspireCancelled
import es.redmic.atlaslib.events.themeinspire.update.UpdateThemeInspireEvent;
import es.redmic.brokerlib.alert.AlertService;
import es.redmic.commandslib.commands.CommandHandler;
import es.redmic.commandslib.exceptions.ItemLockedException;
import es.redmic.commandslib.streaming.common.StreamConfig;
import es.redmic.commandslib.streaming.common.StreamConfig.Builder;
import es.redmic.exception.factory.ExceptionFactory;
@@ -126,7 +127,15 @@ public class ThemeInspireCommandHandler extends CommandHandler {

		ThemeInspireAggregate agg = new ThemeInspireAggregate(themeInspireStateStore, userService);

		CreateThemeInspireEvent event = agg.process(cmd);
		CreateThemeInspireEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getThemeInspire().getId(), themeInspireTopic);
			throw e;
		}

		// Si no se genera evento significa que no se debe aplicar
		if (event == null)
@@ -135,7 +144,7 @@ public class ThemeInspireCommandHandler extends CommandHandler {
		// Se aplica el evento
		agg.apply(event);

		return sendEventAndWaitResult(event, themeInspireTopic);
		return sendEventAndWaitResult(agg, event, themeInspireTopic);
	}

	public ThemeInspireDTO update(String id, UpdateThemeInspireCommand cmd) {
@@ -143,7 +152,15 @@ public class ThemeInspireCommandHandler extends CommandHandler {
		ThemeInspireAggregate agg = new ThemeInspireAggregate(themeInspireStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		UpdateThemeInspireEvent event = agg.process(cmd);
		UpdateThemeInspireEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getThemeInspire().getId(), themeInspireTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -152,7 +169,7 @@ public class ThemeInspireCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, themeInspireTopic);
		return sendEventAndWaitResult(agg, event, themeInspireTopic);
	}

	public ThemeInspireDTO update(String id, DeleteThemeInspireCommand cmd) {
@@ -160,7 +177,15 @@ public class ThemeInspireCommandHandler extends CommandHandler {
		ThemeInspireAggregate agg = new ThemeInspireAggregate(themeInspireStateStore, userService);

		// Se procesa el comando, obteniendo el evento generado
		CheckDeleteThemeInspireEvent event = agg.process(cmd);
		CheckDeleteThemeInspireEvent event;

		try {
			event = agg.process(cmd);
		} catch (ItemLockedException e) {

			unlockStatus(agg, cmd.getThemeInspireId(), themeInspireTopic);
			throw e;
		}

		// Si no se genera evento significa que no se va a aplicar
		if (event == null)
@@ -169,7 +194,7 @@ public class ThemeInspireCommandHandler extends CommandHandler {
		// Si no existen excepciones, se aplica el comando
		agg.apply(event);

		return sendEventAndWaitResult(event, themeInspireTopic);
		return sendEventAndWaitResult(agg, event, themeInspireTopic);
	}

	@KafkaHandler