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 247f6a9ad8e CAMEL-19272: camel-jbang - Show jbang version
247f6a9ad8e is described below
commit 247f6a9ad8e25dece9a4b58ff1a8ae49cbb835ab
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Apr 17 09:57:54 2023 +0200
CAMEL-19272: camel-jbang - Show jbang version
---
.../core/commands/process/CamelContextStatus.java | 13 ++++++++++++-
.../jbang/core/commands/process/CamelContextTop.java | 13 ++++++++++++-
.../dsl/jbang/core/commands/version/VersionGet.java | 6 ++++++
.../camel/dsl/jbang/core/common/VersionHelper.java | 20 ++++++++++++++++++++
4 files changed, 50 insertions(+), 2 deletions(-)
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 2adb6813819..f77031baca0 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
@@ -28,6 +28,7 @@ import com.github.freva.asciitable.OverflowBehaviour;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
import org.apache.camel.dsl.jbang.core.common.PidNameAgeCompletionCandidates;
import org.apache.camel.dsl.jbang.core.common.ProcessHelper;
+import org.apache.camel.dsl.jbang.core.common.VersionHelper;
import org.apache.camel.util.TimeUtils;
import org.apache.camel.util.json.JsonArray;
import org.apache.camel.util.json.JsonObject;
@@ -74,7 +75,8 @@ public class CamelContextStatus extends ProcessWatchCommand {
row.age = TimeUtils.printSince(row.uptime);
JsonObject runtime = (JsonObject) root.get("runtime");
row.platform = extractPlatform(ph, runtime);
- row.platformVersion = runtime != null ?
runtime.getString("platformVersion") : null;
+ row.platformVersion =
extractPlatformVersion(row.platform,
+ runtime != null ?
runtime.getString("platformVersion") : null);
row.state = context.getInteger("phase");
row.camelVersion = context.getString("version");
Map<String, ?> stats = context.getMap("statistics");
@@ -170,6 +172,15 @@ public class CamelContextStatus extends
ProcessWatchCommand {
return answer;
}
+ private String extractPlatformVersion(String platform, String
platformVersion) {
+ if (platformVersion == null) {
+ if ("JBang".equals(platform)) {
+ platformVersion = VersionHelper.getJBangVersion();
+ }
+ }
+ return platformVersion;
+ }
+
protected int sortRow(Row o1, Row o2) {
String s = sort;
int negate = 1;
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 c85d2705d9f..a4455265626 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
@@ -28,6 +28,7 @@ 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.dsl.jbang.core.common.ProcessHelper;
+import org.apache.camel.dsl.jbang.core.common.VersionHelper;
import org.apache.camel.util.TimeUtils;
import org.apache.camel.util.json.JsonObject;
import picocli.CommandLine;
@@ -86,7 +87,8 @@ public class CamelContextTop extends ProcessWatchCommand {
row.ago = TimeUtils.printSince(row.uptime);
JsonObject runtime = (JsonObject) root.get("runtime");
row.platform = extractPlatform(ph, runtime);
- row.platformVersion = runtime != null ?
runtime.getString("platformVersion") : null;
+ row.platformVersion =
extractPlatformVersion(row.platform,
+ runtime != null ?
runtime.getString("platformVersion") : null);
row.javaVersion = runtime != null ?
runtime.getString("javaVersion") : null;
row.state = context.getInteger("phase");
row.camelVersion = context.getString("version");
@@ -172,6 +174,15 @@ public class CamelContextTop extends ProcessWatchCommand {
return answer;
}
+ private String extractPlatformVersion(String platform, String
platformVersion) {
+ if (platformVersion == null) {
+ if ("JBang".equals(platform)) {
+ platformVersion = VersionHelper.getJBangVersion();
+ }
+ }
+ return platformVersion;
+ }
+
protected int sortRow(Row o1, Row o2) {
String s = sort;
int negate = 1;
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionGet.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionGet.java
index 35161297f54..1ab33c625d7 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionGet.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionGet.java
@@ -21,6 +21,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog;
import org.apache.camel.dsl.jbang.core.commands.CamelCommand;
import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
import org.apache.camel.dsl.jbang.core.common.CommandLineHelper;
+import org.apache.camel.dsl.jbang.core.common.VersionHelper;
import picocli.CommandLine;
@CommandLine.Command(name = "get", description = "Displays current Camel
version")
@@ -32,6 +33,11 @@ public class VersionGet extends CamelCommand {
@Override
public Integer doCall() throws Exception {
+ String jv = VersionHelper.getJBangVersion();
+ if (jv != null) {
+ System.out.println("JBang version: " + jv);
+ }
+
CamelCatalog catalog = new DefaultCamelCatalog();
String v = catalog.getCatalogVersion();
System.out.println("Camel JBang version: " + v);
diff --git
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/VersionHelper.java
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/VersionHelper.java
index 3c60bd603da..b2362cc445d 100644
---
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/VersionHelper.java
+++
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/VersionHelper.java
@@ -16,6 +16,10 @@
*/
package org.apache.camel.dsl.jbang.core.common;
+import java.io.File;
+import java.io.FileInputStream;
+
+import org.apache.camel.util.IOHelper;
import org.apache.camel.util.StringHelper;
public final class VersionHelper {
@@ -23,6 +27,22 @@ public final class VersionHelper {
private VersionHelper() {
}
+ public static String getJBangVersion() {
+ try {
+ File file = new File(System.getProperty("user.home"),
".jbang/cache/version.txt");
+ if (file.exists() && file.isFile()) {
+ FileInputStream fis = new FileInputStream(file);
+ String text = IOHelper.loadText(fis);
+ IOHelper.close(fis);
+ text = text.trim();
+ return text;
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ return null;
+ }
+
public static boolean isGE(String source, String target) {
return compare(source, target) >= 0;
}