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 a855657cf5d9 camel-jbang - Fix version list
a855657cf5d9 is described below

commit a855657cf5d9043c7756cbdf45e6dd01c6fdb081
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Feb 2 11:00:30 2026 +0100

    camel-jbang - Fix version list
---
 .../camel/catalog/releases/camel-releases.json     |   2 +-
 .../org/apache/camel/catalog/CamelCatalogTest.java |   6 +
 .../jbang/core/commands/version/VersionList.java   | 132 ++++++++++-----------
 3 files changed, 73 insertions(+), 67 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
index 388b5090454e..e8659013e5ca 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-releases.json
@@ -1672,7 +1672,7 @@
     },
     {
         "version": "4.17.0",
-        "date": "2025-11-05",
+        "date": "2026-01-12",
         "jdk": "17,21"
     },
     {
diff --git 
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
 
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index d7ea80f3c146..8a1a207b84b6 100644
--- 
a/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ 
b/catalog/camel-catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -1641,6 +1641,12 @@ public class CamelCatalogTest {
         Assertions.assertEquals("2023-01-07", rel.getDate());
         Assertions.assertEquals("2023-12-21", rel.getEol());
         Assertions.assertEquals("lts", rel.getKind());
+
+        rel = list.get(0);
+        Assertions.assertEquals("1.0.0", rel.getVersion());
+        Assertions.assertEquals("2007-07-02", rel.getDate());
+        Assertions.assertEquals("legacy", rel.getKind());
+        Assertions.assertEquals("1.5", rel.getJdk());
     }
 
     @Test
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 e5a60eee2523..813b2dbd1b89 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
@@ -377,83 +377,83 @@ public class VersionList extends CamelCommand {
     }
 
     private void filterVersions(List<String[]> versions, List<Row> rows, 
List<ReleaseModel> releases) throws Exception {
-        if (versions.isEmpty()) {
-            for (ReleaseModel rm : releases) {
-                boolean accept = true;
-                if (fromVersion != null || toVersion != null) {
-                    if (fromVersion == null) {
-                        fromVersion = "1.0";
-                    }
-                    if (toVersion == null) {
-                        toVersion = "99.0";
-                    }
-                    accept = VersionHelper.isBetween(rm.getVersion(), 
fromVersion, toVersion);
+        for (String[] v : versions) {
+            Row row = new Row();
+            row.coreVersion = v[0];
+            row.runtimeVersion = v[1];
+
+            // enrich with details from catalog (if we can find any)
+            String catalogVersion = RuntimeType.quarkus == runtime ? v[1] : 
v[0];
+            ReleaseModel rm = releases.stream().filter(r -> 
catalogVersion.equals(r.getVersion())).findFirst().orElse(null);
+            if (download && rm == null) {
+                // unknown release but if it's an Apache Camel release we can 
grab from online
+                int dots = StringHelper.countChar(v[0], '.');
+                if (dots == 2) {
+                    rm = onlineRelease(runtime, row.coreVersion);
                 }
-                if (accept && fromDate != null || toDate != null) {
-                    if (fromDate == null) {
-                        fromDate = "2000-01-01";
-                    }
-                    if (toDate == null) {
-                        toDate = "9999-01-01";
-                    }
-                    accept = rm.getDate() == null || 
isDateBetween(rm.getDate(), fromDate, toDate);
+            }
+            if (rm != null) {
+                row.releaseDate = rm.getDate();
+                row.daysSince = daysSince(rm.getDate());
+                row.eolDate = rm.getEol();
+                row.jdks = rm.getJdk();
+                row.kind = rm.getKind();
+            }
+            boolean accept = true;
+            if (fromVersion != null || toVersion != null) {
+                if (fromVersion == null) {
+                    fromVersion = "1.0";
                 }
-                if (accept) {
-                    Row row = new Row();
-                    rows.add(row);
-                    row.coreVersion = rm.getVersion();
-                    row.releaseDate = rm.getDate();
-                    row.daysSince = daysSince(rm.getDate());
-                    row.eolDate = rm.getEol();
-                    row.jdks = rm.getJdk();
-                    row.kind = rm.getKind();
+                if (toVersion == null) {
+                    toVersion = "99.0";
                 }
+                accept = VersionHelper.isBetween(row.coreVersion, fromVersion, 
toVersion);
             }
-        } else {
-            for (String[] v : versions) {
-                Row row = new Row();
-                row.coreVersion = v[0];
-                row.runtimeVersion = v[1];
-
-                // enrich with details from catalog (if we can find any)
-                String catalogVersion = RuntimeType.quarkus == runtime ? v[1] 
: v[0];
-                ReleaseModel rm = releases.stream().filter(r -> 
catalogVersion.equals(r.getVersion())).findFirst().orElse(null);
-                if (download && rm == null) {
-                    // unknown release but if it's an Apache Camel release we 
can grab from online
-                    int dots = StringHelper.countChar(v[0], '.');
-                    if (dots == 2) {
-                        rm = onlineRelease(runtime, row.coreVersion);
-                    }
+            if (accept && fromDate != null || toDate != null) {
+                if (fromDate == null) {
+                    fromDate = "2000-01-01";
+                }
+                if (toDate == null) {
+                    toDate = "9999-01-01";
                 }
-                if (rm != null) {
+                accept = row.releaseDate == null || 
isDateBetween(row.releaseDate, fromDate, toDate);
+            }
+            if (accept) {
+                rows.add(row);
+            }
+        }
+        for (ReleaseModel rm : releases) {
+            boolean accept = true;
+            if (fromVersion != null || toVersion != null) {
+                if (fromVersion == null) {
+                    fromVersion = "1.0";
+                }
+                if (toVersion == null) {
+                    toVersion = "99.0";
+                }
+                accept = VersionHelper.isBetween(rm.getVersion(), fromVersion, 
toVersion);
+            }
+            if (accept && fromDate != null || toDate != null) {
+                if (fromDate == null) {
+                    fromDate = "2000-01-01";
+                }
+                if (toDate == null) {
+                    toDate = "9999-01-01";
+                }
+                accept = rm.getDate() == null || isDateBetween(rm.getDate(), 
fromDate, toDate);
+            }
+            if (accept) {
+                // only add if this is a new fresh release
+                if (rows.stream().filter(r -> 
r.coreVersion.equals(rm.getVersion())).findAny().isEmpty()) {
+                    Row row = new Row();
+                    rows.add(row);
+                    row.coreVersion = rm.getVersion();
                     row.releaseDate = rm.getDate();
                     row.daysSince = daysSince(rm.getDate());
                     row.eolDate = rm.getEol();
                     row.jdks = rm.getJdk();
                     row.kind = rm.getKind();
                 }
-                boolean accept = true;
-                if (fromVersion != null || toVersion != null) {
-                    if (fromVersion == null) {
-                        fromVersion = "1.0";
-                    }
-                    if (toVersion == null) {
-                        toVersion = "99.0";
-                    }
-                    accept = VersionHelper.isBetween(row.coreVersion, 
fromVersion, toVersion);
-                }
-                if (accept && fromDate != null || toDate != null) {
-                    if (fromDate == null) {
-                        fromDate = "2000-01-01";
-                    }
-                    if (toDate == null) {
-                        toDate = "9999-01-01";
-                    }
-                    accept = row.releaseDate == null || 
isDateBetween(row.releaseDate, fromDate, toDate);
-                }
-                if (accept) {
-                    rows.add(row);
-                }
             }
         }
     }

Reply via email to