From 622ab894311bea5178e8259933b6e58ffb81d39c Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 09:58:14 +0100 Subject: [PATCH 1/6] refactor --- src/tamagotchi-service/app.yaml | 6 +++++ .../controller/DeviceController.java | 23 ++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/tamagotchi-service/app.yaml b/src/tamagotchi-service/app.yaml index fe4a130..23e61a6 100644 --- a/src/tamagotchi-service/app.yaml +++ b/src/tamagotchi-service/app.yaml @@ -1,2 +1,8 @@ runtime: java11 entrypoint: java -jar target/tamagotchi-service-0.1.0.jar +inbound_services: + - warmup +automatic_scaling: + max_instances: 1 + min_instances: 1 + diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java index bc303e5..e86d36d 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/controller/DeviceController.java @@ -1,8 +1,11 @@ package com.sap.tamagotchi.controller; -import com.sap.tamagotchi.model.CreateDevicePayload; -import com.sap.tamagotchi.model.Device; -import com.sap.tamagotchi.service.TamagotchiService; +import static org.springframework.http.ResponseEntity.ok; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; @@ -10,11 +13,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import static org.springframework.http.ResponseEntity.ok; +import com.sap.tamagotchi.model.CreateDevicePayload; +import com.sap.tamagotchi.model.Device; +import com.sap.tamagotchi.service.TamagotchiService; @RestController public class DeviceController { @@ -44,4 +45,10 @@ public class DeviceController { } return ok(devices); } + + @RequestMapping("/_ah/warmup") + public String warmup() { + return "warming up"; + } + } From b94adb14f18c63c41744132b815c3bd4dad8b360 Mon Sep 17 00:00:00 2001 From: Tibor Tarnai Date: Wed, 11 Dec 2019 10:19:33 +0100 Subject: [PATCH 2/6] correct timestamp format --- .../src/main/java/com/sap/tamagotchi/model/Device.java | 4 ++-- .../main/java/com/sap/tamagotchi/model/DeviceEvent.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) 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 611af3f..ac93b55 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 @@ -45,8 +45,8 @@ public class Device { } @JsonProperty("born") - public Instant getBorn() { - return born; + public String getBorn() { + return born.toString(); } @JsonProperty("healthScore") diff --git a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DeviceEvent.java b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DeviceEvent.java index 9aede0e..dccd389 100644 --- a/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DeviceEvent.java +++ b/src/tamagotchi-service/src/main/java/com/sap/tamagotchi/model/DeviceEvent.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import java.time.Instant; + public class DeviceEvent implements IoTMessage { @JsonProperty("id") @@ -45,8 +46,8 @@ public class DeviceEvent implements IoTMessage { } @JsonProperty("born") - public Instant getBorn() { - return born; + public String getBorn() { + return born.toString(); } @JsonProperty("healthScore") @@ -55,8 +56,8 @@ public class DeviceEvent implements IoTMessage { } @JsonProperty("eventTime") - public Instant getEventTime() { - return eventTime; + public String getEventTime() { + return eventTime.toString(); } @JsonProperty("isAlive") From 0467523939609c7f59393ba88a08f641efc4341c Mon Sep 17 00:00:00 2001 From: Tibor Tarnai Date: Wed, 11 Dec 2019 10:20:27 +0100 Subject: [PATCH 3/6] fix test --- .../src/test/java/com/sap/tamagotchi/model/OwnerTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/tamagotchi-service/src/test/java/com/sap/tamagotchi/model/OwnerTest.java b/src/tamagotchi-service/src/test/java/com/sap/tamagotchi/model/OwnerTest.java index bbb7bcb..3ee186d 100644 --- a/src/tamagotchi-service/src/test/java/com/sap/tamagotchi/model/OwnerTest.java +++ b/src/tamagotchi-service/src/test/java/com/sap/tamagotchi/model/OwnerTest.java @@ -1,7 +1,5 @@ package com.sap.tamagotchi.model; -import static org.junit.jupiter.api.Assertions.*; - class OwnerTest { } \ No newline at end of file From 004b5ed0378207a6cd03df74f7a6d6e86ce3f603 Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 10:23:42 +0100 Subject: [PATCH 4/6] Update TamagotchiService.java --- .../tamagotchi/service/TamagotchiService.java | 33 ++++++++++++++++++- 1 file changed, 32 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 b9d362a..ea10295 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 @@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import com.sap.tamagotchi.model.Care; import com.sap.tamagotchi.model.Device; +import com.sap.tamagotchi.model.IoTMessage; import com.sap.tamagotchi.publisher.PublisherService; @Service @@ -82,7 +83,37 @@ public class TamagotchiService { .values() .parallelStream() .filter(device -> !device.isAlive()) - .forEach(device -> deviceRegistry.remove(device.getId())); + .forEach(device -> { + deviceRegistry.remove(device.getId()); + sendTamagotchiDefunctNotifiction(device.getId()); + }); + } + + private void sendTamagotchiDefunctNotifiction(String id) { + + Device device = deviceRegistry.get(id); + + IoTMessage m = new IoTMessage() { + + 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; + } + + }; + + try { + publisherService.publish(m); + } catch (Exception ex) { + LOGGER.error("sendTamagotchiDefunctNotifiction failed: {}", ex.getMessage()); + } } } From 5d6199e865b11d7890ac3951f351a138e66e5776 Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 10:25:23 +0100 Subject: [PATCH 5/6] Update TamagotchiService.java --- .../main/java/com/sap/tamagotchi/service/TamagotchiService.java | 2 ++ 1 file changed, 2 insertions(+) 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 ea10295..7413d37 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,6 +14,7 @@ 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.Device; import com.sap.tamagotchi.model.IoTMessage; @@ -95,6 +96,7 @@ public class TamagotchiService { IoTMessage m = new IoTMessage() { + @JsonProperty("message") private String message = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); From f8dc13d5843f3c7e8a347b8ef28841295026f9e1 Mon Sep 17 00:00:00 2001 From: Steinwagner Date: Wed, 11 Dec 2019 10:27:33 +0100 Subject: [PATCH 6/6] Update TamagotchiService.java --- .../java/com/sap/tamagotchi/service/TamagotchiService.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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 7413d37..4da1943 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 @@ -97,8 +97,7 @@ public class TamagotchiService { IoTMessage m = new IoTMessage() { @JsonProperty("message") - private String message = String.format("Tamagotchi %s of %s passed away", - device.getOwner(), device.getOwner()); + private String message = String.format("Tamagotchi %s of %s passed away", device.getOwner(), device.getOwner()); @Override public String getTopic() {