This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 5394d7db9ee camel-main - Show JVM uptime in start/shutdown log 5394d7db9ee is described below commit 5394d7db9ee890035d2196d7742351685eec0a5f Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Apr 29 09:27:21 2022 +0200 camel-main - Show JVM uptime in start/shutdown log --- .../camel/impl/engine/AbstractCamelContext.java | 44 ++++++++++++++++++++-- .../src/main/java/org/apache/camel/main/Main.java | 1 + .../java/org/apache/camel/main/KameletMain.java | 2 + 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index bcde8435f54..0134deb1549 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -18,6 +18,7 @@ package org.apache.camel.impl.engine; import java.io.IOException; import java.io.InputStream; +import java.lang.management.ManagementFactory; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -357,6 +358,7 @@ public abstract class AbstractCamelContext extends BaseService private long startDate; private SSLContextParameters sslContextParameters; private StartupSummaryLevel startupSummaryLevel = StartupSummaryLevel.Default; + private boolean logJvmUptime; /** * Creates the {@link CamelContext} using {@link org.apache.camel.support.DefaultRegistry} as registry. @@ -3183,9 +3185,17 @@ public abstract class AbstractCamelContext extends BaseService String start = TimeUtils.printDuration(taken); String init = TimeUtils.printDuration(initTaken); String built = TimeUtils.printDuration(buildTaken); - LOG.info("Apache Camel {} ({}) started in {} (build:{} init:{} start:{})", getVersion(), getName(), total, built, - init, - start); + String jvm = logJvmUptime ? getJvmUptime() : null; + if (jvm != null) { + LOG.info("Apache Camel {} ({}) started in {} (build:{} init:{} start:{} JVM-uptime:{})", getVersion(), + getName(), total, built, + init, start, jvm); + } else { + LOG.info("Apache Camel {} ({}) started in {} (build:{} init:{} start:{})", getVersion(), getName(), total, + built, + init, + start); + } } } @@ -3506,7 +3516,13 @@ public abstract class AbstractCamelContext extends BaseService if (startupSummaryLevel != StartupSummaryLevel.Off) { if (LOG.isInfoEnabled()) { String taken = TimeUtils.printDuration(stopWatch.taken()); - LOG.info("Apache Camel {} ({}) shutdown in {} (uptime:{})", getVersion(), getName(), taken, getUptime()); + String jvm = logJvmUptime ? getJvmUptime() : null; + if (jvm != null) { + LOG.info("Apache Camel {} ({}) shutdown in {} (uptime:{} JVM-uptime:{})", getVersion(), getName(), taken, + getUptime(), jvm); + } else { + LOG.info("Apache Camel {} ({}) shutdown in {} (uptime:{})", getVersion(), getName(), taken, getUptime()); + } } } @@ -4219,6 +4235,15 @@ public abstract class AbstractCamelContext extends BaseService } } + private static String getJvmUptime() { + try { + return TimeUtils.printDuration(ManagementFactory.getRuntimeMXBean().getUptime()); + } catch (Exception e) { + // ignore + } + return null; + } + @Override public InflightRepository getInflightRepository() { if (inflightRepository == null) { @@ -5144,6 +5169,17 @@ public abstract class AbstractCamelContext extends BaseService this.beanProcessorFactory = doAddService(beanProcessorFactory); } + public boolean isLogJvmUptime() { + return logJvmUptime; + } + + /** + * Whether to log the JVM uptime on startup and shutdown + */ + public void setLogJvmUptime(boolean logJvmUptime) { + this.logJvmUptime = logJvmUptime; + } + protected Map<String, RouteService> getRouteServices() { return routeServices; } diff --git a/core/camel-main/src/main/java/org/apache/camel/main/Main.java b/core/camel-main/src/main/java/org/apache/camel/main/Main.java index e42779a3fbd..d0520ca7fe9 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/Main.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/Main.java @@ -166,6 +166,7 @@ public class Main extends MainCommandLineSupport { protected CamelContext createCamelContext() { // do not build/init camel context yet DefaultCamelContext answer = new DefaultCamelContext(false); + answer.setLogJvmUptime(true); // we run in standalone mode so lets show JVM uptime answer.setRegistry(registry); return answer; } diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java index 341e0b460d2..94b1afe0c03 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/KameletMain.java @@ -28,6 +28,7 @@ import org.apache.camel.RuntimeCamelException; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.spi.Registry; import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder; +import org.apache.camel.util.TimeUtils; /** * A Main class for booting up Camel with Kamelet in standalone mode. @@ -170,6 +171,7 @@ public class KameletMain extends MainCommandLineSupport { protected CamelContext createCamelContext() { // do not build/init camel context yet DefaultCamelContext answer = new DefaultCamelContext(false); + answer.setLogJvmUptime(true); // register download listener if (downloadListener != null) {