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 35ec7b98171 CAMEL-22017: camel-jbang - Add management-port option to 
specify a dedicated port instead of default. (#18147)
35ec7b98171 is described below

commit 35ec7b981719b792fedfdfb2c9ad376634374f38
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu May 22 09:05:53 2025 +0200

    CAMEL-22017: camel-jbang - Add management-port option to specify a 
dedicated port instead of default. (#18147)
---
 .../apache/camel/dsl/jbang/core/commands/Export.java  |  2 ++
 .../dsl/jbang/core/commands/ExportBaseCommand.java    | 19 ++++++++++++++++++-
 .../dsl/jbang/core/commands/ExportCamelMain.java      |  5 +++++
 .../camel/dsl/jbang/core/commands/ExportQuarkus.java  |  6 +++++-
 .../dsl/jbang/core/commands/ExportSpringBoot.java     |  4 ++++
 .../org/apache/camel/dsl/jbang/core/commands/Run.java | 12 ++++++++++--
 .../camel/main/download/MainHttpServerFactory.java    |  2 +-
 .../camel/main/util/CamelJBangSettingsHelper.java     |  2 +-
 8 files changed, 46 insertions(+), 6 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index 597c6f3b514..9bd75723c11 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -168,6 +168,8 @@ public class Export extends ExportBaseCommand {
         cmd.dependencies = this.dependencies;
         cmd.runtime = this.runtime;
         cmd.name = this.name;
+        cmd.port = this.port;
+        cmd.managementPort = this.managementPort;
         cmd.gav = this.gav;
         cmd.mavenSettings = this.mavenSettings;
         cmd.mavenSettingsSecurity = this.mavenSettingsSecurity;
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index a32d6b4d44c..6d5207cf685 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -119,6 +119,10 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
                         description = "Embeds a local HTTP server on this 
port", defaultValue = "8080")
     int port;
 
+    @CommandLine.Option(names = { "--management-port" },
+                        description = "To use a dedicated port for HTTP 
management")
+    int managementPort = -1;
+
     @CommandLine.Option(names = { "--gav" }, description = "The Maven 
group:artifact:version")
     protected String gav;
 
@@ -341,6 +345,7 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
         run.files = files;
         run.name = name;
         run.port = port;
+        run.managementPort = managementPort;
         run.excludes = excludes;
         run.openapi = openapi;
         run.download = download;
@@ -950,7 +955,19 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
     protected static int httpServerPort(Path settings) {
         try {
             List<String> lines = RuntimeUtil.loadPropertiesLines(settings);
-            String port = lines.stream().filter(l -> 
l.startsWith("camel.jbang.platform-http.port="))
+            String port = lines.stream().filter(l -> 
l.startsWith("camel.server.port="))
+                    .map(s -> StringHelper.after(s, 
"=")).findFirst().orElse("-1");
+            return Integer.parseInt(port);
+        } catch (Exception e) {
+            // ignore
+        }
+        return -1;
+    }
+
+    protected static int httpManagementPort(Path settings) {
+        try {
+            List<String> lines = RuntimeUtil.loadPropertiesLines(settings);
+            String port = lines.stream().filter(l -> 
l.startsWith("camel.management.port="))
                     .map(s -> StringHelper.after(s, 
"=")).findFirst().orElse("-1");
             return Integer.parseInt(port);
         } catch (Exception e) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index 851274b6402..d448e94e4d2 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -130,6 +130,11 @@ class ExportCamelMain extends Export {
                             prop.put("camel.server.health-check-enabled", 
"true");
                         }
                     }
+                    port = httpManagementPort(settings);
+                    if (port != -1) {
+                        prop.put("camel.management.enabled", "true");
+                        prop.put("camel.management.port", port);
+                    }
                     return prop;
                 });
         // create main class
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index 9801a31bee0..c7b11b57262 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -110,9 +110,13 @@ class ExportQuarkus extends Export {
             if (port == -1) {
                 port = 8080;
             }
-            if (port != -1 && port != 8080) {
+            if (port != 8080) {
                 prop.put("quarkus.http.port", port);
             }
+            port = httpManagementPort(settings);
+            if (port != -1) {
+                prop.put("quarkus.management.port", port);
+            }
             return prop;
         });
         // copy docker files
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 3fce795c388..b105842234e 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -128,6 +128,10 @@ class ExportSpringBoot extends Export {
             if (port != -1 && port != 8080) {
                 prop.put("server.port", port);
             }
+            port = httpManagementPort(settings);
+            if (port != -1) {
+                prop.put("management.server.port", port);
+            }
             return prop;
         });
         if ("maven".equals(buildTool)) {
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 dd77c36cd02..4044403564e 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
@@ -291,6 +291,9 @@ public class Run extends CamelCommand {
     @Option(names = { "--port" }, description = "Embeds a local HTTP server on 
this port", defaultValue = "8080")
     int port;
 
+    @Option(names = { "--management-port" }, description = "To use a dedicated 
port for HTTP management")
+    int managementPort = -1;
+
     @Option(names = { "--console" }, defaultValue = "false",
             description = "Developer console at /q/dev on local HTTP server 
(port 8080 by default)")
     boolean console;
@@ -698,9 +701,12 @@ public class Run extends CamelCommand {
                 () -> maxSeconds > 0 ? String.valueOf(maxSeconds) : null);
         writeSetting(main, profileProperties, 
"camel.main.durationMaxIdleSeconds",
                 () -> maxIdleSeconds > 0 ? String.valueOf(maxIdleSeconds) : 
null);
-        writeSetting(main, profileProperties, "camel.jbang.platform-http.port",
+        writeSetting(main, profileProperties, "camel.server.port",
                 () -> port > 0 && port != 8080 ? String.valueOf(port) : null);
-        writeSetting(main, profileProperties, "camel.jbang.jfr", jfr || 
jfrProfile != null ? "jfr" : null); // TODO: "true" instead of "jfr" ?
+        if (managementPort != -1) {
+            writeSetting(main, profileProperties, "camel.management.port", () 
-> String.valueOf(managementPort));
+        }
+        writeSetting(main, profileProperties, "camel.jbang.jfr", jfr || 
jfrProfile != null ? "jfr" : null);
         writeSetting(main, profileProperties, "camel.jbang.jfr-profile", 
jfrProfile != null ? jfrProfile : null);
 
         writeSetting(main, profileProperties, "camel.jbang.kameletsVersion", 
kameletsVersion);
@@ -1032,6 +1038,7 @@ public class Run extends CamelCommand {
         eq.name = this.name;
         eq.verbose = this.verbose;
         eq.port = this.port;
+        eq.managementPort = this.managementPort;
         eq.gav = this.gav;
         if (eq.gav == null) {
             if (eq.name == null) {
@@ -1115,6 +1122,7 @@ public class Run extends CamelCommand {
         eq.name = this.name;
         eq.verbose = this.verbose;
         eq.port = this.port;
+        eq.managementPort = this.managementPort;
         eq.gav = this.gav;
         eq.repositories = this.repositories;
         if (eq.gav == null) {
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MainHttpServerFactory.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MainHttpServerFactory.java
index a596b08c03d..7f76d5722c0 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MainHttpServerFactory.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MainHttpServerFactory.java
@@ -31,7 +31,7 @@ public class MainHttpServerFactory {
         if (server == null) {
             // need to capture that we use a http-server
             HttpServerConfigurationProperties config = new 
HttpServerConfigurationProperties(null);
-            
CamelJBangSettingsHelper.writeSettingsIfNotExists("camel.jbang.platform-http.port",
+            
CamelJBangSettingsHelper.writeSettingsIfNotExists("camel.server.port",
                     String.valueOf(config.getPort()));
             if (!silent) {
                 try {
diff --git 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
index 725d84fda1b..c02869fb345 100644
--- 
a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
+++ 
b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/util/CamelJBangSettingsHelper.java
@@ -24,7 +24,7 @@ import java.nio.charset.StandardCharsets;
 import org.apache.camel.util.IOHelper;
 
 /**
- * When running we need to store
+ * When running we need to store some information
  */
 public final class CamelJBangSettingsHelper {
 

Reply via email to