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 246c0d9bd60 CAMEL-21459: camel-jbang - Version list to include old 
releases
246c0d9bd60 is described below

commit 246c0d9bd6044733d0e307de334584492e4845b9
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Nov 16 10:52:12 2024 +0100

    CAMEL-21459: camel-jbang - Version list to include old releases
---
 .../catalog/releases/camel-quarkus-releases.json   |   5 +
 .../camel/catalog/releases/camel-releases.json     | 747 +++++++++++++++++++--
 .../camel/catalog/releases/old-camel-releases.json | 620 +++++++++++++++++
 .../jbang/core/commands/version/VersionList.java   | 204 ++++--
 .../maven/packaging/UpdateCamelReleasesMojo.java   |  15 +
 5 files changed, 1473 insertions(+), 118 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
index 999c79ff7e7..cdfab089aa4 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/releases/camel-quarkus-releases.json
@@ -102,6 +102,11 @@
         "date": "2021-09-01",
         "jdk": "11"
     },
+    {
+        "version": "2.2.1",
+        "date": "2022-01-14",
+        "jdk": "11"
+    },
     {
         "version": "2.3.0",
         "date": "2021-10-08",
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 fe50e2675d5..7fd6bb6d0e0 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
@@ -1,261 +1,920 @@
 [
+    {
+        "version": "1.0.0",
+        "date": "2007-07-02",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.1.0",
+        "date": "2007-08-07",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.2.0",
+        "date": "2007-10-16",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.3.0",
+        "date": "2008-04-07",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.4.0",
+        "date": "2008-07-22",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.5.0",
+        "date": "2008-10-31",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.6.0",
+        "date": "2009-02-17",
+        "eol": "2010-12-31",
+        "kind": "lts",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.6.1",
+        "date": "2009-05-14",
+        "eol": "2010-12-31",
+        "kind": "lts",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.6.2",
+        "date": "2009-11-18",
+        "eol": "2010-12-31",
+        "kind": "lts",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.6.3",
+        "date": "2010-05-31",
+        "eol": "2010-12-31",
+        "kind": "lts",
+        "jdk": "1.5"
+    },
+    {
+        "version": "1.6.4",
+        "date": "2010-12-12",
+        "eol": "2010-12-31",
+        "kind": "lts",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.0.0",
+        "date": "2009-08-18",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.1.0",
+        "date": "2009-12-01",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.2.0",
+        "date": "2010-02-11",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.3.0",
+        "date": "2010-05-22",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.4.0",
+        "date": "2010-07-12",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.5.0",
+        "date": "2010-10-25",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.6.0",
+        "date": "2011-01-24",
+        "kind": "legacy",
+        "jdk": "1.5"
+    },
+    {
+        "version": "2.7.0",
+        "date": "2011-03-18",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.7.1",
+        "date": "2011-04-08",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.7.2",
+        "date": "2011-05-31",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.7.3",
+        "date": "2011-07-13",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.7.4",
+        "date": "2011-10-13",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.7.5",
+        "date": "2012-01-11",
+        "eol": "2012-01-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.0",
+        "date": "2011-07-18",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.1",
+        "date": "2011-09-06",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.2",
+        "date": "2011-10-19",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.3",
+        "date": "2011-11-17",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.4",
+        "date": "2012-01-25",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.5",
+        "date": "2012-04-23",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.8.6",
+        "date": "2012-07-05",
+        "eol": "2012-07-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.0",
+        "date": "2011-12-28",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.1",
+        "date": "2012-03-01",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.2",
+        "date": "2012-04-12",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.3",
+        "date": "2012-08-24",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.4",
+        "date": "2012-10-10",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.5",
+        "date": "2012-11-29",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.6",
+        "date": "2013-03-05",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.7",
+        "date": "2013-04-24",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.9.8",
+        "date": "2013-09-17",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.0",
+        "date": "2012-06-27",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.1",
+        "date": "2012-08-24",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.2",
+        "date": "2012-10-11",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.3",
+        "date": "2012-12-03",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.4",
+        "date": "2013-02-22",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.5",
+        "date": "2013-06-22",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.6",
+        "date": "2013-07-03",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.10.7",
+        "date": "2013-09-15",
+        "eol": "2013-09-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.11.0",
+        "date": "2013-04-17",
+        "eol": "2014-02-28",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.11.1",
+        "date": "2013-07-10",
+        "eol": "2014-02-28",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.11.2",
+        "date": "2013-09-19",
+        "eol": "2014-02-28",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.11.3",
+        "date": "2014-01-07",
+        "eol": "2014-02-28",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.11.4",
+        "date": "2014-02-15",
+        "eol": "2014-02-28",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.0",
+        "date": "2013-09-04",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.1",
+        "date": "2013-09-18",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.2",
+        "date": "2013-11-23",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.3",
+        "date": "2014-02-21",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.4",
+        "date": "2014-07-01",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.12.5",
+        "date": "2014-10-24",
+        "eol": "2014-10-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.13.0",
+        "date": "2014-03-17",
+        "eol": "2015-03-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.13.1",
+        "date": "2014-05-07",
+        "eol": "2015-03-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.13.2",
+        "date": "2014-07-01",
+        "eol": "2015-03-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.13.3",
+        "date": "2014-10-28",
+        "eol": "2015-03-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.13.4",
+        "date": "2015-03-05",
+        "eol": "2015-03-31",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.14.0",
+        "date": "2014-09-15",
+        "eol": "2015-11-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.14.1",
+        "date": "2014-12-10",
+        "eol": "2015-11-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.14.2",
+        "date": "2015-03-03",
+        "eol": "2015-11-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.14.3",
+        "date": "2015-05-29",
+        "eol": "2015-11-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.14.4",
+        "date": "2015-11-06",
+        "eol": "2015-11-30",
+        "kind": "lts",
+        "jdk": "1.6"
+    },
+    {
+        "version": "2.15.0",
+        "date": "2015-03-07",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.1",
+        "date": "2015-03-28",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.2",
+        "date": "2015-04-29",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.3",
+        "date": "2015-08-15",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.4",
+        "date": "2015-10-23",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.5",
+        "date": "2015-11-23",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.15.6",
+        "date": "2016-03-27",
+        "eol": "2016-03-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.0",
+        "date": "2015-10-05",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.1",
+        "date": "2015-11-17",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.2",
+        "date": "2016-01-22",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.3",
+        "date": "2016-04-03",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.4",
+        "date": "2016-09-19",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.16.5",
+        "date": "2016-12-16",
+        "eol": "2016-12-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.0",
+        "date": "2016-03-22",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.1",
+        "date": "2016-05-01",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.2",
+        "date": "2016-06-26",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.3",
+        "date": "2016-08-04",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.4",
+        "date": "2016-11-23",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.5",
+        "date": "2017-01-17",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.6",
+        "date": "2017-03-05",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
+    {
+        "version": "2.17.7",
+        "date": "2017-05-14",
+        "eol": "2017-05-31",
+        "kind": "lts",
+        "jdk": "1.7"
+    },
     {
         "version": "2.18.0",
         "date": "2016-10-05",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.18.1",
         "date": "2016-11-27",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.18.2",
         "date": "2017-01-22",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.18.3",
         "date": "2017-03-08",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.18.4",
         "date": "2017-03-08",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.18.5",
         "date": "2017-09-21",
-        "kind": "legacy",
+        "eol": "2017-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.0",
         "date": "2017-04-30",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.1",
         "date": "2017-06-11",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.2",
         "date": "2017-07-28",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.3",
         "date": "2017-09-10",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.4",
         "date": "2017-11-01",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.19.5",
         "date": "2018-03-24",
-        "kind": "legacy",
+        "eol": "2018-03-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.20.0",
         "date": "2017-10-07",
-        "kind": "legacy",
+        "eol": "2018-07-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.20.1",
         "date": "2017-11-10",
-        "kind": "legacy",
+        "eol": "2018-07-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.20.2",
         "date": "2018-01-22",
-        "kind": "legacy",
+        "eol": "2018-07-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.20.3",
         "date": "2018-03-25",
-        "kind": "legacy",
+        "eol": "2018-07-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.20.4",
         "date": "2018-07-21",
-        "kind": "legacy",
+        "eol": "2018-07-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.0",
         "date": "2018-03-11",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.1",
         "date": "2018-04-29",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.2",
         "date": "2018-07-16",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.3",
         "date": "2018-10-21",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.4",
         "date": "2019-01-06",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.21.5",
         "date": "2019-02-02",
-        "kind": "legacy",
+        "eol": "2019-02-28",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.0",
         "date": "2018-06-29",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.1",
         "date": "2018-09-02",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.2",
         "date": "2018-11-01",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.3",
         "date": "2019-01-19",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.4",
         "date": "2019-04-07",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.22.5",
         "date": "2019-06-08",
-        "kind": "legacy",
+        "eol": "2019-06-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.23.0",
         "date": "2018-11-24",
-        "kind": "legacy",
+        "eol": "2019-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.23.1",
         "date": "2019-01-12",
-        "kind": "legacy",
+        "eol": "2019-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.23.2",
         "date": "2019-04-06",
-        "kind": "legacy",
+        "eol": "2019-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.23.3",
         "date": "2019-06-09",
-        "kind": "legacy",
+        "eol": "2019-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.23.4",
         "date": "2019-09-22",
-        "kind": "legacy",
+        "eol": "2019-09-30",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.24.0",
         "date": "2019-05-12",
-        "kind": "legacy",
+        "eol": "2019-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.24.1",
         "date": "2019-06-20",
-        "kind": "legacy",
+        "eol": "2019-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.24.2",
         "date": "2019-09-13",
-        "kind": "legacy",
+        "eol": "2019-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.24.3",
         "date": "2019-12-26",
-        "kind": "legacy",
+        "eol": "2019-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.25.0",
         "date": "2020-01-23",
-        "kind": "legacy",
+        "eol": "2021-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.25.1",
         "date": "2020-04-16",
-        "kind": "legacy",
+        "eol": "2021-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.25.2",
         "date": "2020-07-21",
-        "kind": "legacy",
+        "eol": "2021-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.25.3",
         "date": "2020-12-24",
-        "kind": "legacy",
+        "eol": "2021-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
         "version": "2.25.4",
         "date": "2021-05-28",
-        "eol": "2022-01-01",
-        "kind": "legacy",
+        "eol": "2021-12-31",
+        "kind": "lts",
         "jdk": "8"
     },
     {
diff --git 
a/catalog/camel-catalog/src/main/resources/org/apache/camel/catalog/releases/old-camel-releases.json
 
b/catalog/camel-catalog/src/main/resources/org/apache/camel/catalog/releases/old-camel-releases.json
new file mode 100644
index 00000000000..9dc196e3492
--- /dev/null
+++ 
b/catalog/camel-catalog/src/main/resources/org/apache/camel/catalog/releases/old-camel-releases.json
@@ -0,0 +1,620 @@
+[
+  {
+    "version": "1.0.0",
+    "date": "2007-07-02",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.1.0",
+    "date": "2007-08-07",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.2.0",
+    "date": "2007-10-16",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.3.0",
+    "date": "2008-04-07",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.4.0",
+    "date": "2008-07-22",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.5.0",
+    "date": "2008-10-31",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.6.0",
+    "date": "2009-02-17",
+    "eol": "2010-12-31",
+    "kind": "lts",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.6.1",
+    "date": "2009-05-14",
+    "eol": "2010-12-31",
+    "kind": "lts",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.6.2",
+    "date": "2009-11-18",
+    "eol": "2010-12-31",
+    "kind": "lts",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.6.3",
+    "date": "2010-05-31",
+    "eol": "2010-12-31",
+    "kind": "lts",
+    "jdk": "1.5"
+  },
+  {
+    "version": "1.6.4",
+    "date": "2010-12-12",
+    "eol": "2010-12-31",
+    "kind": "lts",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.0.0",
+    "date": "2009-08-18",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.1.0",
+    "date": "2009-12-01",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.2.0",
+    "date": "2010-02-11",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.3.0",
+    "date": "2010-05-22",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.4.0",
+    "date": "2010-07-12",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.5.0",
+    "date": "2010-10-25",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.6.0",
+    "date": "2011-01-24",
+    "kind": "legacy",
+    "jdk": "1.5"
+  },
+  {
+    "version": "2.7.0",
+    "date": "2011-03-18",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.7.1",
+    "date": "2011-04-08",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.7.2",
+    "date": "2011-05-31",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.7.3",
+    "date": "2011-07-13",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.7.4",
+    "date": "2011-10-13",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.7.5",
+    "date": "2012-01-11",
+    "eol": "2012-01-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.0",
+    "date": "2011-07-18",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.1",
+    "date": "2011-09-06",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.2",
+    "date": "2011-10-19",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.3",
+    "date": "2011-11-17",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.4",
+    "date": "2012-01-25",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.5",
+    "date": "2012-04-23",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.8.6",
+    "date": "2012-07-05",
+    "eol": "2012-07-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.0",
+    "date": "2011-12-28",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.1",
+    "date": "2012-03-01",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.2",
+    "date": "2012-04-12",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.3",
+    "date": "2012-08-24",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.4",
+    "date": "2012-10-10",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.5",
+    "date": "2012-11-29",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.6",
+    "date": "2013-03-05",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.7",
+    "date": "2013-04-24",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.9.8",
+    "date": "2013-09-17",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.0",
+    "date": "2012-06-27",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.1",
+    "date": "2012-08-24",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.2",
+    "date": "2012-10-11",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.3",
+    "date": "2012-12-03",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.4",
+    "date": "2013-02-22",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.5",
+    "date": "2013-06-22",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.6",
+    "date": "2013-07-03",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.10.7",
+    "date": "2013-09-15",
+    "eol": "2013-09-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.11.0",
+    "date": "2013-04-17",
+    "eol": "2014-02-28",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.11.1",
+    "date": "2013-07-10",
+    "eol": "2014-02-28",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.11.2",
+    "date": "2013-09-19",
+    "eol": "2014-02-28",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.11.3",
+    "date": "2014-01-07",
+    "eol": "2014-02-28",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.11.4",
+    "date": "2014-02-15",
+    "eol": "2014-02-28",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.0",
+    "date": "2013-09-04",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.1",
+    "date": "2013-09-18",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.2",
+    "date": "2013-11-23",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.3",
+    "date": "2014-02-21",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.4",
+    "date": "2014-07-01",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.12.5",
+    "date": "2014-10-24",
+    "eol": "2014-10-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.13.0",
+    "date": "2014-03-17",
+    "eol": "2015-03-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.13.1",
+    "date": "2014-05-07",
+    "eol": "2015-03-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.13.2",
+    "date": "2014-07-01",
+    "eol": "2015-03-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.13.3",
+    "date": "2014-10-28",
+    "eol": "2015-03-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.13.4",
+    "date": "2015-03-05",
+    "eol": "2015-03-31",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.14.0",
+    "date": "2014-09-15",
+    "eol": "2015-11-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.14.1",
+    "date": "2014-12-10",
+    "eol": "2015-11-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.14.2",
+    "date": "2015-03-03",
+    "eol": "2015-11-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.14.3",
+    "date": "2015-05-29",
+    "eol": "2015-11-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.14.4",
+    "date": "2015-11-06",
+    "eol": "2015-11-30",
+    "kind": "lts",
+    "jdk": "1.6"
+  },
+  {
+    "version": "2.15.0",
+    "date": "2015-03-07",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.1",
+    "date": "2015-03-28",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.2",
+    "date": "2015-04-29",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.3",
+    "date": "2015-08-15",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.4",
+    "date": "2015-10-23",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.5",
+    "date": "2015-11-23",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.15.6",
+    "date": "2016-03-27",
+    "eol": "2016-03-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.0",
+    "date": "2015-10-05",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.1",
+    "date": "2015-11-17",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.2",
+    "date": "2016-01-22",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.3",
+    "date": "2016-04-03",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.4",
+    "date": "2016-09-19",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.16.5",
+    "date": "2016-12-16",
+    "eol": "2016-12-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.0",
+    "date": "2016-03-22",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.1",
+    "date": "2016-05-01",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.2",
+    "date": "2016-06-26",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.3",
+    "date": "2016-08-04",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+
+  },
+  {
+    "version": "2.17.4",
+    "date": "2016-11-23",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.5",
+    "date": "2017-01-17",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.6",
+    "date": "2017-03-05",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  },
+  {
+    "version": "2.17.7",
+    "date": "2017-05-14",
+    "eol": "2017-05-31",
+    "kind": "lts",
+    "jdk": "1.7"
+  }
+]
\ No newline at end of file
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 067cb7080a6..5333e0cc3fa 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
@@ -66,25 +66,36 @@ public class VersionList extends CamelCommand {
             = 
"https://raw.githubusercontent.com/apache/camel-website/main/content/releases/q/release-%s.md";;
 
     @CommandLine.Option(names = { "--runtime" },
+                        defaultValue = "camel-main",
                         completionCandidates = 
RuntimeCompletionCandidates.class,
                         converter = RuntimeTypeConverter.class,
                         description = "Runtime (${COMPLETION-CANDIDATES})")
-    RuntimeType runtime;
+    RuntimeType runtime = RuntimeType.main;
 
     @CommandLine.Option(names = { "--from-version" },
-                        description = "Filter by Camel version (inclusive)", 
defaultValue = "4.0.0")
-    String fromVersion = "4.0.0";
+                        description = "Filter by Camel version (inclusive)")
+    String fromVersion;
 
     @CommandLine.Option(names = { "--to-version" },
                         description = "Filter by Camel version (exclusive)")
     String toVersion;
 
+    @CommandLine.Option(names = { "--sort" },
+                        description = "Sort by (version, or date)", 
defaultValue = "version")
+    String sort;
+
     @CommandLine.Option(names = { "--repo" }, description = "Maven repository 
for downloading available versions")
     String repo;
 
     @CommandLine.Option(names = { "--lts" }, description = "Only show LTS 
supported releases")
     boolean lts;
 
+    @CommandLine.Option(names = { "--patch" }, description = "Whether to 
include patch releases (x.y.z)", defaultValue = "true")
+    boolean patch = true;
+
+    @CommandLine.Option(names = { "--rc" }, description = "Include also 
milestone or RC releases", defaultValue = "false")
+    boolean rc;
+
     @CommandLine.Option(names = { "--fresh" }, description = "Make sure we use 
fresh (i.e. non-cached) resources")
     boolean fresh;
 
@@ -92,99 +103,56 @@ public class VersionList extends CamelCommand {
                         description = "Output in JSON Format")
     boolean jsonOutput;
 
-    @CommandLine.Option(names = { "--sort" },
-                        description = "Sort by (version, or date)", 
defaultValue = "version")
-    String sort;
-
     public VersionList(CamelJBangMain main) {
         super(main);
     }
 
     @Override
     public Integer doCall() throws Exception {
-        KameletMain main = new KameletMain(CAMEL_INSTANCE_TYPE);
-
-        List<String[]> versions;
-        try {
-            main.setFresh(fresh);
-            main.setRepositories(repo);
-            main.start();
-
-            // use kamelet-main to download from maven
-            MavenDependencyDownloader downloader = 
main.getCamelContext().hasService(MavenDependencyDownloader.class);
-
-            String g = "org.apache.camel";
-            String a = "camel-catalog";
-            if (RuntimeType.springBoot == runtime) {
-                g = "org.apache.camel.springboot";
-                a = "camel-spring-boot";
-            } else if (RuntimeType.quarkus == runtime) {
-                g = "org.apache.camel.quarkus";
-                a = "camel-quarkus-catalog";
-            }
-
-            RepositoryResolver rr = downloader.getRepositoryResolver();
-            if (rr != null) {
-                repo = rr.resolveRepository(repo);
-            }
-
-            // ensure from and to-version have major.minor
-            if (fromVersion != null) {
-                if (!(fromVersion.contains(".") || fromVersion.contains(","))) 
{
-                    fromVersion = fromVersion + ".0";
-                }
+        // ensure from and to-version have major.minor
+        if (fromVersion != null) {
+            if (!(fromVersion.contains(".") || fromVersion.contains(","))) {
+                fromVersion = fromVersion + ".0";
             }
-            if (toVersion != null) {
-                if (!(toVersion.contains(".") || toVersion.contains(","))) {
-                    toVersion = toVersion + ".0";
-                }
+        }
+        if (toVersion != null) {
+            if (!(toVersion.contains(".") || toVersion.contains(","))) {
+                toVersion = toVersion + ".0";
             }
+        }
+        // only show latest by default
+        if (fromVersion == null && toVersion == null) {
+            fromVersion = "4.0";
+        }
 
-            versions = downloader.resolveAvailableVersions(g, a, fromVersion, 
repo);
-            versions = versions.stream().filter(v -> 
acceptVersion(v[0])).collect(Collectors.toList());
-
-            main.stop();
-        } catch (Exception e) {
-            printer().println("Error downloading available Camel versions due 
to: " + e.getMessage());
-            return 1;
+        // only download if fresh, using a custom repo, or special runtime 
based
+        List<String[]> versions = new ArrayList<>();
+        if (fresh || repo != null || runtime != RuntimeType.main) {
+            downloadReleases(versions);
         }
 
         CamelCatalog catalog = new DefaultCamelCatalog();
         List<ReleaseModel> releases = RuntimeType.quarkus == runtime ? 
catalog.camelQuarkusReleases() : catalog.camelReleases();
 
         List<Row> rows = new ArrayList<>();
-        for (String[] v : versions) {
-            Row row = new Row();
-            rows.add(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 (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 (rm != null) {
-                row.releaseDate = rm.getDate();
-                row.eolDate = rm.getEol();
-                row.jdks = rm.getJdk();
-                row.kind = rm.getKind();
-            }
-        }
+        filterVersions(versions, rows, releases);
 
         if (lts) {
             rows.removeIf(r -> !"lts".equalsIgnoreCase(r.kind));
         }
+        if (!rc) {
+            rows.removeIf(r -> "rc".equalsIgnoreCase(r.kind));
+        }
+        if (!patch) {
+            rows.removeIf(r -> {
+                String last = StringHelper.afterLast(r.coreVersion, ".");
+                return !"0".equals(last);
+            });
+        }
 
         // sort rows
         rows.sort(this::sortRow);
 
-        // camel-quarkus is not LTS and have its own release schedule
         if (jsonOutput) {
             printer().println(
                     Jsoner.serialize(
@@ -210,6 +178,94 @@ public class VersionList extends CamelCommand {
         return 0;
     }
 
+    protected Integer downloadReleases(List<String[]> answer) {
+        KameletMain main = new KameletMain(CAMEL_INSTANCE_TYPE);
+
+        try {
+            main.setFresh(fresh);
+            main.setRepositories(repo);
+            main.start();
+
+            // use kamelet-main to download from maven
+            MavenDependencyDownloader downloader = 
main.getCamelContext().hasService(MavenDependencyDownloader.class);
+
+            String g = "org.apache.camel";
+            String a = "camel-core";
+            if (RuntimeType.springBoot == runtime) {
+                g = "org.apache.camel.springboot";
+                a = "camel-spring-boot";
+            } else if (RuntimeType.quarkus == runtime) {
+                g = "org.apache.camel.quarkus";
+                a = "camel-quarkus-catalog";
+            }
+
+            RepositoryResolver rr = downloader.getRepositoryResolver();
+            if (rr != null) {
+                repo = rr.resolveRepository(repo);
+            }
+
+            var versions = downloader.resolveAvailableVersions(g, a, 
fromVersion, repo);
+            versions = versions.stream().filter(v -> 
acceptVersion(v[0])).toList();
+            answer.addAll(versions);
+
+            main.stop();
+        } catch (Exception e) {
+            printer().println("Error downloading available Camel versions due 
to: " + e.getMessage());
+            return 1;
+        }
+
+        return 0;
+    }
+
+    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);
+                }
+                if (accept) {
+                    Row row = new Row();
+                    rows.add(row);
+                    row.coreVersion = rm.getVersion();
+                    row.releaseDate = rm.getDate();
+                    row.eolDate = rm.getEol();
+                    row.jdks = rm.getJdk();
+                    row.kind = rm.getKind();
+                }
+            }
+        } else
+            for (String[] v : versions) {
+                Row row = new Row();
+                rows.add(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 (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 (rm != null) {
+                    row.releaseDate = rm.getDate();
+                    row.eolDate = rm.getEol();
+                    row.jdks = rm.getJdk();
+                    row.kind = rm.getKind();
+                }
+            }
+    }
+
     private static Map<String, Object> mapOf(Row r) {
         Map<String, Object> map = new LinkedHashMap<>();
         map.put("camelVersion", r.coreVersion);
@@ -245,7 +301,7 @@ public class VersionList extends CamelCommand {
     }
 
     private String kind(Row r) {
-        if (r.kind != null) {
+        if (r.kind != null && !"legacy".equalsIgnoreCase(r.kind)) {
             return r.kind.toUpperCase(Locale.ROOT);
         }
         return "";
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateCamelReleasesMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateCamelReleasesMojo.java
index 27b2527ba24..ca8e70c6590 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateCamelReleasesMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/UpdateCamelReleasesMojo.java
@@ -33,6 +33,7 @@ import javax.inject.Inject;
 
 import org.apache.camel.tooling.model.JsonMapper;
 import org.apache.camel.tooling.model.ReleaseModel;
+import org.apache.camel.tooling.util.PackageHelper;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
@@ -90,7 +91,15 @@ public class UpdateCamelReleasesMojo extends 
AbstractGeneratorMojo {
         getLog().info("Found " + releases.size() + " " + kind + " releases");
 
         JsonArray arr = new JsonArray();
+        if ("Camel".equals(kind)) {
+            // include old releases
+            arr.addAll(processOldReleases());
+        }
         for (ReleaseModel r : releases) {
+            // kind: legacy should be kind: lts
+            if ("legacy".equals(r.getKind())) {
+                r.setKind("lts");
+            }
             JsonObject jo = JsonMapper.asJsonObject(r);
             arr.add(jo);
         }
@@ -102,6 +111,12 @@ public class UpdateCamelReleasesMojo extends 
AbstractGeneratorMojo {
         addResourceDirectory(path);
     }
 
+    private JsonArray processOldReleases() throws Exception {
+        File f = new 
File("src/main/resources/org/apache/camel/catalog/releases/old-camel-releases.json");
+        String json = PackageHelper.loadText(f);
+        return Jsoner.deserialize(json, new JsonArray());
+    }
+
     private List<ReleaseModel> processReleases(List<String> urls) throws 
Exception {
         List<ReleaseModel> answer = new ArrayList<>();
 


Reply via email to