From: Mathieu Date: Fri, 4 Nov 2022 08:44:02 +0000 (+0100) Subject: Revert start level changes X-Git-Tag: v2.3.11~29 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=b5b6d8c19aa5f1ea763e10a0bab5c9bbe08d2320 Revert start level changes --- diff --git a/org.argeo.init/src/org/argeo/init/osgi/OsgiBoot.java b/org.argeo.init/src/org/argeo/init/osgi/OsgiBoot.java index 81efa33e3..884461b12 100644 --- a/org.argeo.init/src/org/argeo/init/osgi/OsgiBoot.java +++ b/org.argeo.init/src/org/argeo/init/osgi/OsgiBoot.java @@ -19,9 +19,6 @@ import java.util.Set; import java.util.SortedMap; import java.util.StringTokenizer; import java.util.TreeMap; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ForkJoinPool; import org.argeo.init.a2.A2Source; import org.argeo.init.a2.ProvisioningManager; @@ -399,28 +396,36 @@ public class OsgiBoot implements OsgiBootConstants { if (OsgiBootUtils.isDebug()) OsgiBootUtils.debug("About to set framework start level to " + activeStartLevel + " ..."); - // Start the framework level after level - stages: for (int stage = initialStartLevel; stage <= activeStartLevel; stage++) { - if (OsgiBootUtils.isDebug()) - OsgiBootUtils.debug("Starting stage " + stage + "..."); - final int nextStage = stage; - final CompletableFuture stageCompleted = new CompletableFuture<>(); - ForkJoinPool.commonPool().execute(() -> { - frameworkStartLevel.setStartLevel(nextStage, (FrameworkEvent event) -> { - stageCompleted.complete(event); - }); - }); - FrameworkEvent event; - try { - event = stageCompleted.get(); - } catch (InterruptedException | ExecutionException e) { - throw new IllegalStateException("Cannot continue start", e); - } - if (event.getThrowable() != null) { - OsgiBootUtils.error("Stage " + nextStage + " failed, aborting start.", event.getThrowable()); - break stages; + frameworkStartLevel.setStartLevel(activeStartLevel, (FrameworkEvent event) -> { + if (event.getType() == FrameworkEvent.ERROR) { + OsgiBootUtils.error("Start sequence failed", event.getThrowable()); + } else { + if (OsgiBootUtils.isDebug()) + OsgiBootUtils.debug("Framework started at level " + frameworkStartLevel.getStartLevel()); } - } + }); + +// // Start the framework level after level +// int currentStartLevel = frameworkStartLevel.getStartLevel(); +// stages: for (int stage = currentStartLevel + 1; stage <= activeStartLevel; stage++) { +// if (OsgiBootUtils.isDebug()) +// OsgiBootUtils.debug("Starting stage " + stage + "..."); +// final int nextStage = stage; +// final CompletableFuture stageCompleted = new CompletableFuture<>(); +// frameworkStartLevel.setStartLevel(nextStage, (FrameworkEvent event) -> { +// stageCompleted.complete(event); +// }); +// FrameworkEvent event; +// try { +// event = stageCompleted.get(); +// } catch (InterruptedException | ExecutionException e) { +// throw new IllegalStateException("Cannot continue start", e); +// } +// if (event.getThrowable() != null) { +// OsgiBootUtils.error("Stage " + nextStage + " failed, aborting start.", event.getThrowable()); +// break stages; +// } +// } } private static void computeStartLevels(SortedMap> startLevels, Map properties,