From f62787de04f95fa13ed47373f235b039f30754f9 Mon Sep 17 00:00:00 2001 From: Tibor Tarnai Date: Wed, 11 Dec 2019 11:30:31 +0100 Subject: [PATCH 1/6] min health = 0 --- .../src/main/java/com/sap/tamagotchi/model/Device.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Device.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Device.java index ac93b55..256f3a6 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Device.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Device.java @@ -65,6 +65,8 @@ public class Device { healthScore += delta; if (healthScore > 150) healthScore /= 10; + } else { + healthScore = 0; } messages.add(new DeviceEvent(id, owner, color, born, healthScore, Instant.now())); } From dfc219cfde5ac3d068c8fb1b4cab849ebd78525d Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 11:31:09 +0100 Subject: [PATCH 2/6] refactor Notification --- .../tamagotchi/model/DefunctNotification.java | 23 ++++++++++++++++++ .../tamagotchi/service/TamagotchiService.java | 24 ++++--------------- 2 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java new file mode 100644 index 0000000..17fc505 --- /dev/null +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java @@ -0,0 +1,23 @@ +package com.sap.tamagotchi.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class DefunctNotification implements IoTMessage { + + @JsonProperty("message") + private final String message; + + public DefunctNotification(String message) { + this.message = message; + } + + @Override + public String getTopic() { + return "tamagotchi-defunct"; + } + + public String getMessage() { + return message; + } + +} diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java index 99f5d32..793c94f 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java @@ -14,10 +14,9 @@ import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; -import com.fasterxml.jackson.annotation.JsonProperty; import com.sap.tamagotchi.model.Care; +import com.sap.tamagotchi.model.DefunctNotification; import com.sap.tamagotchi.model.Device; -import com.sap.tamagotchi.model.IoTMessage; import com.sap.tamagotchi.publisher.PublisherService; @Service @@ -94,25 +93,10 @@ public class TamagotchiService { private void sendTamagotchiDefunctNotifiction(String id) { Device device = deviceRegistry.get(id); - - IoTMessage m = new IoTMessage() { - - @JsonProperty("message") - private String message = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); - - @Override - public String getTopic() { - return "tamagotchi-defunct"; - } - - public String getMessage() { - return message; - } - - }; - + String defunctMessage = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); + DefunctNotification defunctNotification = new DefunctNotification(defunctMessage); try { - publisherService.publish(m); + publisherService.publish(defunctNotification); LOGGER.info("defunct notification sent for {}", device.getId()); } catch (Exception ex) { LOGGER.error("sendTamagotchiDefunctNotifiction failed: {}", ex.getMessage()); From c123ff8ac016c46b6355ed873e5f79c187266f1d Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 11:35:41 +0100 Subject: [PATCH 3/6] Update TamagotchiService.java --- .../java/com/sap/tamagotchi/service/TamagotchiService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java index 793c94f..4f22013 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java @@ -84,8 +84,8 @@ public class TamagotchiService { .parallelStream() .filter(device -> !device.isAlive()) .forEach(device -> { - deviceRegistry.remove(device.getId()); sendTamagotchiDefunctNotifiction(device.getId()); + deviceRegistry.remove(device.getId()); LOGGER.info("{} has died", device.getId()); }); } @@ -93,6 +93,9 @@ public class TamagotchiService { private void sendTamagotchiDefunctNotifiction(String id) { Device device = deviceRegistry.get(id); + if (device == null) { + return; + } String defunctMessage = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); DefunctNotification defunctNotification = new DefunctNotification(defunctMessage); try { From 7b2d2ec45c2879d84fd87e5cf318a8bc15d91aee Mon Sep 17 00:00:00 2001 From: Tibor Tarnai Date: Wed, 11 Dec 2019 11:39:11 +0100 Subject: [PATCH 4/6] fix ownercontroller --- .../src/main/java/com/sap/tamagotchi/model/Owner.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Owner.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Owner.java index 2587886..b01e7cd 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Owner.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/Owner.java @@ -4,7 +4,9 @@ package com.sap.tamagotchi.model; import static com.sap.tamagotchi.service.TamagotchiService.DEVICE_EVENT_PROCESSOR_SCHEDULE; + import java.util.Collection; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -51,7 +53,7 @@ public class Owner { Collection devices = tamagotchiService.getDevices(); - if (devices != null) { + if (devices != null && devices.iterator().hasNext()) { Device first = devices.iterator().next(); Care care = new Care(); care.setFeed(-100000); From 37e31c67b82aea45d167bbb3b4c14c2c91200988 Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 11:43:46 +0100 Subject: [PATCH 5/6] Update TamagotchiService.java --- .../main/java/com/sap/tamagotchi/service/TamagotchiService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java index 4f22013..6665821 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/service/TamagotchiService.java @@ -96,7 +96,7 @@ public class TamagotchiService { if (device == null) { return; } - String defunctMessage = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); + String defunctMessage = String.format("Tamagotchi %s of %s passed away", device.getId(), device.getOwner()); DefunctNotification defunctNotification = new DefunctNotification(defunctMessage); try { publisherService.publish(defunctNotification); From 89bd50dda7b660f0c910cf0d077bfe5cc6162d25 Mon Sep 17 00:00:00 2001 From: Tibor Tarnai Date: Wed, 11 Dec 2019 11:44:01 +0100 Subject: [PATCH 6/6] fix event message --- .../main/java/com/sap/tamagotchi/model/DefunctNotification.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java index 17fc505..1666c9a 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DefunctNotification.java @@ -1,5 +1,6 @@ package com.sap.tamagotchi.model; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; public class DefunctNotification implements IoTMessage { @@ -11,6 +12,7 @@ public class DefunctNotification implements IoTMessage { this.message = message; } + @JsonIgnore @Override public String getTopic() { return "tamagotchi-defunct";