Skip to content

PHEE-370: Migrate to Spring Boot 3.4 / JDK 21 / Jakarta EE 10 / Camel 4 (via Mifos Platform BOM)#174

Draft
GiulioRinalduzzi wants to merge 1 commit into
openMF:devfrom
GiulioRinalduzzi:migrate/sb34-jakarta-jdk21
Draft

PHEE-370: Migrate to Spring Boot 3.4 / JDK 21 / Jakarta EE 10 / Camel 4 (via Mifos Platform BOM)#174
GiulioRinalduzzi wants to merge 1 commit into
openMF:devfrom
GiulioRinalduzzi:migrate/sb34-jakarta-jdk21

Conversation

@GiulioRinalduzzi

Copy link
Copy Markdown

What

Migrate this connector to Spring Boot 3.4 / JDK 21 / Jakarta EE 10 / Apache Camel 4. All versions come from the Mifos Platform BOM via enforcedPlatform(...) instead of being pinned by hand.

Surgical migration: javax.* -> jakarta.*, versions moved to the BOM, and the minimum changes needed to compile and run. No feature work, no refactoring.

Main changes

  • build.gradle: Spring Boot plugin -> 3.4, io.spring.dependency-management, enforcedPlatform('org.mifos.platform:mifos-platform-bom:1.0.0-SNAPSHOT'); hand-pinned versions removed. ph-ee-connector-common -> 2.0.0-SNAPSHOT where used.
  • javax.* -> jakarta.* imports.
  • Dockerfile base image -> 21-jre.
  • HttpClient 4->5; HttpStatusCode fix (Spring 6); camel-test->JUnit 5. Validated on gazelle: Camel 4.4.1 with 59 routes up; a real bulk payment completes 4/4.

Heads-up for review

  • Depends on the Mifos Platform BOM (and ph-ee-connector-common:2.0.0-SNAPSHOT where used), not yet published to the official Mifos JFrog. Until then it builds against a local JFrog, so CI here will not pass until those are published upstream.

Draft - opening so we can review it together.

- 17 javax->jakarta imports (servlet, annotation) + 2 fully-qualified javax.servlet refs in PreflightCorsFilter; import order fixed by repo spotless
- build.gradle: versions governed by enforcedPlatform(mifos-platform-bom:1.0.0-SNAPSHOT); SB 2.6.2/2.5.2 mix -> 3.4.4, Camel 3.4 -> 4.4.1, Zeebe 8.1.23 -> 8.4.17, Java 17 -> 21
- ph-ee-connector-common 1.8.1-gazelle -> 2.0.0-SNAPSHOT (Jakarta line)
- HttpClientConfigurerTrustAllCACerts ported HttpClient 4 -> 5 (camel-http 4 passes HC5 builder); same trust-all behaviour
- AuthorizationWorker: Spring 6 getStatusCode() returns HttpStatusCode -> converted to keep HttpStatus signature
- camel-test (JUnit4-only, gone in Camel 4) -> camel-test-junit5
- Removed com.jfrog.artifactory plugin (deploy strategy reworked ecosystem-wide), spotless plugin jar wrongly on app classpath, and legacy org.apache.commons:commons-io:1.3.2 (duplicate of commons-io:commons-io already present)
- AWS SDK v1 kept pinned (used by storage code; v1->v2 is a rewrite, out of scope). retrofit converter-gson aligned 2.4.0 -> 2.9.0 to match the other retrofit modules
- Note: 'test { useJUnitPlatform() }' is commented out on dev (tests silently skipped on baseline) - left as-is, enabling it is a separate concern
- Gradle wrapper 7.3 -> 8.10.2
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