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

jamesnetherton pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/camel-main by this push:
     new 6ed64b63a4 Require JDK 21 minimum (#8382)
6ed64b63a4 is described below

commit 6ed64b63a4778068c746c6cac25097c12c2738d9
Author: James Netherton <[email protected]>
AuthorDate: Thu Mar 5 15:13:02 2026 +0000

    Require JDK 21 minimum (#8382)
---
 .github/workflows/check-dependency-convergence.yml |  4 +--
 .github/workflows/ci-build.yaml                    | 37 ++++++++++++----------
 .github/workflows/generate-sbom-main.yml           |  2 +-
 .github/workflows/pr-validate.yml                  |  4 +--
 .github/workflows/quarkus-master-cron.yaml         | 28 ++++++++--------
 .sdkmanrc                                          |  2 +-
 Jenkinsfile                                        |  2 +-
 Jenkinsfile.sonarcloud                             |  2 +-
 .../ROOT/pages/contributor-guide/index.adoc        |  2 +-
 .../modules/ROOT/pages/user-guide/first-steps.adoc |  2 +-
 .../quarkus/core/deployment/util/CamelSupport.java |  2 +-
 integration-tests/infinispan/pom.xml               | 16 ----------
 pom.xml                                            |  6 ++--
 13 files changed, 49 insertions(+), 60 deletions(-)

diff --git a/.github/workflows/check-dependency-convergence.yml 
b/.github/workflows/check-dependency-convergence.yml
index d6eca57b1a..58174025e7 100644
--- a/.github/workflows/check-dependency-convergence.yml
+++ b/.github/workflows/check-dependency-convergence.yml
@@ -40,11 +40,11 @@ jobs:
     permissions:
       issues: write
     steps:
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Checkout
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
       - name: Set Build Info
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index 301be8f62c..812b2a43ac 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -107,12 +107,12 @@ jobs:
           else
             echo "run-checks=false" >> $GITHUB_OUTPUT
           fi
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         if: steps.init.outputs.run-checks == 'true'
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Checkout
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         if: steps.init.outputs.run-checks == 'true'
@@ -164,11 +164,11 @@ jobs:
       - name: Check free space on disk
         run: |
           df -h /
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Build Camel
         if: github.ref == 'refs/heads/camel-main' || github.base_ref == 
'camel-main'
         run: |
@@ -262,11 +262,11 @@ jobs:
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -338,11 +338,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -421,7 +421,7 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        java: [ '17', '21' ]
+        java: [ '21', '25' ]
     env:
       MAVEN_OPTS: -Xmx3000m
     steps:
@@ -461,7 +461,7 @@ jobs:
           test-report-xml-base-dir: integration-tests-jvm
 
   integration-tests-alternative-jdk:
-    name: Integration Tests Alternative JDK 21 ${{matrix.name}}
+    name: Integration Tests Alternative JDK 25 ${{matrix.name}}
     runs-on: ubuntu-latest
     needs: initial-mvn-install
     if: github.event_name != 'pull_request' || 
!contains(github.event.pull_request.labels.*.name, 'JVM')
@@ -478,11 +478,11 @@ jobs:
           fetch-depth: 0
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
+      - name: Set up JDK 25
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '21'
+          java-version: '25'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -528,11 +528,11 @@ jobs:
         with:
           ref: ${{ env.CHECKOUT_REF }}
           fetch-depth: 0
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -574,11 +574,11 @@ jobs:
     steps:
       - name: Checkout
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -606,6 +606,11 @@ jobs:
               EXAMPLES_BRANCH=${GITHUB_BASE_REF}
           fi
 
+          # TODO: Remove this when example projects are updated for JDK 21 
default
+          if [[ ${GITHUB_REF_NAME} == "camel-main" || ${GITHUB_BASE_REF} == 
"camel-main" ]]; then
+            CQ_MAVEN_ARGS="-Dmaven.compiler.release=21 ${CQ_MAVEN_ARGS}"
+          fi
+
           git clone --depth 1 --branch ${EXAMPLES_BRANCH} 
https://github.com/apache/camel-quarkus-examples.git \
             && cd camel-quarkus-examples \
             && echo "Current Examples commit:" $(git rev-parse HEAD) \
diff --git a/.github/workflows/generate-sbom-main.yml 
b/.github/workflows/generate-sbom-main.yml
index fed08ec79d..e6ec476671 100644
--- a/.github/workflows/generate-sbom-main.yml
+++ b/.github/workflows/generate-sbom-main.yml
@@ -39,7 +39,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        java: [ '17' ]
+        java: [ '21' ]
     steps:
       - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
         with:
diff --git a/.github/workflows/pr-validate.yml 
b/.github/workflows/pr-validate.yml
index 525eff1c2e..1bf1082bcb 100644
--- a/.github/workflows/pr-validate.yml
+++ b/.github/workflows/pr-validate.yml
@@ -77,11 +77,11 @@ jobs:
       run: |
         echo "BRANCH_OPTIONS=-Poss-snapshots" >> $GITHUB_ENV
     - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
-    - name: Set up JDK 17
+    - name: Set up JDK 21
       uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
       with:
         distribution: 'temurin'
-        java-version: '17'
+        java-version: '21'
     - name: mvn validate
       run: |
         ./mvnw ${CQ_MAVEN_ARGS} ${BRANCH_OPTIONS} -fae \
diff --git a/.github/workflows/quarkus-master-cron.yaml 
b/.github/workflows/quarkus-master-cron.yaml
index 6863df73fe..678634db92 100644
--- a/.github/workflows/quarkus-master-cron.yaml
+++ b/.github/workflows/quarkus-master-cron.yaml
@@ -43,11 +43,11 @@ jobs:
       - name: Check free space on disk
         run: |
           df -h /
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Set Workflow Build ID
         run: |
           [ ! -d ~/build-data ] && mkdir -p ~/build-data
@@ -170,11 +170,11 @@ jobs:
           git config --local user.name "github-actions[bot]"
           git fetch origin main
           git rebase $(cat ~/build-data/main-sha.txt)
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Integration Tests
         run: |
           for MODULE in $(yq -M -N e ".${{ matrix.category }}" 
tooling/scripts/test-categories.yaml | grep -vE '^\s*#' | cut -f2 -d' '); do
@@ -255,11 +255,11 @@ jobs:
           git config --local user.name "github-actions[bot]"
           git fetch origin main
           git rebase $(cat ~/build-data/main-sha.txt)
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: cd extensions-core && mvn test
         run: |
           cd extensions-core
@@ -413,11 +413,11 @@ jobs:
           git rebase $(cat ~/build-data/main-sha.txt)          
       - name: Reclaim Disk Space
         run: .github/reclaim-disk-space.sh
-      - name: Set up JDK 21
+      - name: Set up JDK 25
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '21'
+          java-version: '25'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         env:
@@ -466,11 +466,11 @@ jobs:
           git config --local user.name "github-actions[bot]"
           git fetch origin main
           git rebase $(cat ~/build-data/main-sha.txt)
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: cd integration-tests && mvn clean verify
         shell: bash
         run: |
@@ -498,11 +498,11 @@ jobs:
       fail-fast: false
       matrix: ${{ fromJson(needs.initial-mvn-install.outputs.examples-matrix) 
}}
     steps:
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
@@ -583,11 +583,11 @@ jobs:
     needs: native-tests
     runs-on: ubuntu-latest
     steps:
-      - name: Set up JDK 17
+      - name: Set up JDK 21
         uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
         with:
           distribution: 'temurin'
-          java-version: '17'
+          java-version: '21'
       - name: Download Maven Repo
         uses: 
actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
         with:
diff --git a/.sdkmanrc b/.sdkmanrc
index 91de2c6710..b9f38fc58e 100644
--- a/.sdkmanrc
+++ b/.sdkmanrc
@@ -1,5 +1,5 @@
 # Enable auto-env through the sdkman_auto_env config
 # Add key=value pairs of SDKs to use below
-java=17.0.17-tem
+java=21.0.10-tem
 maven=3.9.11
 mvnd=1.0.2
diff --git a/Jenkinsfile b/Jenkinsfile
index 7ed82ff9f7..fd3835750c 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 def AGENT_LABEL = env.AGENT_LABEL ?: 'ubuntu'
-def JDK_NAME = env.JDK_NAME ?: 'jdk_17_latest'
+def JDK_NAME = env.JDK_NAME ?: 'jdk_21_latest'
 def MAVEN_PARAMS = '-B -e -ntp'
 
 pipeline {
diff --git a/Jenkinsfile.sonarcloud b/Jenkinsfile.sonarcloud
index a45554f94c..cc06552cdc 100644
--- a/Jenkinsfile.sonarcloud
+++ b/Jenkinsfile.sonarcloud
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 def AGENT_LABEL = env.AGENT_LABEL ?: 'ubuntu'
-def JDK_NAME = env.JDK_NAME ?: 'jdk_17_latest'
+def JDK_NAME = env.JDK_NAME ?: 'jdk_21_latest'
 def MAVEN_PARAMS = '-B -e -ntp'
 
 pipeline {
diff --git a/docs/modules/ROOT/pages/contributor-guide/index.adoc 
b/docs/modules/ROOT/pages/contributor-guide/index.adoc
index 54ad7cfbca..569afba615 100644
--- a/docs/modules/ROOT/pages/contributor-guide/index.adoc
+++ b/docs/modules/ROOT/pages/contributor-guide/index.adoc
@@ -11,7 +11,7 @@
   documentation.
 * If you are on Linux, `docker` or `podman` is sufficient for the native mode 
too. Use `-Pnative,docker` instead of `-Pnative`
   if you choose this option.
-* Java 17 or higher (Java 11 is only for Camel Quarkus < 3.0.0).
+* Java 21 or higher
 * Maven {min-maven-version}+ (unless you use the Maven Wrapper, a.k.a. `mvnw` 
available in the source tree).
 
 [[how-to-build]]
diff --git a/docs/modules/ROOT/pages/user-guide/first-steps.adoc 
b/docs/modules/ROOT/pages/user-guide/first-steps.adoc
index 58c232626a..8bf332dee7 100644
--- a/docs/modules/ROOT/pages/user-guide/first-steps.adoc
+++ b/docs/modules/ROOT/pages/user-guide/first-steps.adoc
@@ -7,7 +7,7 @@ This guide outlines various ways to create a new Camel Quarkus 
application.
 
 * A `git` client
 * An IDE
-* JDK 17+ with `JAVA_HOME` configured appropriately
+* JDK 21+ with `JAVA_HOME` configured appropriately
 * Apache Maven {min-maven-version}+ ({target-maven-version} is recommended)
 * GraalVM with the `native-image` command installed and the `GRAALVM_HOME` 
environment variable set. See
   https://quarkus.io/guides/building-native-image-guide[Building a native 
executable] section of the Quarkus
diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelSupport.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelSupport.java
index b103c8751f..d3138da1de 100644
--- 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelSupport.java
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/util/CamelSupport.java
@@ -44,7 +44,7 @@ public final class CamelSupport {
     public static final String CAMEL_SERVICE_BASE_PATH = 
"META-INF/services/org/apache/camel";
     public static final String CAMEL_ROOT_PACKAGE_DIRECTORY = 
"org/apache/camel";
     public static final String CLASSPATH_PREFIX = "classpath:";
-    public static final String COMPILATION_JVM_TARGET = "17";
+    public static final String COMPILATION_JVM_TARGET = "21";
 
     private CamelSupport() {
     }
diff --git a/integration-tests/infinispan/pom.xml 
b/integration-tests/infinispan/pom.xml
index a42633960d..962c775da8 100644
--- a/integration-tests/infinispan/pom.xml
+++ b/integration-tests/infinispan/pom.xml
@@ -119,22 +119,6 @@
                 <skipTests>true</skipTests>
             </properties>
         </profile>
-        <profile>
-            <id>jdk17-build</id>
-            <activation>
-                <jdk>[17,)</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <configuration>
-                            <argLine>--add-opens 
java.base/java.util=ALL-UNNAMED --add-opens 
java.base/java.util.concurrent=ALL-UNNAMED</argLine>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
     </profiles>
 
 </project>
diff --git a/pom.xml b/pom.xml
index 6949c2cff1..7bb61b524f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -292,9 +292,9 @@
         
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
         <!-- maven-compiler-plugin -->
-        <maven.compiler.source>17</maven.compiler.source>
-        <maven.compiler.target>17</maven.compiler.target>
-        <maven.compiler.release>17</maven.compiler.release>
+        <maven.compiler.source>21</maven.compiler.source>
+        <maven.compiler.target>21</maven.compiler.target>
+        <maven.compiler.release>21</maven.compiler.release>
 
         <!-- maven-enforcer-plugin -->
         <min-maven-version>3.8.2</min-maven-version>

Reply via email to