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 <[email protected]>
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 {