This is an automated email from the ASF dual-hosted git repository. jsinovassinnaik pushed a commit to branch avoid-duplicate-log in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 1e0c5bba22f51c8ccdff40e806f6a4cdf23791bc Author: jsinovassin <[email protected]> AuthorDate: Fri Feb 6 11:54:04 2026 +0100 UNOMI-930: sync startup log display to avoid to see it twice --- .../apache/unomi/lifecycle/BundleWatcherImpl.java | 59 ++++++++++++---------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/lifecycle-watcher/src/main/java/org/apache/unomi/lifecycle/BundleWatcherImpl.java b/lifecycle-watcher/src/main/java/org/apache/unomi/lifecycle/BundleWatcherImpl.java index c18ea6e64..55f9799b4 100644 --- a/lifecycle-watcher/src/main/java/org/apache/unomi/lifecycle/BundleWatcherImpl.java +++ b/lifecycle-watcher/src/main/java/org/apache/unomi/lifecycle/BundleWatcherImpl.java @@ -58,6 +58,9 @@ public class BundleWatcherImpl implements SynchronousBundleListener, ServiceList private List<ServerInfo> serverInfos = new ArrayList<>(); + // Lock object to synchronize startup message display + private final Object startupMessageLock = new Object(); + public void setRequiredBundles(Map<String, Boolean> requiredBundles) { this.requiredBundles = new ConcurrentHashMap<>(requiredBundles); } @@ -274,43 +277,43 @@ public class BundleWatcherImpl implements SynchronousBundleListener, ServiceList } private void checkStartupComplete() { - if (!isStartupComplete()) { - startScheduler(getBundleCheckTask()); - return; - } if (scheduledFuture != null) { destroyScheduler(); } - if (!allAdditionalBundleStarted()) { + if (!isStartupComplete()) { + startScheduler(getBundleCheckTask()); + return; + } else if (!allAdditionalBundleStarted()) { startScheduler(getAdditionalBundleCheckTask()); return; } - if (scheduledFuture != null) { - destroyScheduler(); - } if (!startupMessageAlreadyDisplayed) { - long totalStartupTime = System.currentTimeMillis() - startupTime; + synchronized (startupMessageLock) { + if (!startupMessageAlreadyDisplayed) { + long totalStartupTime = System.currentTimeMillis() - startupTime; - List<String> logoLines = serverInfos.get(serverInfos.size() - 1).getLogoLines(); - if (logoLines != null && !logoLines.isEmpty()) { - logoLines.forEach(System.out::println); + List<String> logoLines = serverInfos.get(serverInfos.size() - 1).getLogoLines(); + if (logoLines != null && !logoLines.isEmpty()) { + logoLines.forEach(System.out::println); + } + System.out.println("--------------------------------------------------------------------------------------------"); + serverInfos.forEach(serverInfo -> { + String versionMessage = MessageFormat.format(" {0} {1} ({2,date,yyyy-MM-dd HH:mm:ssZ} // {3} // {4} // {5}) ", + StringUtils.rightPad(serverInfo.getServerIdentifier(), 12, " "), serverInfo.getServerVersion(), + serverInfo.getServerBuildDate(), serverInfo.getServerTimestamp(), serverInfo.getServerScmBranch(), + serverInfo.getServerBuildNumber()); + System.out.println(versionMessage); + LOGGER.info(versionMessage); + }); + System.out.println("--------------------------------------------------------------------------------------------"); + System.out.println("Server successfully started " + requiredBundles.size() + " bundles and " + requiredServicesFilters.size() + + " required " + "services in " + totalStartupTime + " ms"); + LOGGER.info("Server successfully started {} bundles and {} required services in {} ms", requiredBundles.size(), + requiredServicesFilters.size(), totalStartupTime); + startupMessageAlreadyDisplayed = true; + shutdownMessageAlreadyDisplayed = false; + } } - System.out.println("--------------------------------------------------------------------------------------------"); - serverInfos.forEach(serverInfo -> { - String versionMessage = MessageFormat.format(" {0} {1} ({2,date,yyyy-MM-dd HH:mm:ssZ} // {3} // {4} // {5}) ", - StringUtils.rightPad(serverInfo.getServerIdentifier(), 12, " "), serverInfo.getServerVersion(), - serverInfo.getServerBuildDate(), serverInfo.getServerTimestamp(), serverInfo.getServerScmBranch(), - serverInfo.getServerBuildNumber()); - System.out.println(versionMessage); - LOGGER.info(versionMessage); - }); - System.out.println("--------------------------------------------------------------------------------------------"); - System.out.println("Server successfully started " + requiredBundles.size() + " bundles and " + requiredServicesFilters.size() - + " required " + "services in " + totalStartupTime + " ms"); - LOGGER.info("Server successfully started {} bundles and {} required services in {} ms", requiredBundles.size(), - requiredServicesFilters.size(), totalStartupTime); - startupMessageAlreadyDisplayed = true; - shutdownMessageAlreadyDisplayed = false; } }
