Skip to content
Snippets Groups Projects
Commit 48bbc12b authored by René Schöne's avatar René Schöne
Browse files

fixing bugs

- make StartStrategy non-optional
- copy-paste-bugs in parser
- check for hasReportStrategy when printing details
parent 77b91075
Branches
No related tags found
No related merge requests found
...@@ -192,7 +192,7 @@ aspect Printing { ...@@ -192,7 +192,7 @@ aspect Printing {
} }
return "<Name: " + getName() + return "<Name: " + getName() +
", StartStrategy: " + getStartStrategy().details() + ", StartStrategy: " + getStartStrategy().details() +
", ReportStrategy: " + getReportStrategy().details() + (hasReportStrategy() ? ", ReportStrategy: " + getReportStrategy().details() : "") +
", Status: " + getStatus() + ", Status: " + getStatus() +
", NextCommand: " + getNextCommand() + ", NextCommand: " + getNextCommand() +
", Deps: " + sj.toString() + ", Deps: " + sj.toString() +
......
...@@ -52,13 +52,13 @@ Component component_body = ...@@ -52,13 +52,13 @@ Component component_body =
; ;
StartStrategy start_strategy = 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 {: return new ScriptStartStrategy().setCommand(cmd); :}
| SCRIPT TEXT.cmd IN TEXT.cwd {: return new ScriptStartStrategy().setCommand(cmd).setCwd(cwd); :} | SCRIPT TEXT.cmd IN TEXT.cwd {: return new ScriptStartStrategy().setCommand(cmd).setCwd(cwd); :}
; ;
ReportStrategy report_strategy = 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 = StringList string_list =
......
Coordinator ::= Component* ParsedPrecedenceRelation* ; // /NextComponentToStart:Component/ ; 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* ; rel Component.Predecessor* <-> Component.Successor* ;
abstract StartStrategy ; abstract StartStrategy ;
......
...@@ -120,13 +120,13 @@ public class MainCoordinator implements Callable<Integer> { ...@@ -120,13 +120,13 @@ public class MainCoordinator implements Callable<Integer> {
if (alreadyRunning.contains(comp)) { if (alreadyRunning.contains(comp)) {
comp.setStatus("up"); comp.setStatus("up");
if (comp.hasAutoSetStatus() && !comp.getStartAsUp()) { if (comp.hasAutoSetStatus() && !comp.getStartAsUp()) {
schduleAutoSetStatus(comp); scheduleAutoSetStatus(comp);
} }
} }
if (!alreadyRunning.contains(comp) && !comp.getStartAsUp()) { if (!alreadyRunning.contains(comp) && !comp.getStartAsUp()) {
comp.getStartStrategy().start(); comp.getStartStrategy().start();
if (comp.hasAutoSetStatus()) { if (comp.hasAutoSetStatus()) {
schduleAutoSetStatus(comp); scheduleAutoSetStatus(comp);
} }
} }
} }
...@@ -135,7 +135,7 @@ public class MainCoordinator implements Callable<Integer> { ...@@ -135,7 +135,7 @@ public class MainCoordinator implements Callable<Integer> {
return 0; return 0;
} }
private void schduleAutoSetStatus(Component comp) { private void scheduleAutoSetStatus(Component comp) {
executor.schedule(() -> { executor.schedule(() -> {
System.out.println("Setting status of " + comp.getName() + " to " + comp.getAutoSetStatus().getStatus()); System.out.println("Setting status of " + comp.getName() + " to " + comp.getAutoSetStatus().getStatus());
comp.setStatus(comp.getAutoSetStatus().getStatus()); comp.setStatus(comp.getAutoSetStatus().getStatus());
...@@ -143,7 +143,8 @@ public class MainCoordinator implements Callable<Integer> { ...@@ -143,7 +143,8 @@ public class MainCoordinator implements Callable<Integer> {
} }
private void printStatus(String message) { 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); System.out.println(content);
if (mainHandler != null) { if (mainHandler != null) {
mainHandler.publish(TOPIC_STATUS, content.getBytes(StandardCharsets.UTF_8)); mainHandler.publish(TOPIC_STATUS, content.getBytes(StandardCharsets.UTF_8));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment