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 346d679730b0 CAMEL-25629: camel-jbang - the camel.jbang.javaVersion 
metadata lists Java 25 too (#27810)
346d679730b0 is described below

commit 346d679730b0c8cdda399bfa7dd7d32e3ff34159
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed Oct 14 12:55:09 2026 +0200

    CAMEL-25629: camel-jbang - the camel.jbang.javaVersion metadata lists Java 
25 too (#27810)
    
    Signed-off-by: Claus Ibsen <[email protected]>
    Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
---
 .../jbang/camel-jbang-configuration-metadata.json  |  2 +-
 .../camel-jbang-configuration-metadata.json        |  2 +-
 .../dsl/jbang/core/common/CamelJBangConstants.java |  2 +-
 .../jbang/core/common/JavaVersionMetadataTest.java | 55 ++++++++++++++++++++++
 4 files changed, 58 insertions(+), 3 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
index bd1bdf642d53..e61e0029c60a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/jbang/camel-jbang-configuration-metadata.json
@@ -21,7 +21,7 @@
     { "name": "camel.jbang.groovyFiles", "required": false, "description": 
"Additional groovy source files to export to src\/main\/resources\/camel-groovy 
directory (Use commas to separate multiple files)", "type": "string", 
"javaType": "String", "secret": false },
     { "name": "camel.jbang.health", "required": false, "description": "Health 
check at \/observe\/health on local HTTP server (port 8080 by default)", 
"type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": 
false, "deprecated": true },
     { "name": "camel.jbang.ignoreLoadingError", "required": false, 
"description": "Whether to ignore route loading and compilation errors (use 
this with care!)", "label": "advanced", "type": "boolean", "javaType": 
"boolean", "defaultValue": false, "secret": false },
-    { "name": "camel.jbang.javaVersion", "required": false, "description": 
"Java version", "type": "enum", "javaType": "String", "defaultValue": "21", 
"secret": false, "enum": [ "21" ] },
+    { "name": "camel.jbang.javaVersion", "required": false, "description": 
"Java version", "type": "enum", "javaType": "String", "defaultValue": "21", 
"secret": false, "enum": [ "21", "25" ] },
     { "name": "camel.jbang.jfr", "required": false, "description": "Enables 
Java Flight Recorder saving recording to disk on exit", "type": "boolean", 
"javaType": "boolean", "defaultValue": false, "secret": false },
     { "name": "camel.jbang.jfr-profile", "required": false, "description": 
"Java Flight Recorder profile to use (such as default or profile)", "type": 
"string", "javaType": "String", "defaultValue": "default", "secret": false },
     { "name": "camel.jbang.jib-maven-plugin-version", "required": false, 
"description": "Version to use for jib-maven-plugin when exporting the 
application", "label": "maven", "type": "string", "javaType": "String", 
"defaultValue": "3.5.2", "secret": false },
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
index bd1bdf642d53..e61e0029c60a 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/generated/resources/META-INF/camel-jbang-configuration-metadata.json
@@ -21,7 +21,7 @@
     { "name": "camel.jbang.groovyFiles", "required": false, "description": 
"Additional groovy source files to export to src\/main\/resources\/camel-groovy 
directory (Use commas to separate multiple files)", "type": "string", 
"javaType": "String", "secret": false },
     { "name": "camel.jbang.health", "required": false, "description": "Health 
check at \/observe\/health on local HTTP server (port 8080 by default)", 
"type": "boolean", "javaType": "boolean", "defaultValue": false, "secret": 
false, "deprecated": true },
     { "name": "camel.jbang.ignoreLoadingError", "required": false, 
"description": "Whether to ignore route loading and compilation errors (use 
this with care!)", "label": "advanced", "type": "boolean", "javaType": 
"boolean", "defaultValue": false, "secret": false },
-    { "name": "camel.jbang.javaVersion", "required": false, "description": 
"Java version", "type": "enum", "javaType": "String", "defaultValue": "21", 
"secret": false, "enum": [ "21" ] },
+    { "name": "camel.jbang.javaVersion", "required": false, "description": 
"Java version", "type": "enum", "javaType": "String", "defaultValue": "21", 
"secret": false, "enum": [ "21", "25" ] },
     { "name": "camel.jbang.jfr", "required": false, "description": "Enables 
Java Flight Recorder saving recording to disk on exit", "type": "boolean", 
"javaType": "boolean", "defaultValue": false, "secret": false },
     { "name": "camel.jbang.jfr-profile", "required": false, "description": 
"Java Flight Recorder profile to use (such as default or profile)", "type": 
"string", "javaType": "String", "defaultValue": "default", "secret": false },
     { "name": "camel.jbang.jib-maven-plugin-version", "required": false, 
"description": "Version to use for jib-maven-plugin when exporting the 
application", "label": "maven", "type": "string", "javaType": "String", 
"defaultValue": "3.5.2", "secret": false },
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
index 6c4789d27729..26063b36bbb9 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/CamelJBangConstants.java
@@ -77,7 +77,7 @@ public final class CamelJBangConstants {
     public static final String PARENT_POM = "camel.jbang.parentPom";
 
     @Metadata(description = "Java version",
-              javaType = "String", enums = "21", defaultValue = "21")
+              javaType = "String", enums = "21,25", defaultValue = "21")
     public static final String JAVA_VERSION = "camel.jbang.javaVersion";
 
     @Metadata(description = "Apache Camel Kamelets version. By default the 
Kamelets are the same version as Camel.",
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/JavaVersionMetadataTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/JavaVersionMetadataTest.java
new file mode 100644
index 000000000000..50fbb3e75099
--- /dev/null
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/common/JavaVersionMetadataTest.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.dsl.jbang.core.common;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.util.IOHelper;
+import org.apache.camel.util.json.JsonArray;
+import org.apache.camel.util.json.JsonObject;
+import org.apache.camel.util.json.Jsoner;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+public class JavaVersionMetadataTest {
+
+    @Test
+    public void testJavaVersionEnumMatchesCompletionCandidates() throws 
Exception {
+        List<String> candidates = new ArrayList<>();
+        new JavaVersionCompletionCandidates().forEach(candidates::add);
+
+        JsonObject property = null;
+        try (InputStream is = 
getClass().getResourceAsStream("/META-INF/camel-jbang-configuration-metadata.json"))
 {
+            assertNotNull(is, "camel-jbang-configuration-metadata.json should 
be on the classpath");
+            JsonObject root = (JsonObject) 
Jsoner.deserialize(IOHelper.loadText(is));
+            for (Object o : (JsonArray) root.get("properties")) {
+                JsonObject jo = (JsonObject) o;
+                if 
(CamelJBangConstants.JAVA_VERSION.equals(jo.getString("name"))) {
+                    property = jo;
+                }
+            }
+        }
+        assertNotNull(property, "camel.jbang.javaVersion should be in the 
metadata");
+        // the java versions of camel.jbang.javaVersion are the same as 
offered by --java-version
+        assertEquals(candidates, property.getCollection("enum"));
+        assertEquals("21", property.getString("defaultValue"));
+    }
+}

Reply via email to