Make changes as planned (use OpenRewrite if helpful, verify results)
Add TODOs for any deferred work, e.g., temporary workarounds
Review Code Changes (per rules in Progress Template): Verify sufficiency (all required changes present) and necessity (no unnecessary changes, functional behavior preserved, security controls maintained).
Add missing changes and revert unnecessary changes. Document any unavoidable behavior changes with justification.
Verify with specified command/JDK:
Steps 1-N (Setup/Upgrade): Compilation must pass (including both main and test code, fix immediately if not). Test failures acceptable — document count.
Final Validation Step: Achieve Upgrade Success Criteria — iterative test & fix loop until 100% pass (or ≥ baseline). NO deferring. See ../rules/troubleshooting.md when stuck.
Build: mvn clean test-compile (or ./gradlew compileTestJava for Gradle)
Test: mvn clean test (or ./gradlew test for Gradle)
Commit on the java-upgrade/{RUN_ID} branch with message format (if git available; otherwise, log details in progress.md):