From 48bbc12b91fceef437508362d283c230c9680009 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Tue, 22 Jun 2021 14:02:08 +0200 Subject: [PATCH] fixing bugs - make StartStrategy non-optional - copy-paste-bugs in parser - check for hasReportStrategy when printing details --- src/main/jastadd/Coordinator.jrag | 2 +- src/main/jastadd/Coordinator.parser | 8 ++++---- src/main/jastadd/Coordinator.relast | 2 +- .../de/tudresden/inf/st/coordinator/MainCoordinator.java | 9 +++++---- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/jastadd/Coordinator.jrag b/src/main/jastadd/Coordinator.jrag index cdd6a21..1f9a8a2 100644 --- a/src/main/jastadd/Coordinator.jrag +++ b/src/main/jastadd/Coordinator.jrag @@ -192,7 +192,7 @@ aspect Printing { } return "<Name: " + getName() + ", StartStrategy: " + getStartStrategy().details() + - ", ReportStrategy: " + getReportStrategy().details() + + (hasReportStrategy() ? ", ReportStrategy: " + getReportStrategy().details() : "") + ", Status: " + getStatus() + ", NextCommand: " + getNextCommand() + ", Deps: " + sj.toString() + diff --git a/src/main/jastadd/Coordinator.parser b/src/main/jastadd/Coordinator.parser index 4d28fc1..a1bb3f6 100644 --- a/src/main/jastadd/Coordinator.parser +++ b/src/main/jastadd/Coordinator.parser @@ -44,21 +44,21 @@ Component component = ; Component component_body = - COMMA START USING start_strategy.s component_body.c {: c.setStartStrategy(s); return c; :} + COMMA START USING start_strategy.s component_body.c {: c.setStartStrategy(s); return c; :} | COMMA REPORT USING report_strategy.r component_body.c {: c.setReportStrategy(r); return c; :} | COMMA STATUS TEXT.s AFTER INTEGER.i SEC component_body.c {: c.setAutoSetStatus(new AutoSetStatus(s, Integer.parseInt(i))); return c; :} - | COMMA START AFTER REQS component_body.c {: c.setStartAsUp(true); return c; :} + | COMMA START AFTER REQS component_body.c {: c.setStartAsUp(true); return c; :} | {: Component c = new Component(); c.setStartStrategy(new ManualStartStrategy()); return c; :} ; StartStrategy start_strategy = - DOCKER_COMPOSE TEXT.dc component_body.c {: return new DockerComposeStartStrategy().setName(dc); :} + DOCKER_COMPOSE TEXT.dc {: return new DockerComposeStartStrategy().setName(dc); :} | SCRIPT TEXT.cmd {: return new ScriptStartStrategy().setCommand(cmd); :} | SCRIPT TEXT.cmd IN TEXT.cwd {: return new ScriptStartStrategy().setCommand(cmd).setCwd(cwd); :} ; ReportStrategy report_strategy = - MQTT TEXT.topic component_body.c {: return new MqttReportStrategy().setTopicPrefix(topic); :} + MQTT TEXT.topic {: return new MqttReportStrategy().setTopicPrefix(topic); :} ; StringList string_list = diff --git a/src/main/jastadd/Coordinator.relast b/src/main/jastadd/Coordinator.relast index 87baf3f..11abd37 100644 --- a/src/main/jastadd/Coordinator.relast +++ b/src/main/jastadd/Coordinator.relast @@ -1,5 +1,5 @@ Coordinator ::= Component* ParsedPrecedenceRelation* ; // /NextComponentToStart:Component/ ; -Component ::= <Name:String> [StartStrategy] [ReportStrategy] <Status:String> [AutoSetStatus] <StartAsUp:boolean> /<NextCommand:String>/ ; +Component ::= <Name:String> StartStrategy [ReportStrategy] <Status:String> [AutoSetStatus] <StartAsUp:boolean> /<NextCommand:String>/ ; rel Component.Predecessor* <-> Component.Successor* ; abstract StartStrategy ; diff --git a/src/main/java/de/tudresden/inf/st/coordinator/MainCoordinator.java b/src/main/java/de/tudresden/inf/st/coordinator/MainCoordinator.java index ede4051..7ccd1f6 100644 --- a/src/main/java/de/tudresden/inf/st/coordinator/MainCoordinator.java +++ b/src/main/java/de/tudresden/inf/st/coordinator/MainCoordinator.java @@ -120,13 +120,13 @@ public class MainCoordinator implements Callable<Integer> { if (alreadyRunning.contains(comp)) { comp.setStatus("up"); if (comp.hasAutoSetStatus() && !comp.getStartAsUp()) { - schduleAutoSetStatus(comp); + scheduleAutoSetStatus(comp); } } if (!alreadyRunning.contains(comp) && !comp.getStartAsUp()) { comp.getStartStrategy().start(); if (comp.hasAutoSetStatus()) { - schduleAutoSetStatus(comp); + scheduleAutoSetStatus(comp); } } } @@ -135,7 +135,7 @@ public class MainCoordinator implements Callable<Integer> { return 0; } - private void schduleAutoSetStatus(Component comp) { + private void scheduleAutoSetStatus(Component comp) { executor.schedule(() -> { System.out.println("Setting status of " + comp.getName() + " to " + comp.getAutoSetStatus().getStatus()); comp.setStatus(comp.getAutoSetStatus().getStatus()); @@ -143,7 +143,8 @@ public class MainCoordinator implements Callable<Integer> { } private void printStatus(String message) { - String content = message.contains("detail") ? coordinator.details() : coordinator.prettyPrint(); + String content = message.contains("detail") ? + ("Model-Status (detailed):\n" + coordinator.details()) : ("Model-Status:\n" + coordinator.prettyPrint()); System.out.println(content); if (mainHandler != null) { mainHandler.publish(TOPIC_STATUS, content.getBytes(StandardCharsets.UTF_8)); -- GitLab