Skip to content

Conversation

@devin-ai-integration
Copy link

@devin-ai-integration devin-ai-integration bot commented Oct 16, 2025

chore: Update dependencies for Java 17 compatibility (Phase 1)

Summary

This PR updates key dependencies in preparation for Java 17 migration, as requested for Phase 1. Spring Boot remains at version 2.2.0.M6 (unchanged).

Changes:

  • Java version: 1117
  • Lombok: 1.18.41.18.30 (includes annotation processor path update)
  • H2 Database: 1.4.1972.1.214
  • Spock Framework: 1.2-groovy-2.52.3-groovy-3.0 (both spock-core and spock-spring)
  • gmavenplus-plugin: 1.6.21.13.1
  • Added explicit Groovy 3.0.9 dependency (required for Spock 2.3 compatibility)

Review & Testing Checklist for Human

🔴 CRITICAL - This PR cannot be fully verified locally due to tooling incompatibility:

Spring Boot 2.2.0.M6 (from 2019) predates Java 17 and its embedded tooling cannot handle Java 17 bytecode:

  • Maven plugin fails during repackage with "Unsupported class file major version 61"
  • JaCoCo 0.8.3 cannot instrument Java 17 classes, causing all 22 integration tests to fail
  • Only 11/111 tests could be verified (unit tests only)

Required verification steps:

  • Run full test suite (89 unit + 22 integration tests) in an environment with Java 17 support. Consider:

    • Temporarily updating Spring Boot to 2.5+ for testing purposes, OR
    • Running tests with -Djacoco.skip=true -Dspring-boot.repackage.skip=true to bypass tooling issues
  • Verify H2 Database compatibility - This is a major version jump (1.4.197 → 2.1.214, spanning 5+ years):

    • Check for schema/table compatibility issues
    • Verify SQL dialect changes don't break existing queries
    • Test database initialization and migrations
  • Test Spock Framework compatibility - Major upgrade (1.2 → 2.3) with Groovy version change (2.5 → 3.0):

    • Verify all Spock tests still pass
    • Check for test API changes that might affect test behavior
  • Run application end-to-end with Java 17 to ensure no runtime issues beyond tests

  • Decision required: Determine if Phase 2 (Spring Boot upgrade) should be prioritized sooner, as the current Spring Boot version blocks full verification of these changes

Notes

  • Code compiles successfully with Java 17
  • ArchUnit 0.9.3 shows warnings about Java 17 bytecode but tests still pass
  • No code changes were made; only dependency versions updated
  • This repository has no CI configured for automated verification

Link to Devin run: https://app.devin.ai/sessions/34a51ede9fd5477c9ea70ecaf21ab140
Requested by: Callum Miles (@callummiles)

- Update Java version from 11 to 17
- Update Lombok from 1.18.4 to 1.18.30 (Java 17 support)
- Update H2 Database from 1.4.197 to 2.1.214 (Java 17 compatible)
- Update Spock Framework from 1.2-groovy-2.5 to 2.3-groovy-3.0 (Java 17 compatible)
- Update gmavenplus-plugin from 1.6.2 to 1.13.1 (Groovy 3.0 support)

This prepares the project for Spring Boot upgrade in a future phase.
Spring Boot version remains at 2.2.0.M6 as intended.

Co-Authored-By: Callum Miles <cwmiles18@gmail.com>
@devin-ai-integration
Copy link
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Spock 2.3-groovy-3.0 requires Groovy 3.0, but Spring Boot 2.2.0.M6
manages an older Groovy version. This explicit version ensures
compatibility with the updated Spock Framework.

Co-Authored-By: Callum Miles <cwmiles18@gmail.com>
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.

1 participant