diff --git a/src/main/jastadd/Coordinator.jrag b/src/main/jastadd/Coordinator.jrag index cdd6a2160c9d695a12fe3036dccf90882dac826a..1f9a8a201da38baff7948e4bb9466e3f9669f02a 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 4d28fc103140e4c22dc5aa18041621aa9d055a0c..a1bb3f64f4db8a49c5d95284effd3b03c609a72f 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 87baf3f82003358688c9298c98763e6f5a52e405..11abd3738d7b0b8732d2ea632edee9308925a0fa 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 ede4051963c6f322e4209408691ce98c9a1a8097..7ccd1f6085742164b91ab4a3fcfeb345c3a70650 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));