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 ac327be7a31c6b709c697b40468bda543de3fe11 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Mon Mar 13 10:29:18 2023 +0100 CAMEL-19128: camel-jbang - Add version command --- .../jbang/core/commands/version/VersionList.java | 25 ++++++++++------------ .../camel/main/download/DependencyDownloader.java | 15 +++++++------ .../main/download/MavenDependencyDownloader.java | 20 ++++++++--------- 3 files changed, 29 insertions(+), 31 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 0c9a85f76de..1107cfbfc54 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 @@ -35,11 +35,6 @@ import picocli.CommandLine; @CommandLine.Command(name = "list", description = "Displays available Camel versions") public class VersionList extends CamelCommand { - private static final String MINIMUM_VERSION = "3.14.0"; - - // TODO: Filter for minimum camel version - // TODO: grab Q and SB runtime version - @CommandLine.Option(names = { "--sort" }, description = "Sort by version", defaultValue = "version") String sort; @@ -48,6 +43,10 @@ public class VersionList extends CamelCommand { description = "Runtime (spring-boot, quarkus, or camel-main)") String runtime; + @CommandLine.Option(names = { "--minimum-version" }, + description = "Minimum Camel version to avoid resolving too old releases", defaultValue = "3.14.0") + String minimumVersion = "3.14.0"; + @CommandLine.Option(names = { "--repo", "--repos" }, description = "Maven repository for downloading available versions") String repo; @@ -76,13 +75,13 @@ public class VersionList extends CamelCommand { String a = "camel-catalog"; if ("spring-boot".equalsIgnoreCase(runtime)) { g = "org.apache.camel.springboot"; - a = "camel-catalog-provider-springboot"; + a = "camel-spring-boot"; } else if ("quarkus".equalsIgnoreCase(runtime)) { g = "org.apache.camel.quarkus"; a = "camel-quarkus-catalog"; } - versions = downloader.resolveAvailableVersions(g, a, repo); + versions = downloader.resolveAvailableVersions(g, a, minimumVersion, repo); versions = versions.stream().filter(v -> acceptVersion(v[0])).collect(Collectors.toList()); main.stop(); @@ -103,12 +102,12 @@ public class VersionList extends CamelCommand { rows.sort(this::sortRow); System.out.println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( + new Column().header("CAMEL VERSION") + .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.coreVersion), 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), - new Column().header("CAMEL VERSION") - .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.coreVersion)))); + .headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.CENTER).with(r -> r.runtimeVersion)))); return 0; } @@ -122,9 +121,7 @@ public class VersionList extends CamelCommand { } switch (s) { case "version": - String v1 = o1.runtimeVersion != null ? o1.runtimeVersion : o1.coreVersion; - String v2 = o2.runtimeVersion != null ? o2.runtimeVersion : o2.coreVersion; - return VersionHelper.compare(v1, v2) * negate; + return VersionHelper.compare(o1.coreVersion, o2.coreVersion) * negate; default: return 0; } @@ -134,7 +131,7 @@ public class VersionList extends CamelCommand { if (version == null) { return false; } - return VersionHelper.isGE(version, MINIMUM_VERSION); + return VersionHelper.isGE(version, minimumVersion); } private static class Row { diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java index bb8f94572ab..2ab1eb1921e 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/DependencyDownloader.java @@ -125,13 +125,14 @@ public interface DependencyDownloader extends CamelContextAware, StaticService { /** * Resolves the available versions for the given maven artifact * - * @param groupId maven group id - * @param artifactId maven artifact id - * @param repo to use specific maven repository instead of maven central - * @return list of versions of the given artifact (0=camel-core version, 1=runtime version, such as - * spring-boot or quarkus) - */ - List<String[]> resolveAvailableVersions(String groupId, String artifactId, String repo); + * @param groupId maven group id + * @param artifactId maven artifact id + * @param minimumVersion optional minimum version to avoid resolving too old releases + * @param repo to use specific maven repository instead of maven central + * @return list of versions of the given artifact (0=camel-core version, 1=runtime version, such as + * spring-boot or quarkus) + */ + List<String[]> resolveAvailableVersions(String groupId, String artifactId, String minimumVersion, String repo); /** * Checks whether the dependency is already on the classpath diff --git a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java index 972d0a3fe12..04b27b6f309 100644 --- a/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java +++ b/dsl/camel-kamelet-main/src/main/java/org/apache/camel/main/download/MavenDependencyDownloader.java @@ -226,8 +226,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende private static final Logger LOG = LoggerFactory.getLogger(MavenDependencyDownloader.class); private static final String CP = System.getProperty("java.class.path"); - private static final String MINIMUM_CAMEL_VERSION = "3.14.0"; - private static final String MINIMUM_QUARKUS_VERSION = "2.13.0"; + private static final String MINIMUM_QUARKUS_VERSION = "2.0.0"; private static final RepositoryPolicy POLICY_DEFAULT = new RepositoryPolicy( true, RepositoryPolicy.UPDATE_POLICY_NEVER, RepositoryPolicy.CHECKSUM_POLICY_WARN); @@ -469,7 +468,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende } @Override - public List<String[]> resolveAvailableVersions(String groupId, String artifactId, String repo) { + public List<String[]> resolveAvailableVersions(String groupId, String artifactId, String minimumVersion, String repo) { String gav = groupId + ":" + artifactId; LOG.debug("DownloadAvailableVersions: {}", gav); @@ -481,7 +480,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende repository = extra.get(0); } } - List<String[]> versions = resolveAvailableVersions(groupId, artifactId, repository); + List<String[]> versions = resolveAvailableVersions(groupId, artifactId, minimumVersion, repository); return versions; } @@ -1324,7 +1323,7 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende } public List<String[]> resolveAvailableVersions( - String groupId, String artifactId, RemoteRepository repository) { + String groupId, String artifactId, String minimumVersion, RemoteRepository repository) { List<String[]> answer = new ArrayList<>(); @@ -1347,18 +1346,19 @@ public class MavenDependencyDownloader extends ServiceSupport implements Depende Element node = (Element) nl.item(i); String v = node.getTextContent(); if (v != null) { - if ("camel-catalog-provider-springboot".equals(artifactId)) { + if ("camel-spring-boot".equals(artifactId)) { String sbv = null; - if (VersionHelper.isGE(v, MINIMUM_CAMEL_VERSION)) { + if (VersionHelper.isGE(v, minimumVersion)) { sbv = resolveSpringBootVersionByCamelVersion(v, repository); } answer.add(new String[] { v, sbv }); } else if ("camel-quarkus-catalog".equals(artifactId)) { - String cv = null; if (VersionHelper.isGE(v, MINIMUM_QUARKUS_VERSION)) { - cv = resolveCamelVersionByQuarkusVersion(v, repository); + String cv = resolveCamelVersionByQuarkusVersion(v, repository); + if (cv != null && VersionHelper.isGE(cv, minimumVersion)) { + answer.add(new String[] { cv, v }); + } } - answer.add(new String[] { cv, v }); } else { answer.add(new String[] { v, null }); }