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 e2322f8ad03 Sort update list by Maven ComparableVersion (#17159)
e2322f8ad03 is described below

commit e2322f8ad032465a10c009df54431f92a6a8a669
Author: Federico Mariani <34543311+cro...@users.noreply.github.com>
AuthorDate: Sat Feb 15 07:49:17 2025 +0100

    Sort update list by Maven ComparableVersion (#17159)
---
 .../camel/dsl/jbang/core/commands/update/UpdateList.java  | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java
index 01433e93bd0..f412d5c32ff 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java
@@ -41,6 +41,7 @@ import 
org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
 import org.apache.camel.main.download.MavenDependencyDownloader;
 import org.apache.camel.tooling.maven.MavenArtifact;
 import org.apache.camel.util.json.Jsoner;
+import org.apache.maven.artifact.versioning.ComparableVersion;
 import picocli.CommandLine;
 
 /**
@@ -119,7 +120,9 @@ public class UpdateList extends CamelCommand {
             // Convert recipes versions into Rows for table and json 
visualization
             recipesVersions.plainCamelRecipesVersion()
                     .forEach(l -> rows
-                            .add(new Row(l[0], "Camel", "", "Migrates Apache 
Camel 4 application to Apache Camel " + l[0])));
+                            .add(new Row(
+                                    l[0], "Camel", "",
+                                    "Migrates Apache Camel 4 application to 
Apache Camel " + l[0])));
             recipesVersions.camelSpringBootRecipesVersion().forEach(l -> {
                 String[] runtimeVersion
                         = recipesVersions.sbVersions().stream().filter(v -> 
v[0].equals(l[0])).findFirst().orElseThrow();
@@ -143,7 +146,8 @@ public class UpdateList extends CamelCommand {
             });
         }
 
-        rows.sort(Comparator.comparing(Row::version));
+        rows.sort(Comparator.comparing(Row::version).reversed()
+                .thenComparing(Row::runtime));
 
         if (jsonOutput) {
             printer().println(
@@ -157,7 +161,7 @@ public class UpdateList extends CamelCommand {
         } else {
             printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, 
Arrays.asList(
                     new 
Column().header("VERSION").minWidth(30).dataAlign(HorizontalAlign.LEFT)
-                            .with(r -> r.version()),
+                            .with(r -> r.version().toString()),
                     new Column().header("RUNTIME")
                             .dataAlign(HorizontalAlign.LEFT).with(r -> 
r.runtime()),
                     new Column().header("RUNTIME VERSION")
@@ -255,7 +259,10 @@ public class UpdateList extends CamelCommand {
             List<String[]> qVersions) {
     }
 
-    record Row(String version, String runtime, String runtimeVersion, String 
description) {
+    record Row(ComparableVersion version, String runtime, String 
runtimeVersion, String description) {
+        public Row(String version, String runtime, String runtimeVersion, 
String description) {
+            this(new ComparableVersion(version), runtime, runtimeVersion, 
description);
+        }
     }
 
     record QuarkusUpdates(String version, String description) {

Reply via email to