From 6eef399086219d1c2fb29da3802e17955b6b07df Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Di, 04 Okt 2022 14:39:11 +0200
Subject: [PATCH] exercise11
---
src/main/java/de/gedoplan/seminar/sbt/di/exercise/SbtDiExerciseApplication.java | 2 ++
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java | 1 +
src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailCounter.java | 37 +++++++++++++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/SbtDiExerciseApplication.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/SbtDiExerciseApplication.java
index 9eb10c7..49d3ec0 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/SbtDiExerciseApplication.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/SbtDiExerciseApplication.java
@@ -3,7 +3,9 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
+import org.springframework.scheduling.annotation.EnableAsync;
+@EnableAsync
@ConfigurationPropertiesScan
@SpringBootApplication
public class SbtDiExerciseApplication {
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailCounter.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailCounter.java
new file mode 100644
index 0000000..28b8eeb
--- /dev/null
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailCounter.java
@@ -0,0 +1,37 @@
+package de.gedoplan.seminar.sbt.di.exercise.service;
+
+import de.gedoplan.seminar.sbt.di.exercise.domain.CocktailOrder;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+@Component
+public class CocktailCounter {
+ private AtomicInteger count = new AtomicInteger();
+
+ @Autowired
+ Logger logger;
+
+ @EventListener
+ @Async
+ public void countCocktail(CocktailOrder cocktailOrder) {
+ int cocktailCount = cocktailOrder
+ .getOrderDetails()
+ .values()
+ .stream()
+ .mapToInt(Integer::intValue)
+ .sum();
+
+ if (this.logger.isDebugEnabled()) {
+ this.logger.info("Cocktail count ordered: " + cocktailCount);
+ }
+
+ int currentCount = this.count.addAndGet(cocktailCount);
+ this.logger.info("Cocktail count total: " + currentCount);
+ }
+
+}
diff --git a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java
index 731efb8..0d93bb3 100644
--- a/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java
+++ b/src/main/java/de/gedoplan/seminar/sbt/di/exercise/service/CocktailOrderService.java
@@ -47,6 +47,7 @@
if (!cocktailOrder.isPlaced()) {
cocktailOrder.place();
+ eventPublisher.publishEvent(cocktailOrder);
}
}
--
Gitblit v1.7.1