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