Repository navigation
[PHEE-366][PHEE-369] Add BOM + connector-common as multi-module core (Java 21 / SB 3.4 / Jakarta) - #1
Merged
Conversation
GiulioRinalduzzi
force-pushed
the
feat/add-bom-and-core
branch
from
July 17, 2026 11:24
6934d21 to
c6ec1b6
Compare
tdaly61
reviewed
Jul 21, 2026
GiulioRinalduzzi
force-pushed
the
feat/add-bom-and-core
branch
2 times, most recently
from
July 21, 2026 10:20
404d07c to
1bf0d69
Compare
Two modules published from one repo, one version line (2.0.0-SNAPSHOT):
- bom/: the Payment Hub BOM (java-platform) from ph-ee-start-here PR #27,
unchanged in content (48 dependencyManagement entries, pins Spring Boot 3.4 /
Camel 4 / Zeebe 8.4.17 / Jakarta EE 10), plus its bom-verification module
(resolves all 237 artifacts and fails if any javax.* remains).
- core/: the connector-common shared library from the Java 21 / Spring Boot 3.4
/ Jakarta migration branch (source identical: 182 classes, byte-for-byte the
same jar as the migrated ph-ee-connector-common). It now consumes the BOM
internally via platform(project(':bom')) - still platform(), not
enforcedPlatform, so no constraints leak into the published metadata.
- Maven coordinates are parameterized in gradle.properties:
org.mifos:paymenthub-ee-bom and org.mifos:paymenthub-ee-core.
- Test layer reconciled: the migration branch of connector-common did not run
its JUnit 5 tests (missing useJUnitPlatform, the smoke test lived on the
parallel chore/tests branch); this tree merges the two - main sources from
the migration branch (includes the JWSFilterStrategy defaults fix), test
enablement and MultiReadHttpServletRequestTest from chore/tests.
- Publishing target: Mifos JFrog (phee-gradle-local), credentials read at
publish time from MIFOS_ARTIFACTORY_USER/TOKEN env vars - nothing stored in
the repo.
- Root scaffold (README, LICENSE, CONTRIBUTING, .gitignore, .github,
.editorconfig) untouched.
Verified locally end-to-end before this PR: full build green on JDK 21 (tests
+ verifyBom), jar parity with the migrated connector-common (182 = 182
classes), both artifacts published to a local Artifactory sandbox, and two
real connectors (mock-payment-schema, mpesa) rebuilt against the new
coordinates and cold-start tested (Started, JWS interceptor classes present,
zero javax.* on the runtime classpath).
GiulioRinalduzzi
force-pushed
the
feat/add-bom-and-core
branch
from
July 21, 2026 10:55
1bf0d69 to
75237ce
Compare
- remove mavenLocal() from all three modules (reproducibility: the Tier 0
build must resolve the same way in CI and on any machine, not from ~/.m2)
- bom/build.gradle CRLF -> LF (the other modules and core's spotless are LF)
- core: drop redundant apply plugin: java/eclipse/checkstyle (already in the
plugins {} block; idea stays), replace the leftover 'Gradle init task' header
Validated: :core:compileJava + :bom:bom-verification:verifyBom green
(237 artifacts resolved, javax purity check passed) with JDK 21, no mavenLocal.
tdaly61
self-requested a review
July 23, 2026 04:46
tdaly61
approved these changes
Jul 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As agreed: the BOM (from ph-ee-start-here PR #27) and the migrated connector-common combined into this repo as one multi-module build, publishing two artifacts with one version line.
What's inside
coreconsumes the BOM internally viaplatform(project(':bom'))— stillplatform(), notenforcedPlatform, so no constraints leak into the published metadata (checked in the published.module: the BOM appears as a regular platform dependency, 0 inlined constraints).enforcedPlatform('org.mifos:paymenthub-ee-bom:2.0.0-SNAPSHOT')+implementation 'org.mifos:paymenthub-ee-core:2.0.0-SNAPSHOT'.phee-gradle-local, credentials read at publish time fromMIFOS_ARTIFACTORY_USER/MIFOS_ARTIFACTORY_TOKENenv vars — nothing stored in the repo.Notes for review
useJUnitPlatform(); the smoke test lived on the parallelchore/testsbranch, which in turn lacked the newerJWSFilterStrategydefaults fix). This tree merges the two: main sources from the migration branch, test enablement +MultiReadHttpServletRequestTestfromchore/tests. With this PR the two old branches don't need reconciling upstream anymore.gradle.properties— if you want different artifact names, it's a 2-line change.Tickets: PHEE-366 (connector-common), PHEE-369 (BOM).