Skip to content

[ON HOLD] Camel 22996 drop java17 - #3110

Open
apupier wants to merge 4 commits into
apache:mainfrom
apupier:CAMEL-22996-dropJava17
Open

apupier wants to merge 4 commits into
apache:mainfrom
apupier:CAMEL-22996-dropJava17

Conversation

@apupier

@apupier apupier commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

Description

Camel core now requires Java 21 (apache/camel#27943), so this PR raises the minimal Java version of the Kamelet Catalog from 17 to 21 (CAMEL-22996).

The change is split into one commit per area:

  1. Maven compiler level – maven.compiler.source/target/release and the maven-compiler-plugin source/target set to 21 in the root pom.xml, camel-kamelets-catalog, kamelets-maven-plugin and camel-kamelets-crds. <proc>full</proc> in the CRDs module is kept (needed since JDK 23).
  2. CI and release infrastructure
    • GitHub Actions: ci-build (build + deploy), validate, java-tests, main-push-regen, generate-sbom-main now use Java 21.
    • integration-tests: the default JDK for the Maven build and the Citrus tests is now 21; JDK 25 is still installed for the Camel JBang launcher.
    • jitpack.yml: openjdk17 → openjdk21.
    • Jenkinsfile.deploy / Jenkinsfile.ppc64le: jdk_17_latest → jdk_21_latest.
  3. Documentation – AGENTS.md (CLAUDE.md is a symlink to it) and tests/camel-kamelets-itest/README.md now state Java 21.
  4. Changelog – "Breaking changes" entry in the Unreleased section.

Why

The Kamelet libraries are consumed by Camel runtimes that now run on Java 21+. Keeping a Java 17 baseline is no longer useful.

Note: the baseline was already moved to 21 once (#2750, #2760) and reverted (#2780), because Camel core had gone back to 17 and downstream consumers hit class-version mismatches (65.0 vs 61.0). This PR must be merged only once the Camel version this repository depends on (camel.version) is built for Java 21.

Breaking change

The Kamelet libraries (camel-kamelets, camel-kamelets-catalog, camel-kamelets-crds, kamelets-maven-plugin) are now compiled with release 21 and can no longer be used with Java 17. The Kamelet YAML files are unchanged.

Testing

  • ./mvnw clean install -DskipTests -DskipITs succeeds; javac output shows [debug release 21].
  • ./mvnw verify -pl '!tests/camel-kamelets-itest' succeeds (catalog tests: 20 run, 0 failures).
  • Local validation was done with JDK 25 using release 21 (the local JDK 21 has no javac).
  • Not verified locally: the Citrus integration tests, the GitHub Actions workflows, the jdk_21_latest label on the ASF Jenkins agents and the JitPack openjdk21 build. Reviewers, please check that CI is green and that the Jenkins label exists.

Checklist

  • The Java version is updated in the build, CI, release and documentation files
  • No Kamelet YAML changes, so no nav.adoc/SBOM regeneration is needed
  • CHANGELOG.md updated
  • CI is green
  • Merged only after the Camel dependency is built for Java 21

Description generated by IBM Bob 2.2.1 on behalf of Aurélien Pupier

Camel core now requires Java 21, so the Kamelet libraries must be
compiled for Java 21 as well.

- root pom.xml: maven.compiler.source/target/release and the
  maven-compiler-plugin pluginManagement source/target set to 21
- camel-kamelets-catalog and kamelets-maven-plugin: compiler plugin
  source/target set to 21
- camel-kamelets-crds: maven.compiler.source/target/release set to 21
  (<proc>full</proc> is kept, it is required since JDK 23)

Co-authored-by: IBM Bob 2.2.1
Signed-off-by: Aurélien Pupier <apupier@ibm.com>
Camel core now requires Java 21, so CI, release and snapshot deployment
must run on a Java 21 JDK instead of Java 17.

- GitHub Actions (ci-build build and deploy jobs, validate, java-tests,
  main-push-regen, generate-sbom-main): setup-java version 17 -> 21
- integration-tests: the default JDK for the Maven build and the Citrus
  tests is now 21 (JDK 25 is still installed for the Camel JBang
  launcher); comments updated accordingly
- jitpack.yml: openjdk17 -> openjdk21
- Jenkinsfile.deploy and Jenkinsfile.ppc64le: default JDK_NAME
  jdk_17_latest -> jdk_21_latest

Co-authored-by: IBM Bob 2.2.1
Signed-off-by: Aurélien Pupier <apupier@ibm.com>
Camel core now requires Java 21, so the documented prerequisites are
updated to match the build.

- AGENTS.md (CLAUDE.md is a symlink to it): Java 17+ -> Java 21+
- tests/camel-kamelets-itest/README.md: required Java 17 -> Java 21

Co-authored-by: IBM Bob 2.2.1
Signed-off-by: Aurélien Pupier <apupier@ibm.com>
Add a breaking change entry to the Unreleased section: the minimal Java
version is raised from 17 to 21, following Camel core, so the Kamelet
libraries can no longer be used with Java 17.

Co-authored-by: IBM Bob 2.2.1
Signed-off-by: Aurélien Pupier <apupier@ibm.com>
@davsclaus

Copy link
Copy Markdown
Contributor

We need a 4.23.0 release first

@apupier apupier changed the title Camel 22996 drop java17 [ON HOLD] Camel 22996 drop java17 Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants