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)

Reply via email to