This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch j21
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 627725f8f64ec1fe8e437cc22dbc0184c21f7be3
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Jul 23 21:00:19 2025 +0200

    CAMEL-22266: camel-jbang: use java 21 as default for run/export commands.
---
 .../ROOT/pages/camel-4x-upgrade-guide-4_14.adoc    |  3 ++
 .../camel/dsl/jbang/core/commands/Export.java      |  3 +-
 .../dsl/jbang/core/commands/ExportBaseCommand.java |  4 +--
 .../apache/camel/dsl/jbang/core/commands/Run.java  |  2 +-
 .../main/resources/quarkus-docker/Dockerfile.jvm   |  7 +++--
 .../resources/quarkus-docker/Dockerfile.legacy-jar |  9 +++---
 .../resources/quarkus-docker/Dockerfile.native     | 10 +++----
 .../quarkus-docker/Dockerfile.native-micro         | 10 +++----
 .../{Dockerfile.tmpl => Dockerfile17.tmpl}         |  0
 .../{Dockerfile.tmpl => Dockerfile21.tmpl}         |  2 +-
 .../dsl/jbang/core/commands/ExportMainJibTest.java | 34 ++++++++++++++++++++--
 .../jbang/core/commands/ExportMainJkubeTest.java   |  4 +--
 .../resources/pom-xml-files/springboot-pom.xml     |  4 +--
 .../core/commands/kubernetes/KubernetesRun.java    |  4 +--
 .../commands/kubernetes/KubernetesExportTest.java  | 27 +++++++++++++++++
 15 files changed, 91 insertions(+), 32 deletions(-)

diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
index 8ccc0635239..320b8b945e8 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_14.adoc
@@ -21,6 +21,9 @@ of an issue, and felt it's better to fix this before for this 
LTS release.
 
 === camel-jbang
 
+The `camel-jbang` has upgraded to Java 21 as the default java-version when 
running and exporting.
+To keep using java 17, you can use `--java-version=17` as parameter.
+
 The `camel export` will not include `camel-observabilities-services` out of 
the box. To include this, then use `--observe` to enable
 this during export.
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
index e5fc01ccbaa..01259fd5844 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Export.java
@@ -327,7 +327,8 @@ public class Export extends ExportBaseCommand {
         Path docker = Path.of(buildDir).resolve("src/main/docker");
         Files.createDirectories(docker);
         String[] ids = gav.split(":");
-        InputStream is = 
ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/Dockerfile.tmpl");
+        InputStream is
+                = 
ExportCamelMain.class.getClassLoader().getResourceAsStream("templates/Dockerfile"
 + javaVersion + ".tmpl");
         String context = IOHelper.loadText(is);
         IOHelper.close(is);
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index 989d4d85dbb..3b34417f19b 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -155,8 +155,8 @@ public abstract class ExportBaseCommand extends 
CamelCommand {
                         defaultValue = "CamelApplication")
     protected String mainClassname = "CamelApplication";
 
-    @CommandLine.Option(names = { "--java-version" }, description = "Java 
version", defaultValue = "17")
-    protected String javaVersion = "17";
+    @CommandLine.Option(names = { "--java-version" }, description = "Java 
version", defaultValue = "21")
+    protected String javaVersion = "21";
 
     @CommandLine.Option(names = { "--camel-version" },
                         description = "To export using a different Camel 
version than the default version.")
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
index fbdd40050c0..328d16bf4d8 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Run.java
@@ -1540,7 +1540,7 @@ public class Run extends CamelCommand {
         String content = IOHelper.loadText(is);
         IOHelper.close(is);
 
-        content = content.replaceFirst("\\{\\{ \\.JavaVersion }}", "17");
+        content = content.replaceFirst("\\{\\{ \\.JavaVersion }}", "21");
         if (repositories != null) {
             content = content.replaceFirst("\\{\\{ \\.MavenRepositories }}", 
"//REPOS " + repositories);
         } else {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.jvm
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.jvm
index 3981afa460e..81d3e69ab9e 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.jvm
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.jvm
@@ -43,7 +43,8 @@
 # This scripts computes the command line to execute your Java application, and
 # includes memory/GC tuning.
 # You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: 
"-verbose:class")
+# - JAVA_OPTS: JVM options passed to the `java` command (example: 
"-verbose:class") - Be aware that this will override
+# the default JVM options, use `JAVA_OPTS_APPEND` to append options
 # - JAVA_OPTS_APPEND: User specified Java options to be appended to generated 
options
 #   in JAVA_OPTS (example: "-Dsome.property=foo")
 # - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. 
This is
@@ -94,7 +95,7 @@
 #   accessed directly. (example: "foo.example.com,bar.example.com")
 #
 ###
-FROM registry.access.redhat.com/ubi8/openjdk-17:1.21
+FROM registry.access.redhat.com/ubi9/openjdk-21:1.21
 
 ENV LANGUAGE='en_US:en'
 
@@ -107,7 +108,7 @@ COPY --chown=185 target/quarkus-app/quarkus/ 
/deployments/quarkus/
 
 EXPOSE 8080
 USER 185
-ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 
-Djava.util.logging.manager=org.jboss.logmanager.LogManager"
+ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 
-Djava.util.logging.manager=org.jboss.logmanager.LogManager"
 ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
 
 ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.legacy-jar
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.legacy-jar
index 83e831068ad..d1468d0801b 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.legacy-jar
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.legacy-jar
@@ -24,7 +24,7 @@
 #
 # Before building the container image run:
 #
-# ./mvnw package -Dquarkus.package.type=legacy-jar
+# ./mvnw package -Dquarkus.package.jar.type=legacy-jar
 #
 # Then, build the image with:
 #
@@ -47,7 +47,8 @@
 # This scripts computes the command line to execute your Java application, and
 # includes memory/GC tuning.
 # You can configure the behavior using the following environment properties:
-# - JAVA_OPTS: JVM options passed to the `java` command (example: 
"-verbose:class")
+# - JAVA_OPTS: JVM options passed to the `java` command (example: 
"-verbose:class") - Be aware that this will override
+# the default JVM options, use `JAVA_OPTS_APPEND` to append options
 # - JAVA_OPTS_APPEND: User specified Java options to be appended to generated 
options
 #   in JAVA_OPTS (example: "-Dsome.property=foo")
 # - JAVA_MAX_MEM_RATIO: Is used when no `-Xmx` option is given in JAVA_OPTS. 
This is
@@ -98,7 +99,7 @@
 #   accessed directly. (example: "foo.example.com,bar.example.com")
 #
 ###
-FROM registry.access.redhat.com/ubi8/openjdk-17:1.16
+FROM registry.access.redhat.com/ubi9/openjdk-21:1.21
 
 ENV LANGUAGE='en_US:en'
 
@@ -108,7 +109,7 @@ COPY target/*-runner.jar /deployments/quarkus-run.jar
 
 EXPOSE 8080
 USER 185
-ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 
-Djava.util.logging.manager=org.jboss.logmanager.LogManager"
+ENV JAVA_OPTS_APPEND="-Dquarkus.http.host=0.0.0.0 
-Djava.util.logging.manager=org.jboss.logmanager.LogManager"
 ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"
 
 ENTRYPOINT [ "/opt/jboss/container/java/run/run-java.sh" ]
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native
index b71efa9abb7..56e20b3fe9f 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native
@@ -30,17 +30,15 @@
 #
 # docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus
 #
+# The ` registry.access.redhat.com/ubi9/ubi-minimal:9.5` base image is based 
on UBI 9.
+# To use UBI 8, switch to `quay.io/ubi8/ubi-minimal:8.10`.
 ###
-
-# Use an UBI image
-FROM registry.access.redhat.com/ubi8/ubi-minimal:8.10
-# Use a micro image
-# FROM quay.io/quarkus/quarkus-micro-image:2.0
+FROM registry.access.redhat.com/ubi9/ubi-minimal:9.5
 WORKDIR /work/
 RUN chown 1001 /work \
     && chmod "g+rwX" /work \
     && chown 1001:root /work
-COPY --chown=1001:root target/*-runner /work/application
+COPY --chown=1001:root --chmod=0755 target/*-runner /work/application
 
 EXPOSE 8080
 USER 1001
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native-micro
 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native-micro
index 6b0e613988e..4c743103f07 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native-micro
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/quarkus-docker/Dockerfile.native-micro
@@ -15,10 +15,6 @@
 # limitations under the License.
 #
 
-#
-# WARNING: this image is deprecated and won't be used in future versions: use 
Dockerfile.native instead
-#
-
 ####
 # This Dockerfile is used in order to build a container that runs the Quarkus 
application in native (no JVM) mode.
 # It uses a micro base image, tuned for Quarkus native executables.
@@ -37,13 +33,15 @@
 #
 # docker run -i --rm -p 8080:8080 quarkus/code-with-quarkus
 #
+# The `quay.io/quarkus/ubi9-quarkus-micro-image:2.0` base image is based on 
UBI 9.
+# To use UBI 8, switch to `quay.io/quarkus/quarkus-micro-image:2.0`.
 ###
-FROM quay.io/quarkus/quarkus-micro-image:2.0
+FROM quay.io/quarkus/ubi9-quarkus-micro-image:2.0
 WORKDIR /work/
 RUN chown 1001 /work \
     && chmod "g+rwX" /work \
     && chown 1001:root /work
-COPY --chown=1001:root target/*-runner /work/application
+COPY --chown=1001:root --chmod=0755 target/*-runner /work/application
 
 EXPOSE 8080
 USER 1001
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile.tmpl 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile17.tmpl
similarity index 100%
copy from 
dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile.tmpl
copy to 
dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile17.tmpl
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile.tmpl 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile21.tmpl
similarity index 99%
rename from 
dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile.tmpl
rename to 
dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile21.tmpl
index 2edafcb82ed..3d09e017807 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile.tmpl
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/Dockerfile21.tmpl
@@ -94,7 +94,7 @@
 #   accessed directly. (example: "foo.example.com,bar.example.com")
 #
 ###
-FROM registry.access.redhat.com/ubi8/openjdk-17:1.21
+FROM registry.access.redhat.com/ubi9/openjdk-21:1.21
 
 COPY --chown=185 target/{{ .AppJar }} /deployments/
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
index 2b56135282e..28f7c48ea32 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJibTest.java
@@ -64,14 +64,14 @@ class ExportMainJibTest {
 
     @ParameterizedTest
     @MethodSource("runtimeProvider")
-    public void shouldGenerateProjectWithJib(RuntimeType rt) throws Exception {
+    public void shouldGenerateJava17(RuntimeType rt) throws Exception {
         // prepare as we need application.properties that contains jib settings
         Files.copy(new 
File("src/test/resources/application-jib.properties").toPath(), 
profile.toPath(),
                 StandardCopyOption.REPLACE_EXISTING);
 
         Export command = new Export(new CamelJBangMain());
         CommandLine.populateCommand(command, "--gav=examples:route:1.0.0", 
"--dir=" + workingDir,
-                "--runtime=%s".formatted(rt.runtime()), 
"target/test-classes/route.yaml");
+                "--runtime=%s".formatted(rt.runtime()), "--java-version=17", 
"target/test-classes/route.yaml");
         int exit = command.doCall();
 
         Assertions.assertEquals(0, exit);
@@ -92,6 +92,36 @@ class ExportMainJibTest {
         command.printConfigurationValues("export command");
     }
 
+    @ParameterizedTest
+    @MethodSource("runtimeProvider")
+    public void shouldGenerateProjectWithJib(RuntimeType rt) throws Exception {
+        // prepare as we need application.properties that contains jib settings
+        Files.copy(new 
File("src/test/resources/application-jib.properties").toPath(), 
profile.toPath(),
+                StandardCopyOption.REPLACE_EXISTING);
+
+        Export command = new Export(new CamelJBangMain());
+        CommandLine.populateCommand(command, "--gav=examples:route:1.0.0", 
"--dir=" + workingDir,
+                "--runtime=%s".formatted(rt.runtime()), 
"target/test-classes/route.yaml");
+        int exit = command.doCall();
+
+        Assertions.assertEquals(0, exit);
+        Model model = readMavenModel();
+        Assertions.assertEquals("examples", model.getGroupId());
+        Assertions.assertEquals("route", model.getArtifactId());
+        Assertions.assertEquals("1.0.0", model.getVersion());
+        Assertions.assertEquals("21", 
model.getProperties().getProperty("java.version"));
+        Assertions.assertEquals("abc", 
model.getProperties().getProperty("jib.label"));
+        Assertions.assertEquals("eclipse-temurin:21-jre", 
model.getProperties().getProperty("jib.from.image"));
+
+        // should contain jib plugin
+        Assertions.assertEquals(4, model.getBuild().getPlugins().size());
+        Plugin p = model.getBuild().getPlugins().get(3);
+        Assertions.assertEquals("com.google.cloud.tools", p.getGroupId());
+        Assertions.assertEquals("jib-maven-plugin", p.getArtifactId());
+
+        command.printConfigurationValues("export command");
+    }
+
     private Model readMavenModel() throws Exception {
         File f = workingDir.toPath().resolve("pom.xml").toFile();
         Assertions.assertTrue(f.isFile(), "Not a pom.xml file: " + f);
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
index 74c4bb20a56..87a933bb5b2 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/ExportMainJkubeTest.java
@@ -79,9 +79,9 @@ class ExportMainJkubeTest {
         Assertions.assertEquals("examples", model.getGroupId());
         Assertions.assertEquals("route", model.getArtifactId());
         Assertions.assertEquals("1.0.0", model.getVersion());
-        Assertions.assertEquals("17", 
model.getProperties().getProperty("java.version"));
+        Assertions.assertEquals("21", 
model.getProperties().getProperty("java.version"));
         Assertions.assertEquals("abc", 
model.getProperties().getProperty("jib.label"));
-        Assertions.assertEquals("eclipse-temurin:17-jre", 
model.getProperties().getProperty("jib.from.image"));
+        Assertions.assertEquals("eclipse-temurin:21-jre", 
model.getProperties().getProperty("jib.from.image"));
 
         // should contain jib and jkube plugin
         Assertions.assertEquals(5, model.getBuild().getPlugins().size());
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/test/resources/pom-xml-files/springboot-pom.xml
 
b/dsl/camel-jbang/camel-jbang-core/src/test/resources/pom-xml-files/springboot-pom.xml
index d83d53fcdb9..c7cce8a10cc 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/test/resources/pom-xml-files/springboot-pom.xml
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/test/resources/pom-xml-files/springboot-pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>3.4.5</version>
+        <version>3.5.3</version>
         <relativePath/> <!-- lookup parent from repository -->
     </parent>
 
@@ -33,7 +33,7 @@
     <version>1.0-SNAPSHOT</version>
 
     <properties>
-        <java.version>17</java.version>
+        <java.version>21</java.version>
         
<project.build.outputTimestamp>2025-06-12T11:19:02Z</project.build.outputTimestamp>
 
     </properties>
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
index 1919b24def8..dd726e11269 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/main/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesRun.java
@@ -220,8 +220,8 @@ public class KubernetesRun extends KubernetesBaseCommand {
                         description = "Whether downloading JARs from ASF Maven 
Snapshot repository is enabled")
     boolean mavenApacheSnapshotEnabled = true;
 
-    @CommandLine.Option(names = { "--java-version" }, description = "Java 
version", defaultValue = "17")
-    String javaVersion = "17";
+    @CommandLine.Option(names = { "--java-version" }, description = "Java 
version", defaultValue = "21")
+    String javaVersion = "21";
 
     @CommandLine.Option(names = { "--camel-version" },
                         description = "To export using a different Camel 
version than the default version.")
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
index 6b4cb7da3b9..134616c2eaa 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-kubernetes/src/test/java/org/apache/camel/dsl/jbang/core/commands/kubernetes/KubernetesExportTest.java
@@ -62,6 +62,33 @@ class KubernetesExportTest extends KubernetesExportBaseTest {
         Assertions.assertEquals("route", model.getArtifactId());
         Assertions.assertEquals("1.0.0", model.getVersion());
 
+        Properties props = model.getProperties();
+        Assertions.assertEquals("examples/route:1.0.0", 
props.get("jkube.image.name"));
+        Assertions.assertEquals("examples/route:1.0.0", 
props.get("jkube.container-image.name"));
+        Assertions.assertEquals("eclipse-temurin:21", 
props.get("jkube.container-image.from"));
+        Assertions.assertEquals("jib", props.get("jkube.build.strategy"));
+        Assertions.assertNull(props.get("jkube.docker.push.registry"));
+        Assertions.assertNull(props.get("jkube.container-image.registry"));
+        Assertions.assertNull(props.get("jkube.container-image.platforms"));
+
+        if (RuntimeType.quarkus == RuntimeType.fromValue(rt.runtime())) {
+            Assertions.assertEquals("/observe/health", 
props.get("quarkus.smallrye-health.root-path"));
+        }
+    }
+
+    @ParameterizedTest
+    @MethodSource("runtimeProvider")
+    public void shouldGenerateJava17Project(RuntimeType rt) throws Exception {
+        KubernetesExport command = createCommand(new String[] { 
"classpath:route.yaml" },
+                "--gav=examples:route:1.0.0", "--runtime=" + rt.runtime(), 
"--java-version=17");
+        int exit = command.doCall();
+        Assertions.assertEquals(0, exit);
+
+        Model model = readMavenModel();
+        Assertions.assertEquals("examples", model.getGroupId());
+        Assertions.assertEquals("route", model.getArtifactId());
+        Assertions.assertEquals("1.0.0", model.getVersion());
+
         Properties props = model.getProperties();
         Assertions.assertEquals("examples/route:1.0.0", 
props.get("jkube.image.name"));
         Assertions.assertEquals("examples/route:1.0.0", 
props.get("jkube.container-image.name"));

Reply via email to