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 995291113ef CAMEL-18425: camel-cli - Make regular Camel applications work with Camel CLI 995291113ef is described below commit 995291113efb27d8647a1ecb80c9a433e1972cf2 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Fri Aug 26 15:46:58 2022 +0200 CAMEL-18425: camel-cli - Make regular Camel applications work with Camel CLI --- core/camel-main/src/main/java/org/apache/camel/main/Main.java | 10 ++++++++++ .../test/java/org/apache/camel/main/MainGlobalOptionsTest.java | 3 ++- .../java/org/apache/camel/cli/connector/LocalCliConnector.java | 5 ++++- .../camel/dsl/jbang/core/commands/process/ListProcess.java | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/camel-main/src/main/java/org/apache/camel/main/Main.java b/core/camel-main/src/main/java/org/apache/camel/main/Main.java index d0520ca7fe9..b168efa27cf 100644 --- a/core/camel-main/src/main/java/org/apache/camel/main/Main.java +++ b/core/camel-main/src/main/java/org/apache/camel/main/Main.java @@ -31,6 +31,7 @@ public class Main extends MainCommandLineSupport { protected static Main instance; protected final MainRegistry registry = new MainRegistry(); + protected Class<?> mainClass; /** * Camel main application @@ -46,6 +47,7 @@ public class Main extends MainCommandLineSupport { * @param mainClass the main class */ public Main(Class<?> mainClass) { + this.mainClass = mainClass; configure().withBasePackageScan(mainClass.getPackageName()); } @@ -58,6 +60,7 @@ public class Main extends MainCommandLineSupport { @SafeVarargs public Main(Class<?> mainClass, Class<CamelConfiguration>... configurationClasses) { super(configurationClasses); + this.mainClass = mainClass; configure().withBasePackageScan(mainClass.getPackageName()); } @@ -124,6 +127,8 @@ public class Main extends MainCommandLineSupport { // Implementation methods // ------------------------------------------------------------------------- + + @Override protected void doInit() throws Exception { super.doInit(); @@ -168,6 +173,11 @@ public class Main extends MainCommandLineSupport { DefaultCamelContext answer = new DefaultCamelContext(false); answer.setLogJvmUptime(true); // we run in standalone mode so lets show JVM uptime answer.setRegistry(registry); + if (mainClass != null) { + answer.getGlobalOptions().put("CamelMainClass", mainClass.getName()); + } else { + answer.getGlobalOptions().put("CamelMainClass", this.getClass().getName()); + } return answer; } diff --git a/core/camel-main/src/test/java/org/apache/camel/main/MainGlobalOptionsTest.java b/core/camel-main/src/test/java/org/apache/camel/main/MainGlobalOptionsTest.java index b6de10622ad..624268eafc0 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/MainGlobalOptionsTest.java +++ b/core/camel-main/src/test/java/org/apache/camel/main/MainGlobalOptionsTest.java @@ -41,12 +41,13 @@ public class MainGlobalOptionsTest { CamelContext context = main.getCamelContext(); assertNotNull(context); - assertEquals(5, context.getGlobalOptions().size()); + assertEquals(6, context.getGlobalOptions().size()); assertEquals("123", context.getGlobalOptions().get("foo")); assertEquals("true", context.getGlobalOptions().get("bar")); assertEquals("Gauda", context.getGlobalOptions().get("cheese")); assertEquals("Wine", context.getGlobalOptions().get("drink")); assertEquals("999", context.getGlobalOptions().get("baz")); + assertEquals("org.apache.camel.main.Main", context.getGlobalOptions().get("CamelMainClass")); main.stop(); } diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java index c91d557d0a2..7a3ca9fc88c 100644 --- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java +++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java @@ -70,6 +70,9 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C // what platform are we running CliConnectorFactory ccf = camelContext.adapt(ExtendedCamelContext.class).getCliConnectorFactory(); mainClass = ccf.getRuntimeStartClass(); + if (mainClass == null) { + mainClass = camelContext.getGlobalOption("CamelMainClass"); + } platform = ccf.getRuntime(); if (platform == null) { // use camel context name to guess platform if not specified @@ -84,7 +87,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C platform = "Karaf"; } else if (sn.contains("cdi")) { platform = "CDI"; - } else if (sn.contains("kamelet") || camelContext.getName().equals("CamelJBang")) { + } else if (camelContext.getName().equals("CamelJBang")) { platform = "JBang"; } else { platform = "Camel"; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java index c1334a110b8..e52fac836f2 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java @@ -71,7 +71,7 @@ public class ListProcess extends ProcessBaseCommand { if (!rows.isEmpty()) { System.out.println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( new Column().header("PID").headerAlign(HorizontalAlign.CENTER).with(r -> r.pid), - new Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, OverflowBehaviour.ELLIPSIS) + new Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(40, OverflowBehaviour.ELLIPSIS) .with(r -> r.name), new Column().header("READY").dataAlign(HorizontalAlign.CENTER).with(r -> r.ready), new Column().header("STATUS").headerAlign(HorizontalAlign.CENTER)