This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new cafd3228ab Require JDK 21 as the minimum supported Java version
cafd3228ab is described below
commit cafd3228abba5375e3e96d9631b88d120177ad1e
Author: James Netherton <[email protected]>
AuthorDate: Thu Oct 1 11:31:51 2026 +0100
Require JDK 21 as the minimum supported Java version
* Require JDK 21 as the minimum supported Java version
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Update Java API documentation links to JDK 21
Co-Authored-By: Claude Opus 5.5 <[email protected]>
---------
Co-authored-by: Claude Opus 5.5 <[email protected]>
---
.github/workflows/camel-master-cron.yaml | 40 +++++++------------
.github/workflows/check-dependency-convergence.yml | 4 +-
.github/workflows/ci-build.yaml | 46 +++++++---------------
.github/workflows/generate-sbom-main.yml | 2 +-
.github/workflows/jdk21-build.yaml | 33 ----------------
.github/workflows/pr-validate.yml | 6 +--
.github/workflows/quarkus-lts-ci-build.yaml | 24 +++++------
.github/workflows/quarkus-master-cron.yaml | 28 ++++++-------
.github/workflows/semeru17-build.yaml | 34 ----------------
.sdkmanrc | 4 +-
AGENTS.md | 2 +-
Jenkinsfile | 2 +-
Jenkinsfile.sonarcloud | 2 +-
.../ROOT/pages/contributor-guide/index.adoc | 2 +-
.../ROOT/pages/reference/extensions/core.adoc | 2 +-
.../ROOT/pages/reference/extensions/ldap.adoc | 2 +-
.../modules/ROOT/pages/user-guide/first-steps.adoc | 2 +-
.../quarkus/core/deployment/util/CamelSupport.java | 2 +-
extensions/ldap/runtime/src/main/doc/usage.adoc | 2 +-
.../quarkus/component/seda/it/SedaRoutes.java | 9 +----
.../camel/quarkus/component/seda/it/SedaTest.java | 2 +-
.../component/seda/it/SedaVirtualThreadsIT.java | 10 +----
.../component/seda/it/SedaVirtualThreadsTest.java | 7 +---
integration-tests/infinispan/pom.xml | 16 --------
pom.xml | 6 +--
.../quarkus/maven/UpdateBuildItemsDocMojo.java | 2 +-
.../doc-templates/extension-doc-page.adoc | 2 +-
.../cq-perf-regression-sample-base/pom.xml | 4 +-
28 files changed, 82 insertions(+), 215 deletions(-)
diff --git a/.github/workflows/camel-master-cron.yaml
b/.github/workflows/camel-master-cron.yaml
index 5e7d00ab44..9bc3e9790e 100644
--- a/.github/workflows/camel-master-cron.yaml
+++ b/.github/workflows/camel-master-cron.yaml
@@ -50,11 +50,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Set Workflow Build ID
run: |
[ ! -d ~/build-data ] && mkdir -p ~/build-data
@@ -80,22 +80,10 @@ jobs:
- name: Setup Maven Cache
id: maven-cache
uses: ./.github/actions/setup-maven-cache
- - name: Set up JDK 25 for the Camel build
- # Camel compiles its Java 21/25 multi-release sources (e.g. the
virtual thread aware CamelThreadFactory)
- # only when built on JDK 21+, so build it like the Camel releases are
built (JDK 25)
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
- with:
- distribution: 'temurin'
- java-version: '25'
- name: Build Camel
run: |
cd ../camel
./mvnw ${CQ_MAVEN_ARGS} clean install -Dquickly -T1C
- - name: Restore JDK 17 after the Camel build
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
- with:
- distribution: 'temurin'
- java-version: '17'
- name: Update extension metadata
run: |
./mvnw -N cq:update-quarkus-metadata ${CQ_MAVEN_ARGS}
@@ -184,11 +172,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
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
@@ -265,11 +253,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd extensions-core && mvn test
run: |
cd extensions-core
@@ -359,11 +347,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd integration-tests-jvm && mvn clean test
run: |
cd integration-tests-jvm
@@ -410,11 +398,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd integration-tests && mvn clean verify
shell: bash
run: |
@@ -455,11 +443,11 @@ jobs:
with:
cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
download-maven-repo: 'true'
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Rebase branch main onto camel-main
run: |
git config --local user.email
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -526,11 +514,11 @@ jobs:
needs: native-tests
runs-on: ubuntu-latest
steps:
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #
v7.0.1
with:
diff --git a/.github/workflows/check-dependency-convergence.yml
b/.github/workflows/check-dependency-convergence.yml
index ca6e1dfa62..a316613ce8 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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #
v7.0.1
- name: Setup Maven Cache
diff --git a/.github/workflows/ci-build.yaml b/.github/workflows/ci-build.yaml
index 30b623f4a5..1d8ae20539 100644
--- a/.github/workflows/ci-build.yaml
+++ b/.github/workflows/ci-build.yaml
@@ -44,9 +44,7 @@ on:
- '.github/workflows/check-dependency-convergence.yml'
- '.github/workflows/alternate-jdk-build.yaml'
- '.github/workflows/generate-sbom-main.yml'
- - '.github/workflows/jdk21-build.yaml'
- '.github/workflows/jdk25-build.yaml'
- - '.github/workflows/semeru17-build.yaml'
- '.github/workflows/semeru21-build.yaml'
- '.github/workflows/label-issue.yaml'
- '.github/workflows/pr-validate.yml'
@@ -81,10 +79,8 @@ on:
- '.github/workflows/camel-master-cron.yaml'
- '.github/workflows/check-dependency-convergence.yml'
- '.github/workflows/generate-sbom-main.yml'
- - '.github/workflows/jdk21-build.yaml'
- '.github/workflows/jdk25-build.yaml'
- '.github/workflows/label-issue.yaml'
- - '.github/workflows/semeru17-build.yaml'
- '.github/workflows/semeru21-build.yaml'
- '.github/workflows/pr-validate.yml'
- '.github/workflows/quarkus-lts-ci-build.yaml'
@@ -135,12 +131,12 @@ jobs:
else
echo "run-checks=false" >> $GITHUB_OUTPUT
fi
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
if: steps.init.outputs.run-checks == 'true'
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #
v7.0.1
if: steps.init.outputs.run-checks == 'true'
@@ -219,11 +215,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Clone Camel
if: github.ref == 'refs/heads/camel-main' || github.base_ref ==
'camel-main'
run: |
@@ -247,25 +243,11 @@ jobs:
- name: Setup Maven Cache
id: maven-cache
uses: ./.github/actions/setup-maven-cache
- - name: Set up JDK 25 for the Camel build
- # Camel compiles its Java 21/25 multi-release sources (e.g. the
virtual thread aware CamelThreadFactory)
- # only when built on JDK 21+, so build it like the Camel releases are
built (JDK 25)
- if: github.ref == 'refs/heads/camel-main' || github.base_ref ==
'camel-main'
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
- with:
- distribution: 'temurin'
- java-version: '25'
- name: Build Camel
if: github.ref == 'refs/heads/camel-main' || github.base_ref ==
'camel-main'
run: |
cd ../camel
./mvnw ${CQ_MAVEN_ARGS} clean install -Dquickly -T1C
- - name: Restore JDK 17 after the Camel build
- if: github.ref == 'refs/heads/camel-main' || github.base_ref ==
'camel-main'
- uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
- with:
- distribution: 'temurin'
- java-version: '17'
- name: Detect PR Incremental Build
id: detect-incremental
if: github.event_name == 'pull_request' &&
!contains(github.event.pull_request.labels.*.name, 'ci/disable-incremental')
@@ -483,11 +465,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -577,11 +559,11 @@ jobs:
with:
ref: ${{ env.CHECKOUT_REF }}
fetch-depth: 0
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -679,11 +661,11 @@ jobs:
with:
ref: ${{ env.CHECKOUT_REF }}
fetch-depth: 0
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -731,11 +713,11 @@ jobs:
with:
ref: ${{ env.CHECKOUT_REF }}
fetch-depth: 0
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -784,11 +766,11 @@ jobs:
with:
ref: ${{ env.CHECKOUT_REF }}
fetch-depth: 0
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
diff --git a/.github/workflows/generate-sbom-main.yml
b/.github/workflows/generate-sbom-main.yml
index 947dc33dec..f63bb60931 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@3d3c42e5aac5ba805825da76410c181273ba90b1 #
v7.0.1
with:
diff --git a/.github/workflows/jdk21-build.yaml
b/.github/workflows/jdk21-build.yaml
deleted file mode 100644
index 15e8a4999c..0000000000
--- a/.github/workflows/jdk21-build.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-#
-# 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.
-#
-
-name: JDK 21 Build
-
-on:
- schedule:
- # Run every Sunday at 2 PM
- - cron: '0 14 * * SUN'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- jdk21-build:
- uses: ./.github/workflows/alternate-jdk-build.yaml
- with:
- jdk-version: '21'
diff --git a/.github/workflows/pr-validate.yml
b/.github/workflows/pr-validate.yml
index bacd92fc0a..1a0f2f3450 100644
--- a/.github/workflows/pr-validate.yml
+++ b/.github/workflows/pr-validate.yml
@@ -44,9 +44,7 @@ on:
- '.github/workflows/check-dependency-convergence.yml'
- '.github/workflows/alternate-jdk-build.yaml'
- '.github/workflows/generate-sbom-main.yml'
- - '.github/workflows/jdk21-build.yaml'
- '.github/workflows/jdk25-build.yaml'
- - '.github/workflows/semeru17-build.yaml'
- '.github/workflows/semeru21-build.yaml'
- '.github/workflows/label-issue.yaml'
- '.github/workflows/pr-validate.yml'
@@ -83,11 +81,11 @@ jobs:
run: |
echo "BRANCH_OPTIONS=-Poss-snapshots" >> $GITHUB_ENV
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
id: maven-cache
uses: ./.github/actions/setup-maven-cache
diff --git a/.github/workflows/quarkus-lts-ci-build.yaml
b/.github/workflows/quarkus-lts-ci-build.yaml
index 1fb214ee55..e86fb35eea 100644
--- a/.github/workflows/quarkus-lts-ci-build.yaml
+++ b/.github/workflows/quarkus-lts-ci-build.yaml
@@ -59,11 +59,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Build Quarkus
run: |
git clone --depth 1 --branch ${{github.event.inputs.branch}}
https://github.com/quarkusio/quarkus.git \
@@ -148,11 +148,11 @@ jobs:
sed -i
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
pom.xml
- name: Reclaim Disk Space
run: .github/reclaim-disk-space.sh
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -219,11 +219,11 @@ jobs:
- name: Set Quarkus SNAPSHOT Version
run: |
sed -i
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
pom.xml
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -303,11 +303,11 @@ jobs:
- name: Set Quarkus SNAPSHOT Version
run: |
sed -i
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
pom.xml
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -345,11 +345,11 @@ jobs:
shell: bash
run: |
sed -i
's/<quarkus.version>.*<\/quarkus.version>/<quarkus.version>${{github.event.inputs.branch}}.999-SNAPSHOT<\/quarkus.version>/'
pom.xml
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
@@ -382,11 +382,11 @@ jobs:
with:
ref: ${{ github.event.inputs.branch }}.x
fetch-depth: 0
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Setup Maven Cache
uses: ./.github/actions/setup-maven-cache
with:
diff --git a/.github/workflows/quarkus-master-cron.yaml
b/.github/workflows/quarkus-master-cron.yaml
index 1e4b8aa293..aee22d2526 100644
--- a/.github/workflows/quarkus-master-cron.yaml
+++ b/.github/workflows/quarkus-master-cron.yaml
@@ -50,11 +50,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Set Workflow Build ID
run: |
[ ! -d ~/build-data ] && mkdir -p ~/build-data
@@ -174,11 +174,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd extensions-core && mvn test
run: |
cd extensions-core
@@ -349,11 +349,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd integration-tests-jvm && mvn clean test
run: |
cd integration-tests-jvm
@@ -400,11 +400,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@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: cd integration-tests && mvn clean verify
shell: bash
run: |
@@ -445,11 +445,11 @@ jobs:
with:
cache-key: ${{ needs.initial-mvn-install.outputs.cache-key }}
download-maven-repo: 'true'
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Rebase branch main onto quarkus-main
run: |
git config --local user.email
"41898282+github-actions[bot]@users.noreply.github.com"
@@ -516,11 +516,11 @@ jobs:
needs: native-tests
runs-on: ubuntu-latest
steps:
- - name: Set up JDK 17
+ - name: Set up JDK 21
uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 #
v6.0.1
with:
distribution: 'temurin'
- java-version: '17'
+ java-version: '21'
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 #
v7.0.1
with:
diff --git a/.github/workflows/semeru17-build.yaml
b/.github/workflows/semeru17-build.yaml
deleted file mode 100644
index a1f4fb6cbd..0000000000
--- a/.github/workflows/semeru17-build.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-#
-# 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.
-#
-
-name: Semeru JDK 17 Build
-
-on:
- schedule:
- # Run every Saturday at 8 AM
- - cron: '0 8 * * SAT'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- semeru17-build:
- uses: ./.github/workflows/alternate-jdk-build.yaml
- with:
- jdk-version: '17'
- jdk-distribution: 'semeru'
diff --git a/.sdkmanrc b/.sdkmanrc
index 04a2ccdc3d..01cc37c7dd 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
-maven=3.9.15
+java=21.0.12+1.1-tem
+maven=3.9.16
mvnd=1.0.2
diff --git a/AGENTS.md b/AGENTS.md
index a709c84673..6cbbec8c7e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -28,7 +28,7 @@ Apache Camel Quarkus provides Quarkus extensions for Apache
Camel components, en
- Do NOT introduce Spring Boot or Spring unless explicitly required
## Technology Stack
-- Java 17+
+- Java 21+
- GraalVM 25+ / Mandrel 25+
- Maven 3.9.11+ (For convenience the maven wrapper is provided in the root
directory and can be invoked as `./mvnw` or `./mvnw.cmd`)
- Apache Camel 4.x, Quarkus 3.x. Check `pom.xml` for the current Camel, and
Quarkus versions used.
diff --git a/Jenkinsfile b/Jenkinsfile
index 97d03eda19..d3af3662f3 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 -T1C'
pipeline {
diff --git a/Jenkinsfile.sonarcloud b/Jenkinsfile.sonarcloud
index 62d57a97bb..e226c2d41a 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..e5639236b6 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/reference/extensions/core.adoc
b/docs/modules/ROOT/pages/reference/extensions/core.adoc
index 37d54bcc76..2abeeab68e 100644
--- a/docs/modules/ROOT/pages/reference/extensions/core.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc
@@ -519,7 +519,7 @@ that enabling statistics incurs a minor performance impact
under very heavy load
.About the Duration format
====
To write duration values, use the standard `java.time.Duration` format.
-See the
link:https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)[Duration#parse()
Java API documentation] for more information.
+See the
link:https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)[Duration#parse()
Java API documentation] for more information.
You can also use a simplified format, starting with a number:
diff --git a/docs/modules/ROOT/pages/reference/extensions/ldap.adoc
b/docs/modules/ROOT/pages/reference/extensions/ldap.adoc
index 159cdc58a7..60c30980d4 100644
--- a/docs/modules/ROOT/pages/reference/extensions/ldap.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/ldap.adoc
@@ -57,7 +57,7 @@ Configuration property should follow the pattern:
quarkus.camel.ldap.dir-contexts.<dirContextName>.<property>
----
-For more details, refer to the dirContext
https://docs.oracle.com/en/java/javase/17/docs/api/java.naming/javax/naming/directory/DirContext.html[Javadoc].
+For more details, refer to the dirContext
https://docs.oracle.com/en/java/javase/21/docs/api/java.naming/javax/naming/directory/DirContext.html[Javadoc].
The following options are available:
* initial-context-factory
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/extensions/ldap/runtime/src/main/doc/usage.adoc
b/extensions/ldap/runtime/src/main/doc/usage.adoc
index 4a94ae4929..bfb6ac5adc 100644
--- a/extensions/ldap/runtime/src/main/doc/usage.adoc
+++ b/extensions/ldap/runtime/src/main/doc/usage.adoc
@@ -8,7 +8,7 @@ Configuration property should follow the pattern:
quarkus.camel.ldap.dir-contexts.<dirContextName>.<property>
----
-For more details, refer to the dirContext
https://docs.oracle.com/en/java/javase/17/docs/api/java.naming/javax/naming/directory/DirContext.html[Javadoc].
+For more details, refer to the dirContext
https://docs.oracle.com/en/java/javase/21/docs/api/java.naming/javax/naming/directory/DirContext.html[Javadoc].
The following options are available:
* initial-context-factory
diff --git
a/integration-test-groups/foundation/seda/src/main/java/org/apache/camel/quarkus/component/seda/it/SedaRoutes.java
b/integration-test-groups/foundation/seda/src/main/java/org/apache/camel/quarkus/component/seda/it/SedaRoutes.java
index b8f14cb691..5c28ea6451 100644
---
a/integration-test-groups/foundation/seda/src/main/java/org/apache/camel/quarkus/component/seda/it/SedaRoutes.java
+++
b/integration-test-groups/foundation/seda/src/main/java/org/apache/camel/quarkus/component/seda/it/SedaRoutes.java
@@ -16,20 +16,13 @@
*/
package org.apache.camel.quarkus.component.seda.it;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
public class SedaRoutes extends RouteBuilder {
@Override
public void configure() throws Exception {
from("seda:virtualThreaded")
- .process(new Processor() {
- public void process(Exchange exchange) throws Exception {
- // Avoid Thread.isVirtual to maintain JDK 17
compatibility
-
exchange.getMessage().setBody(Thread.currentThread().getClass().getName());
- }
- })
+ .process(exchange ->
exchange.getMessage().setBody(Thread.currentThread().isVirtual()))
.to("seda:virtualThreadedResults");
}
}
diff --git
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaTest.java
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaTest.java
index 5e1df50b97..1a4a1473a8 100644
---
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaTest.java
+++
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaTest.java
@@ -46,7 +46,7 @@ class SedaTest {
RestAssured.get("/seda/virtualThreadedResults")
.then()
- .body(is(Thread.class.getName()))
+ .body(is("false"))
.statusCode(200);
}
}
diff --git
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsIT.java
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsIT.java
index 7920405eab..d4b4d5e58c 100644
---
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsIT.java
+++
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsIT.java
@@ -17,16 +17,8 @@
package org.apache.camel.quarkus.component.seda.it;
import io.quarkus.test.junit.QuarkusIntegrationTest;
-import org.junit.jupiter.api.Test;
@QuarkusIntegrationTest
class SedaVirtualThreadsIT extends SedaVirtualThreadsTest {
- /**
- * Overridden to remove JDK version restrictions as the JDK used in native
mode should be >= 25
- */
- @Override
- @Test
- void sedaExecutesOnVirtualThread() {
- super.sedaExecutesOnVirtualThread();
- }
+
}
diff --git
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsTest.java
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsTest.java
index a9961309aa..4ef03d31be 100644
---
a/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsTest.java
+++
b/integration-test-groups/foundation/seda/src/test/java/org/apache/camel/quarkus/component/seda/it/SedaVirtualThreadsTest.java
@@ -24,15 +24,12 @@ import io.quarkus.test.junit.QuarkusTest;
import io.restassured.RestAssured;
import io.restassured.http.ContentType;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledForJreRange;
-import org.junit.jupiter.api.condition.JRE;
-import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.is;
@QuarkusTestResource(value =
SedaVirtualThreadsTest.VirtualThreadsResource.class, restrictToAnnotatedClass =
true)
@QuarkusTest
class SedaVirtualThreadsTest {
- @EnabledForJreRange(min = JRE.JAVA_21)
@Test
void sedaExecutesOnVirtualThread() {
RestAssured.given()
@@ -43,7 +40,7 @@ class SedaVirtualThreadsTest {
RestAssured.get("/seda/virtualThreadedResults")
.then()
- .body(containsString("java.lang.VirtualThread"))
+ .body(is("true"))
.statusCode(200);
}
diff --git a/integration-tests/infinispan/pom.xml
b/integration-tests/infinispan/pom.xml
index eebe8c15d3..2f6fccb6c9 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 bf7de21b0b..97b123ff95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -295,9 +295,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>
diff --git
a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateBuildItemsDocMojo.java
b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateBuildItemsDocMojo.java
index 90b977d86b..d8754daa54 100644
---
a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateBuildItemsDocMojo.java
+++
b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateBuildItemsDocMojo.java
@@ -91,7 +91,7 @@ public class UpdateBuildItemsDocMojo extends
AbstractExtensionListMojo {
String projectVersion;
private final JavaParser javaParser = new JavaParser(
- new
ParserConfiguration().setLanguageLevel(ParserConfiguration.LanguageLevel.JAVA_17));
+ new
ParserConfiguration().setLanguageLevel(ParserConfiguration.LanguageLevel.JAVA_21));
@Override
public void execute() throws MojoExecutionException {
diff --git
a/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
b/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
index 4cbdb9cc8b..02933e1553 100644
---
a/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
+++
b/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
@@ -171,7 +171,7 @@ a|[=configDocItem.illustration]
[[[=anchor]]]`link:#[=anchor][[=configDocItem.ke
.About the Duration format
====
To write duration values, use the standard `java.time.Duration` format.
-See the
link:https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)[Duration#parse()
Java API documentation] for more information.
+See the
link:https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/time/Duration.html#parse(java.lang.CharSequence)[Duration#parse()
Java API documentation] for more information.
You can also use a simplified format, starting with a number:
diff --git a/tooling/perf-regression/cq-perf-regression-sample-base/pom.xml
b/tooling/perf-regression/cq-perf-regression-sample-base/pom.xml
index 8cd82103f0..66b98d751e 100644
--- a/tooling/perf-regression/cq-perf-regression-sample-base/pom.xml
+++ b/tooling/perf-regression/cq-perf-regression-sample-base/pom.xml
@@ -33,8 +33,8 @@
<!-- Let's not upgrade hyperfoil-maven-plugin beyond 0.27.x as long as
camel-quarkus supports JDK17:
https://github.com/apache/camel-quarkus/issues/8027 -->
<hyperfoil-maven-plugin.version>0.27.2</hyperfoil-maven-plugin.version>
<maven.compiler.parameters>true</maven.compiler.parameters>
- <maven.compiler.source>17</maven.compiler.source>
- <maven.compiler.target>17</maven.compiler.target>
+ <maven.compiler.source>21</maven.compiler.source>
+ <maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>