You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/01/05 13:08:19 UTC

[camel] branch main updated (8b032ad -> 397e6c3)

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

acosentino pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 8b032ad  Regen for commit a712344a3f87ab7038e0a1f8e69da870a16fdc81
     new 6c09d64  CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing
     new 397e6c3  CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/camel/dsl/jbang/core/commands/Run.java   | 17 +++++++++++++++++
 .../camel-jbang-main/examples/earthquake.yaml           |  9 ++++-----
 dsl/camel-kamelet-main/pom.xml                          |  4 ++++
 .../main/java/org/apache/camel/main/KameletMain.java    | 13 +++++++++++++
 4 files changed, 38 insertions(+), 5 deletions(-)

[camel] 01/02: CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6c09d64de7da33826d524ac4b6e5c5f9a8929903
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Jan 5 11:41:24 2022 +0100

    CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing
---
 .../main/java/org/apache/camel/dsl/jbang/core/commands/Run.java  | 9 +++++++++
 dsl/camel-jbang/camel-jbang-main/examples/earthquake.yaml        | 9 ++++-----
 dsl/camel-kamelet-main/pom.xml                                   | 4 ++++
 3 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index 655f73d..ae32a24 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -78,6 +78,10 @@ class Run implements Callable<Integer> {
             description = "Whether to create a temporary file lock, which upon deleting triggers this process to terminate")
     private boolean fileLock = true;
 
+    @Option(names = { "--jfr" },
+            description = "Whether to start the jfr recorder or not")
+    private boolean jfr;
+
     @Option(names = { "--local-kamelet-dir" },
             description = "Local directory to load Kamelets from (take precedence))")
     private String localKameletDir;
@@ -142,6 +146,11 @@ class Run implements Callable<Integer> {
             main.addInitialProperty("camel.jbang.platform-http.port", String.valueOf(port));
         }
 
+        if (jfr) {
+            main.addInitialProperty("camel.main.startup-recorder", "java-flight-recorder");
+            main.addInitialProperty("camel.main.startupRecorderRecording", "true");
+        }
+
         if (fileLock) {
             lockFile = createLockFile();
             if (!lockFile.exists()) {
diff --git a/dsl/camel-jbang/camel-jbang-main/examples/earthquake.yaml b/dsl/camel-jbang/camel-jbang-main/examples/earthquake.yaml
index 5e83825..71c196a 100644
--- a/dsl/camel-jbang/camel-jbang-main/examples/earthquake.yaml
+++ b/dsl/camel-jbang/camel-jbang-main/examples/earthquake.yaml
@@ -15,8 +15,7 @@
 ## limitations under the License.
 ## ---------------------------------------------------------------------------
 - route:
-    from: "kamelet:earthquake-source"
-    steps:
-      - unmarshal:
-          json: {}
-      - log: "Earthquake with magnitude ${body[properties][mag]} at ${body[properties][place]}"
+    from:
+      uri: "kamelet:earthquake-source"
+      steps:
+        - log: "${body}"
diff --git a/dsl/camel-kamelet-main/pom.xml b/dsl/camel-kamelet-main/pom.xml
index f70c5cd..fe412cc 100644
--- a/dsl/camel-kamelet-main/pom.xml
+++ b/dsl/camel-kamelet-main/pom.xml
@@ -60,6 +60,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
+            <artifactId>camel-jfr</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
             <artifactId>camel-grape</artifactId>
         </dependency>
         <dependency>

[camel] 02/02: CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 397e6c35d88fff1bcdd8d1a43c3c606e070599b2
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jan 5 13:40:30 2022 +0100

    CAMEL-17428: camel-jbang - Add -flight-recorder to startup JFR capturing
---
 .../java/org/apache/camel/dsl/jbang/core/commands/Run.java | 14 +++++++++++---
 .../src/main/java/org/apache/camel/main/KameletMain.java   | 13 +++++++++++++
 2 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index ae32a24..b63c431 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -79,9 +79,13 @@ class Run implements Callable<Integer> {
     private boolean fileLock = true;
 
     @Option(names = { "--jfr" },
-            description = "Whether to start the jfr recorder or not")
+            description = "Enables Java Flight Recorder saving recording to disk on exit")
     private boolean jfr;
 
+    @Option(names = { "--jfr-profile" },
+            description = "Java Flight Recorder profile to use (such as default or profile)")
+    private String jfrProfile;
+
     @Option(names = { "--local-kamelet-dir" },
             description = "Local directory to load Kamelets from (take precedence))")
     private String localKameletDir;
@@ -147,8 +151,12 @@ class Run implements Callable<Integer> {
         }
 
         if (jfr) {
-            main.addInitialProperty("camel.main.startup-recorder", "java-flight-recorder");
-            main.addInitialProperty("camel.main.startupRecorderRecording", "true");
+            main.addInitialProperty("camel.jbang.jfr", "jfr");
+        }
+        if (jfrProfile != null) {
+            // turn on jfr if a profile was specified
+            main.addInitialProperty("camel.jbang.jfr", "jfr");
+            main.addInitialProperty("camel.jbang.jfr-profile", jfrProfile);
         }
 
         if (fileLock) {
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 9ade32a..f20f4b5 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
@@ -25,6 +25,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Registry;
+import org.apache.camel.startup.jfr.FlightRecorderStartupStepRecorder;
 
 /**
  * A Main class for booting up Camel with Kamelet in standalone mode.
@@ -167,6 +168,18 @@ public class KameletMain extends MainCommandLineSupport {
             VertxHttpServer.registerServer(answer, Integer.parseInt(port.toString()));
         }
 
+        // need to setup jfr early
+        Object jfr = getInitialProperties().get("camel.jbang.jfr");
+        Object jfrProfile = getInitialProperties().get("camel.jbang.jfr-profile");
+        if ("jfr".equals(jfr) || jfrProfile != null) {
+            FlightRecorderStartupStepRecorder recorder = new FlightRecorderStartupStepRecorder();
+            recorder.setRecording(true);
+            if (jfrProfile != null) {
+                recorder.setRecordingProfile(jfrProfile.toString());
+            }
+            answer.setStartupStepRecorder(recorder);
+        }
+
         if (download) {
             try {
                 // use resolver that can auto downloaded