Skip to content

build(deps): modernize shaded stack — DBCP2, Adventure 5, mysql 9, H2 2 - #13

Merged
owengregson merged 2 commits into
mainfrom
deps/dbcp2-modernize
Jul 9, 2026
Merged

build(deps): modernize shaded stack — DBCP2, Adventure 5, mysql 9, H2 2#13
owengregson merged 2 commits into
mainfrom
deps/dbcp2-modernize

Conversation

@owengregson

Copy link
Copy Markdown
Owner

Ships the newest version of every shaded dependency, downgraded through the existing jvmdg pipeline (build-high variant tweak for deps declaring a high JVM floor). First-party v52/v57/v61 tiers untouched; the only new tier is versions/21 for the relocated Adventure-5 originals.

Changes

  • HikariCP 4.0.3 → Apache Commons DBCP2 2.14.0 (latest). DBCP2's newest release is Java-8-native → drops into the v52 base tier with no jvmdg tricks. Removes the HikariCP pin. StorageBoot swaps to BasicDataSource.
  • slf4j pin removed — DBCP2 logs via bundled commons-logging.
  • Adventure 4.26.1 → 5.2.0 (build-high): consumer TargetJvmVersion→21, jvmdg downgrades v65→v52, v65 originals ride versions/21. Zero .java change.
  • mysql-connector-j 8.0.33 → 9.7.0.
  • H2 1.4.200 → 2.2.224 — the latest Java-8-native H2 line. Schema + MODE=MySQL clears 2.x reserved words with no NON_KEYWORDS. Beta: fresh DB, no on-disk migration.

Three pins removed (HikariCP, slf4j; H2 unpinned from 1.4.x to the latest Java-8 line). Full clean build + all 7 verification gates + full test suite green locally. Jar 10.68 → 11.73 MB.

🤖 Generated with Claude Code

…ysql 9, H2 2

Ship the newest version of every shaded dependency and let the jvmdg pipeline
(that already downgrades our own bytecode) downgrade it too, with a build-high
variant tweak for deps that declare a high JVM floor. First-party v52/v57/v61
tiers untouched (options.release stays 17); the only new tier is versions/21 for
the relocated Adventure-5 originals.

- HikariCP 4.0.3 → Apache Commons DBCP2 2.14.0 (latest). DBCP2's newest release
  is Java-8-native, so it drops into the v52 base tier with no jvmdg tricks —
  REMOVES the HikariCP pin. StorageBoot swaps HikariConfig/HikariDataSource →
  BasicDataSource (maxTotal, setUrl, close()-quietly). Its optional slf4j/cglib
  bridges and the JTA-managed datasource are guarded/dead: strip the managed
  package + servlet-container cleaner (javax/ HARD), ignore org/slf4j+net/sf/cglib.
- slf4j-nop pin REMOVED — DBCP2 logs via bundled commons-logging.
- Adventure 4.26.1 → 5.2.0 (build-high): 5.x pins jvm.version=21; raise the
  consumer TargetJvmVersion to 21 (variant selection only), jvmdg downgrades its
  v65 bytecode to v52 and keeps v65 originals under versions/21. Zero .java change.
  verifyDowngrade extended to accept the versions/21 modern-dep tier (rejects any
  first-party leak or ≤v61 class there).
- mysql-connector-j 8.0.33 → 9.7.0 (io/opentelemetry guarded-optional ignored).
- H2 1.4.200 → 2.2.224 — the latest Java-8-native H2 line (2.3.x needs Java 11 and
  jvmdg can't resolve its excluded tools/Server on downgrade). Schema + MODE=MySQL
  clears 2.x reserved words with no NON_KEYWORDS (full-DDL storage tests pass).
  Beta: fresh DB, no 1.4.200 on-disk migration.

Full clean build + all 7 gates + full test suite green. Jar 10.68 → 11.73 MB.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 9, 2026 03:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

…ise heap

CI (real environment) exposed that Adventure 5.x's build-high path forces jvmdg
to shim far more modern-JDK APIs, and its stub set composes non-deterministically
with the versions/13 + versions/21 tiers — green locally, but verifyJdk8Api
flagged ~17 missing base-tree jvmdg stubs in CI. Revert the Adventure 5 + build-
high pieces (TargetJvmVersion tweak, versions/21 verifyDowngrade handler); hold
Adventure at the latest 4.x (Java-8-native, base tier) until a deterministic
multi-tier stub merge lands. The other modernizations stand:

- HikariCP → Apache Commons DBCP2 2.14.0 (HikariCP + slf4j pins removed)
- H2 1.4.200 → 2.2.224 (latest Java-8-native line)
- mysql-connector-j 8.0.33 → 9.7.0

The larger dep set (H2 2.2.224 especially) pushed jvmdg's shade past its internal
timeout under the full parallel build; raise the daemon heap 3g → 6g so it
completes comfortably (ubuntu-latest runners have 16g). Clean build reproducibly
green; full test suite green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 9, 2026 04:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@owengregson
owengregson merged commit 82e158c into main Jul 9, 2026
8 of 14 checks passed
@owengregson
owengregson deleted the deps/dbcp2-modernize branch July 9, 2026 04:02
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