Skip to content

chore(QTDI-589): upgrade Java source/target/release from 17 to 21#1242

Draft
thboileau wants to merge 13 commits into
masterfrom
copilot/QTDI-589_upgrade_java_21
Draft

chore(QTDI-589): upgrade Java source/target/release from 17 to 21#1242
thboileau wants to merge 13 commits into
masterfrom
copilot/QTDI-589_upgrade_java_21

Conversation

@thboileau

Copy link
Copy Markdown
Contributor
  • pom.xml: bump maven.compiler.source/target/release to 21
  • .tool-versions: update asdf java to adoptopenjdk-21.0.2+13.0.LTS

Requirements

  • Any code change adding any logic MUST be tested through a unit test executed with the default build
  • Any API addition MUST be done with a documentation update if relevant

Why this PR is needed?

What does this PR adds (design/code thoughts)?

AI generated code

https://internal.qlik.dev/general/ways-of-working/code-reviews/#guidelines-for-ai-generated-code

  • [] this PR has been written with the help of GitHub Copilot or another generative AI tool

thboileau and others added 13 commits June 18, 2026 15:19
- pom.xml: bump maven.compiler.source/target/release to 21
- .tool-versions: update asdf java to adoptopenjdk-21.0.2+13.0.LTS
equalsverifier 3.7.2 bundles an ASM version that cannot read Java 21
class files (major version 65), causing SchemaImplTest.checkEquals to
fail at runtime. 3.17.5 supports Java 21.
- Root pom: drop forceLegacyJavacApi=true on maven-compiler-plugin.
  Under JDK 21 the legacy javac API has a type-inference bug that
  resolves explicit imports colliding with java.lang.* in favour of
  java.lang.* — notably our org.talend.sdk.component.api.record.Record
  ended up compiled as java.lang.Record in module signatures (e.g.
  TalendFn#asFn), propagating ClassCastException-style failures into
  consumers and ITs at runtime. Lombok 1.18.30 works with the modern
  API, so the flag is no longer needed.
- Root pom: bump maven-shade-plugin 3.3.0 → 3.6.0 (ASM 9.6 supports
  Java 21 class file major version 65).
- nested-maven-repository: bump maven-dependency-tree 3.1.0 → 3.3.0
  and add exclusions on the retired maven-artifact-transfer:0.13.1
  to prune the legacy maven-core:3.0 / maven-aether-provider:3.0 /
  sonatype plexus-sec-dispatcher:1.3 chain that leaked into consumers'
  runtime classpath and produced intermittent ClassNotFound /
  NoSuchMethod errors in shrinkwrap-resolver / mima under Java 21.
- serialization-over-cluster IT: bump maven-failsafe-plugin
  3.0.0-M5 → 3.2.5. M5 dragged its own legacy Maven 3.0 stack into
  the surefire fork classpath, masking compile failures and producing
  non-deterministic ClassNotFoundException at boot.
@sonar-rnd

sonar-rnd Bot commented Jun 26, 2026

Copy link
Copy Markdown

Failed Quality Gate failed

  • 0.00% Coverage on New Code (is less than 80.00%)
  • 7 New Issues (is greater than 0)

Project ID: org.talend.sdk.component:component-runtime

View in SonarQube

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