This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch camel-4.10.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-4.10.x by this push:
     new 428536ae78b CAMEL-21846: camel-jbang - Add support for running other 
JVMs such as Eclipse OpenJ9 that does not include JFR flight-recorder
428536ae78b is described below

commit 428536ae78b0538b960754b16e87e12648b0d206
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Mar 6 19:36:12 2025 +0100

    CAMEL-21846: camel-jbang - Add support for running other JVMs such as 
Eclipse OpenJ9 that does not include JFR flight-recorder
---
 .../org/apache/camel/main/BaseMainSupport.java     | 27 ++++++++++++++--------
 .../java/org/apache/camel/main/KameletMain.java    |  3 ++-
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git 
a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java 
b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
index 57ac46692d9..d287df5cc02 100644
--- a/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
+++ b/core/camel-main/src/main/java/org/apache/camel/main/BaseMainSupport.java
@@ -679,15 +679,24 @@ public abstract class BaseMainSupport extends BaseService 
{
                 || 
"java-flight-recorder".equals(mainConfigurationProperties.getStartupRecorder())
                 || mainConfigurationProperties.getStartupRecorder() == null) {
             // try to auto discover camel-jfr to use
-            StartupStepRecorder fr = ecc.getBootstrapFactoryFinder()
-                    .newInstance(StartupStepRecorder.FACTORY, 
StartupStepRecorder.class).orElse(null);
-            if (fr != null) {
-                LOG.debug("Discovered startup recorder: {} from classpath", 
fr);
-                
fr.setRecording(mainConfigurationProperties.isStartupRecorderRecording());
-                
fr.setStartupRecorderDuration(mainConfigurationProperties.getStartupRecorderDuration());
-                
fr.setRecordingProfile(mainConfigurationProperties.getStartupRecorderProfile());
-                
fr.setMaxDepth(mainConfigurationProperties.getStartupRecorderMaxDepth());
-                
camelContext.getCamelContextExtension().setStartupStepRecorder(fr);
+            try {
+                StartupStepRecorder fr = ecc.getBootstrapFactoryFinder()
+                        .newInstance(StartupStepRecorder.FACTORY, 
StartupStepRecorder.class).orElse(null);
+                if (fr != null) {
+                    LOG.debug("Discovered startup recorder: {} from 
classpath", fr);
+                    
fr.setRecording(mainConfigurationProperties.isStartupRecorderRecording());
+                    
fr.setStartupRecorderDuration(mainConfigurationProperties.getStartupRecorderDuration());
+                    
fr.setRecordingProfile(mainConfigurationProperties.getStartupRecorderProfile());
+                    
fr.setMaxDepth(mainConfigurationProperties.getStartupRecorderMaxDepth());
+                    
camelContext.getCamelContextExtension().setStartupStepRecorder(fr);
+                }
+            } catch (NoClassDefFoundError | Exception e) {
+                if (mainConfigurationProperties.getStartupRecorder() != null) {
+                    throw new IllegalArgumentException(
+                            "Flight recorder is not available in the JVM or 
camel-jfr is not available on the classpath due to: "
+                                                       + e.getMessage(),
+                            e);
+                }
             }
         }
     }
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 ff74cec1e4c..7cce0b7691d 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
@@ -859,7 +859,8 @@ public class KameletMain extends MainCommandLineSupport {
 
     protected String startupInfo() {
         StringBuilder sb = new StringBuilder();
-        sb.append("Using Java ").append(System.getProperty("java.version"));
+        sb.append("Using Java 
").append(System.getProperty("java.version")).append(" (")
+                .append(System.getProperty("java.vm.name")).append(")");
         sb.append(" with PID ").append(getPid());
         sb.append(". Started by ").append(System.getProperty("user.name"));
         sb.append(" in ").append(System.getProperty("user.dir"));

Reply via email to