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 });
                                 }

Reply via email to