You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/08/30 09:08:20 UTC
[camel] branch main updated: CAMEL-18406: camel-jbang - Camel CLI polish
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 6cf849c14aa CAMEL-18406: camel-jbang - Camel CLI polish
6cf849c14aa is described below
commit 6cf849c14aae626e62580fcc2fd82dfc6e4f4c3a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Aug 30 11:07:58 2022 +0200
CAMEL-18406: camel-jbang - Camel CLI polish
---
.../apache/camel/dsl/jbang/core/commands/Run.java | 19 +++++++-------
.../core/commands/process/CamelContextStatus.java | 7 +++--
.../core/commands/process/CamelContextTop.java | 7 +++--
.../core/commands/process/CamelRouteStatus.java | 30 +++++-----------------
.../jbang/core/commands/process/ListProcess.java | 5 +++-
.../core/commands/process/ProcessBaseCommand.java | 16 ++++++++++++
6 files changed, 46 insertions(+), 38 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 ce959f140db..da0b8f919d0 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
@@ -333,7 +333,6 @@ class Run extends CamelCommand {
});
main.setAppName("Apache Camel (JBang)");
- writeSetting(main, profileProperties, "camel.main.name", name);
writeSetting(main, profileProperties, "camel.main.sourceLocationEnabled", "true");
if (dev) {
writeSetting(main, profileProperties, "camel.main.routesReloadEnabled", "true");
@@ -404,7 +403,6 @@ class Run extends CamelCommand {
if (files != null) {
for (String file : files) {
-
if (file.startsWith("clipboard") && !(new File(file).exists())) {
file = loadFromClipboard(file);
} else if (skipFile(file)) {
@@ -464,6 +462,13 @@ class Run extends CamelCommand {
}
}
+ if ("CamelJBang".equals(name)) {
+ // no specific name was given so lets use the name from the first integration file
+ // remove scheme and keep only the name (no path or ext)
+ String s = StringHelper.after(file, ":");
+ name = FileUtil.onlyName(s);
+ }
+
js.add(file);
if (dev && file.startsWith("file:")) {
// we can only reload if file based
@@ -472,6 +477,8 @@ class Run extends CamelCommand {
}
}
+ writeSetting(main, profileProperties, "camel.main.name", name);
+
if (js.length() > 0) {
main.addInitialProperty("camel.main.routesIncludePattern", js.toString());
writeSettings("camel.main.routesIncludePattern", js.toString());
@@ -681,14 +688,6 @@ class Run extends CamelCommand {
return answer;
}
- private static String getPid() {
- try {
- return "" + ProcessHandle.current().pid();
- } catch (Throwable e) {
- return null;
- }
- }
-
private boolean knownFile(String file) throws Exception {
// always include kamelets
String ext = FileUtil.onlyExt(file, false);
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
index 523a346353c..60afaaa85bb 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
@@ -59,14 +59,17 @@ public class CamelContextStatus extends ProcessBaseCommand {
// there must be a status file for the running Camel integration
if (root != null) {
Row row = new Row();
- row.name = extractName(root, ph);
+ JsonObject context = (JsonObject) root.get("context");
+ row.name = context.getString("name");
+ if ("CamelJBang".equals(row.name)) {
+ row.name = extractName(root, ph);
+ }
row.pid = "" + ph.pid();
row.uptime = extractSince(ph);
row.ago = TimeUtils.printSince(row.uptime);
JsonObject runtime = (JsonObject) root.get("runtime");
row.platform = extractPlatform(ph, runtime);
row.platformVersion = runtime != null ? runtime.getString("version") : null;
- JsonObject context = (JsonObject) root.get("context");
row.state = context.getInteger("phase");
row.camelVersion = context.getString("version");
Map<String, ?> stats = context.getMap("statistics");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextTop.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextTop.java
index 6c708d6395e..638b45edc12 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextTop.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextTop.java
@@ -58,7 +58,11 @@ public class CamelContextTop extends ProcessBaseCommand {
if (root != null) {
Row row = new Row();
rows.add(row);
- row.name = extractName(root, ph);
+ JsonObject context = (JsonObject) root.get("context");
+ row.name = context.getString("name");
+ if ("CamelJBang".equals(row.name)) {
+ row.name = extractName(root, ph);
+ }
row.pid = "" + ph.pid();
row.uptime = extractSince(ph);
row.ago = TimeUtils.printSince(row.uptime);
@@ -66,7 +70,6 @@ public class CamelContextTop extends ProcessBaseCommand {
row.platform = extractPlatform(ph, runtime);
row.platformVersion = runtime != null ? runtime.getString("platformVersion") : null;
row.javaVersion = runtime != null ? runtime.getString("javaVersion") : null;
- JsonObject context = (JsonObject) root.get("context");
row.state = context.getInteger("phase");
row.camelVersion = context.getString("version");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
index 7ec40fd9353..6c5740a41fb 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
@@ -26,8 +26,6 @@ import com.github.freva.asciitable.Column;
import com.github.freva.asciitable.HorizontalAlign;
import com.github.freva.asciitable.OverflowBehaviour;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
-import org.apache.camel.util.FileUtil;
-import org.apache.camel.util.StringHelper;
import org.apache.camel.util.TimeUtils;
import org.apache.camel.util.json.JsonArray;
import org.apache.camel.util.json.JsonObject;
@@ -66,12 +64,15 @@ public class CamelRouteStatus extends ProcessBaseCommand {
.forEach(ph -> {
JsonObject root = loadStatus(ph.pid());
if (root != null) {
- String name = extractName(root, ph);
+ JsonObject context = (JsonObject) root.get("context");
JsonArray array = (JsonArray) root.get("routes");
for (int i = 0; i < array.size(); i++) {
JsonObject o = (JsonObject) array.get(i);
Row row = new Row();
- row.name = name;
+ row.name = context.getString("name");
+ if ("CamelJBang".equals(row.name)) {
+ row.name = extractName(root, ph);
+ }
row.pid = "" + ph.pid();
row.routeId = o.getString("routeId");
row.from = o.getString("from");
@@ -117,9 +118,8 @@ public class CamelRouteStatus extends ProcessBaseCommand {
boolean sources = rows.stream().noneMatch(r -> r.source == null);
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(sources ? "SOURCE" : "NAME").dataAlign(HorizontalAlign.LEFT)
- .maxWidth(30, OverflowBehaviour.CLIP)
- .with(r -> sourceLocLine(sources ? r.source : r.name)),
+ new Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, OverflowBehaviour.ELLIPSIS)
+ .with(r -> r.name),
new Column().header("ID").dataAlign(HorizontalAlign.LEFT).maxWidth(25, OverflowBehaviour.ELLIPSIS)
.with(r -> r.routeId),
new Column().header("FROM").dataAlign(HorizontalAlign.LEFT).maxWidth(40, OverflowBehaviour.ELLIPSIS)
@@ -139,22 +139,6 @@ public class CamelRouteStatus extends ProcessBaseCommand {
return 0;
}
- protected String sourceLocLine(String location) {
- while (StringHelper.countChar(location, ':') > 1) {
- location = location.substring(location.indexOf(':') + 1);
- }
- int pos = location.indexOf(':');
- // is the colon as scheme or line number
- String last = location.substring(pos + 1);
- boolean digits = last.matches("\\d+");
- if (!digits) {
- // it must be scheme so clip that
- location = location.substring(pos + 1);
- }
- location = FileUtil.stripPath(location);
- return location;
- }
-
protected int sortRow(Row o1, Row o2) {
switch (sort) {
case "pid":
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 25f60d0f76a..efff3deca51 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
@@ -52,11 +52,14 @@ public class ListProcess extends ProcessBaseCommand {
JsonObject root = loadStatus(ph.pid());
if (root != null) {
Row row = new Row();
- row.name = extractName(root, ph);
row.pid = "" + ph.pid();
row.uptime = extractSince(ph);
row.ago = TimeUtils.printSince(row.uptime);
JsonObject context = (JsonObject) root.get("context");
+ row.name = context.getString("name");
+ if ("CamelJBang".equals(row.name)) {
+ row.name = extractName(root, ph);
+ }
row.state = context.getInteger("phase");
JsonObject hc = (JsonObject) root.get("healthChecks");
row.ready = hc != null ? hc.getString("ready") + "/" + hc.getString("total") : null;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
index ff236c95a13..6d4c3a9dd1d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ProcessBaseCommand.java
@@ -226,4 +226,20 @@ abstract class ProcessBaseCommand extends CamelCommand {
return null;
}
+ String sourceLocLine(String location) {
+ while (StringHelper.countChar(location, ':') > 1) {
+ location = location.substring(location.indexOf(':') + 1);
+ }
+ int pos = location.indexOf(':');
+ // is the colon as scheme or line number
+ String last = location.substring(pos + 1);
+ boolean digits = last.matches("\\d+");
+ if (!digits) {
+ // it must be scheme so clip that
+ location = location.substring(pos + 1);
+ }
+ location = FileUtil.stripPath(location);
+ return location;
+ }
+
}