From 46f7c07c8f62f6cf3d2e532240d0025b28aa41b7 Mon Sep 17 00:00:00 2001 From: Rudi Schlatte Date: Mon, 22 Apr 2024 10:44:42 +0200 Subject: [PATCH] Add option to keep test component alive Unless started with `--no-keepalive`, the locally-running solver will listen to messages from utility-evaluator and solver instead of terminating after initial deployment. Change-Id: Iacb1dd10c0212d8075903389d4cd60b6ec079047 --- .../optimiser/controller/LocalExecution.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/LocalExecution.java b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/LocalExecution.java index f0fe0db..229c0d0 100644 --- a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/LocalExecution.java +++ b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/LocalExecution.java @@ -41,6 +41,12 @@ public class LocalExecution implements Callable { negatable = true) private boolean deploy; + @Option(names = { "--keepalive"}, + description = "Stay alive and process messages from other components after initial deployment (default true).", + defaultValue = "true", fallbackValue = "true", + negatable = true) + private boolean keepalive; + @Override public Integer call() { ObjectMapper mapper = new ObjectMapper(); CountDownLatch exn_synchronizer = new CountDownLatch(1); @@ -77,6 +83,13 @@ public class LocalExecution implements Callable { } } if (connector != null) { + if (keepalive) { + try { + exn_synchronizer.await(); + } catch (InterruptedException e) { + // ignore + } + } connector.stop(); } return 0;