This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch version-list in repository https://gitbox.apache.org/repos/asf/camel.git
commit d4b672cfb1428f2224b277c5b8d30f08658d7d88 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Mar 13 13:17:07 2023 +0100 CAMEL-19128: camel-jbang - Add version command --- .../jbang/core/commands/version/VersionList.java | 54 +++++++++++++++++++++- .../camel/dsl/jbang/core/common/VersionHelper.java | 8 ++++ 2 files changed, 60 insertions(+), 2 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java index 1107cfbfc54..159bdd8c4a2 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java @@ -50,6 +50,9 @@ public class VersionList extends CamelCommand { @CommandLine.Option(names = { "--repo", "--repos" }, description = "Maven repository for downloading available versions") String repo; + @CommandLine.Option(names = { "--lts" }, description = "Only show LTS supported releases") + boolean lts; + @CommandLine.Option(names = { "--fresh" }, description = "Make sure we use fresh (i.e. non-cached) resources") boolean fresh; @@ -107,7 +110,11 @@ public class VersionList extends CamelCommand { new Column().header("QUARKUS").visible("quarkus".equalsIgnoreCase(runtime)) .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.runtimeVersion), new Column().header("SPRING-BOOT").visible("spring-boot".equalsIgnoreCase(runtime)) - .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.runtimeVersion)))); + .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.runtimeVersion), + new Column().header("JDK") + .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.RIGHT).with(this::jdkVersion), + new Column().header("SUPPORT") + .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(this::lts)))); return 0; } @@ -127,11 +134,54 @@ public class VersionList extends CamelCommand { } } + private String jdkVersion(Row r) { + if (VersionHelper.isGE(r.coreVersion, "4.0")) { + return "17"; + } else if (VersionHelper.isGE(r.coreVersion, "3.15")) { + return "11, 17"; + } else if (VersionHelper.isGE(r.coreVersion, "3.15")) { + return "11, 17"; + } else if (VersionHelper.isGE(r.coreVersion, "3.0")) { + return "8, 11"; + } else { + return "8"; + } + } + + private String lts(Row r) { + return isLtsRelease(r.coreVersion) ? "LTS" : ""; + } + + private static boolean isLtsRelease(String version) { + if (VersionHelper.isBetween(version, "4.0.0", "4.1")) { + return true; + } else if (VersionHelper.isBetween(version, "3.20", "3.99")) { + return true; + } else if (VersionHelper.isBetween(version, "3.18", "3.19")) { + return true; + } else if (VersionHelper.isBetween(version, "3.14", "3.15")) { + return true; + } else if (VersionHelper.isBetween(version, "3.11", "3.12")) { + return true; + } else if (VersionHelper.isBetween(version, "3.11", "3.12")) { + return true; + } else if (VersionHelper.isBetween(version, "3.7", "3.8")) { + return true; + } else if (VersionHelper.isBetween(version, "3.4", "3.5")) { + return true; + } + return false; + } + private boolean acceptVersion(String version) { if (version == null) { return false; } - return VersionHelper.isGE(version, minimumVersion); + boolean accept = VersionHelper.isGE(version, minimumVersion); + if (accept && lts) { + accept = isLtsRelease(version); + } + return accept; } private static class Row { 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 97ae5734405..3c60bd603da 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 @@ -27,6 +27,14 @@ public final class VersionHelper { return compare(source, target) >= 0; } + public static boolean isLE(String source, String target) { + return compare(source, target) <= 0; + } + + public static boolean isBetween(String source, String inclusive, String exclusive) { + return compare(source, inclusive) >= 0 && compare(source, exclusive) < 0; + } + public static int compare(String source, String target) { if (source == null || target == null) { return 0;