Skip to content

Add Java 25 support#318

Merged
bitterpanda63 merged 3 commits into
mainfrom
feat/support-java-25
Jul 8, 2026
Merged

Add Java 25 support#318
bitterpanda63 merged 3 commits into
mainfrom
feat/support-java-25

Conversation

@Mishenevd

@Mishenevd Mishenevd commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

What

  • Byte Buddy 1.15.111.18.11 (JDK 25 / class-file v69 support)
  • Version gate > 24> 25 in Agent.java
  • Java 25 added to unit-test + e2e CI matrices

Testing

Locally on JDK 25: agent loads, installs instrumentation, and blocks a SQL injection against a Spring Boot app compiled to Java 25 (v69) bytecode. No-Zen instance lets it through.

Summary by Aikido

Security Issues: 0 Quality Issues: 0 Resolved Issues: 0

⚡ Enhancements

  • Added Java 25 support by upgrading Byte Buddy and agent gate.
  • Added Java 25 to unit and end-to-end CI matrices.
  • Excluded Spring Boot 2.7 from Java 25 CI matrix runs.
  • Bumped sample-app Gradle wrappers and updated Kotlin and Groovy versions.

🔧 Refactors

  • Upgraded root Gradle wrapper to 9.6.1 and migrated shadow plugin.
  • Moved sourceCompatibility and targetCompatibility into the java{} project convention.

More info

Bump Byte Buddy 1.15.11 -> 1.18.11 (adds JDK 25 / class-file v69 support)
and raise the max supported Java version gate from 24 to 25. Also add Java 25
to the unit-test and end-to-end CI matrices.

Verified locally on JDK 25: the agent loads, installs instrumentation, and
blocks a SQL injection against a Spring Boot app compiled to Java 25 (v69)
bytecode.
@Mishenevd Mishenevd force-pushed the feat/support-java-25 branch from 798fbd9 to 43f5d64 Compare July 8, 2026 10:22
@codecov

codecov Bot commented Jul 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

dmitrii added 2 commits July 8, 2026 12:51
Gradle 8.14 cannot run on JDK 25, which broke the unit-test CI matrix rows
for Java 25. Bump the root Gradle wrapper to 9.6.1, migrate the shadow plugin
from com.github.johnrengelman.shadow 7.1.0 to com.gradleup.shadow 9.5.1
(the former is incompatible with Gradle 9), and move sourceCompatibility/
targetCompatibility into the java{} extension (project-level convention was
removed in Gradle 9).

Verified: full unit suite builds and runs on both JDK 21 and JDK 25 with the
same baseline result (only the known env-specific failures remain).
The e2e matrix rows for Java 25 failed because each sample app's own Gradle
8.14 wrapper cannot run on JDK 25. Bump the sample-app wrappers to Gradle
9.6.1 and, where the language compiler itself needs JDK 25 support:
- JavalinPostgres: migrate shadow plugin to com.gradleup.shadow 9.5.1
- SpringMVCPostgresKotlin / JavalinMySQLKotlin: Kotlin -> 2.2.20
- SpringMVCPostgresGroovy: Groovy -> 4.0.28

Exclude SpringBoot2.7Postgres from the Java 25 row: Spring Boot 2.7 (legacy
javax stack) does not support JDK 25; its javax coverage stays on 17-24.

Verified locally on JDK 25: SpringBootPostgres, SpringBootMySQL and
SpringBootHyperSQL block a SQL injection end-to-end. Apps that don't block in
the local setup behave identically on JDK 21 (local DB/env, not a Java 25
regression); CI provisions the databases and validates the full matrix.
@bitterpanda63 bitterpanda63 merged commit 6ee5432 into main Jul 8, 2026
272 checks passed
@bitterpanda63 bitterpanda63 deleted the feat/support-java-25 branch July 8, 2026 12:00
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