From 97dafcd1aa2548a85e99ac50148b1dca80e2b1a7 Mon Sep 17 00:00:00 2001 From: Croway Date: Mon, 30 Mar 2026 11:55:51 +0200 Subject: [PATCH 1/2] Fix camel-jbang logging and jbang java version option Two fixes for the Camel JBang IT test failures: 1. Add missing file appender to log4j2-no-color.properties. The no-color logging config lacked the file appender that log4j2.properties has. Since CAMEL-23226 changed loggingColor to auto-detect based on environment (EnvironmentHelper.isColorEnabled()), non-TTY environments like Docker containers now use the no-color config, which wrote logs only to console and never to ~/.camel/.log. This caused camel log to always return empty output, failing 38+ IT tests with timeouts. 2. Fix jbang --java-version option: use --java instead. The --java-version flag is not recognized by jbang. The correct flag to set the Java version is --java. This caused failures when running with --camel-version pointing to older Camel versions. --- .../apache/camel/dsl/jbang/core/commands/Run.java | 2 +- .../src/main/resources/log4j2-no-color.properties | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 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 04b96872916e5..e006634f05f38 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 @@ -1490,7 +1490,7 @@ protected int runCamelVersion(KameletMain main) throws Exception { } if (javaVersion != null) { - jbangArgs.add("--java-version=" + javaVersion); + jbangArgs.add("--java=" + javaVersion); } if (repositories != null) { jbangArgs.add("--repos=" + repositories); diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-no-color.properties b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-no-color.properties index 6dcdec667d346..6d069aaf0abcf 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-no-color.properties +++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/log4j2-no-color.properties @@ -22,6 +22,17 @@ appender.stdout.layout.type = PatternLayout # logging style that is similar to spring boot (no color) appender.stdout.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p %pid --- [%15.15t] %-35.35c : %m%n +# file logger +appender.file.type = File +appender.file.name = file +appender.file.fileName = ${sys:user.home}${sys:file.separator}.camel${sys:file.separator}${sys:pid}.log +appender.file.createOnDemand = true +appender.file.append = false +appender.file.layout.type = PatternLayout +# logging style that is similar to spring boot (no color) +appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} %5p %pid --- [%15.15t] %-35.35c : %m%n + +# log to console and file +rootLogger = INFO,out,file rootLogger.level = INFO -rootLogger.appenderRef.out.ref = out From 736228037055edceb4fe6acc21d5a05d37b3b3e3 Mon Sep 17 00:00:00 2001 From: Croway Date: Mon, 30 Mar 2026 14:14:40 +0200 Subject: [PATCH 2/2] Add --java alias for --java-version option for consistency with jbang Keep --java-version for backward compatibility and add --java as an alias in Run, ExportBaseCommand, and KubernetesRun commands. Strip --java/--java-version from cmds in runCamelVersion() to avoid passing an unrecognized option to older Camel versions that only know --java-version. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../camel/dsl/jbang/core/commands/ExportBaseCommand.java | 4 +++- .../java/org/apache/camel/dsl/jbang/core/commands/Run.java | 7 ++++++- .../dsl/jbang/core/commands/kubernetes/KubernetesRun.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) 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 24ccf486aa70c..1f6873c74ba96 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 @@ -164,7 +164,9 @@ public abstract class ExportBaseCommand extends CamelCommand { defaultValue = "CamelApplication") protected String mainClassname = "CamelApplication"; - @CommandLine.Option(names = { "--java-version" }, completionCandidates = JavaVersionCompletionCandidates.class, + @CommandLine.Option(names = { + "--java-version", + "--java" }, completionCandidates = JavaVersionCompletionCandidates.class, description = "Java version (${COMPLETION-CANDIDATES})", defaultValue = "21") protected String javaVersion = "21"; 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 e006634f05f38..eebb0271e9fb9 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 @@ -178,7 +178,9 @@ public class Run extends CamelCommand { @Option(names = { "--empty" }, defaultValue = "false", description = "Run an empty Camel without loading source files") public boolean empty; - @CommandLine.Option(names = { "--java-version" }, completionCandidates = JavaVersionCompletionCandidates.class, + @CommandLine.Option(names = { + "--java-version", + "--java" }, completionCandidates = JavaVersionCompletionCandidates.class, description = "Java version (${COMPLETION-CANDIDATES})", defaultValue = "21") protected String javaVersion = "21"; @@ -1491,6 +1493,9 @@ protected int runCamelVersion(KameletMain main) throws Exception { if (javaVersion != null) { jbangArgs.add("--java=" + javaVersion); + // remove from cmds so it is not passed to the older Camel version + // which may not recognize the --java alias + cmds.removeIf(arg -> arg.startsWith("--java-version") || arg.startsWith("--java=")); } if (repositories != null) { jbangArgs.add("--repos=" + repositories); diff --git a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java index afa5a27ccaf5f..2717ec92b6837 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java +++ b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java @@ -231,7 +231,7 @@ public class KubernetesRun extends KubernetesBaseCommand { description = "Whether downloading JARs from ASF Maven Snapshot repository is enabled") boolean mavenApacheSnapshotEnabled = true; - @CommandLine.Option(names = { "--java-version" }, description = "Java version", defaultValue = "21") + @CommandLine.Option(names = { "--java-version", "--java" }, description = "Java version", defaultValue = "21") String javaVersion = "21"; @CommandLine.Option(names = { "--camel-version" },