Java 25 / WildFly 40 / Jakarta EE 11 upgrade#31
Conversation
9e741f8 to
c58dc22
Compare
c58dc22 to
bb5ea18
Compare
| @@ -75,4 +74,12 @@ private void assertCourtList(final JsonObject courtListJson) { | |||
| assertThat(courtListJson.getString("lastExported"), is(lastExported.toString())); | |||
| } | |||
|
|
|||
| private static com.fasterxml.jackson.databind.JsonNode toJsonNode(final String json) { | |||
| try { | |||
| return new com.fasterxml.jackson.databind.ObjectMapper().readTree(json); | |||
There was a problem hiding this comment.
This is expensive, need to use existing objectmappers
There was a problem hiding this comment.
Good catch, thanks — fixed. We were creating a new ObjectMapper() per call, which is expensive. Now reusing a single producer-configured mapper (new ObjectMapperProducer().objectMapper()) rather than constructing one, in line with the rule that ObjectMappers come from the producer (injected in production, obtained from the producer in tests).
Applied across everything this branch introduced:
- Production:
PublishCourtListEventListenernow@Injects theObjectMapperinstead ofnew ObjectMapper().readTree(...). - Tests: the
toJsonNodehelpers (this file + HearingToJsonConverterTest, RangeSearchQueryTest, HearingQueryViewTest, NotesServiceTest, JsonEntityFinderTest, PersistenceTestsIT) reuse a single producer-supplied mapper;PublishCourtListEventListenerTestuses an@Spyof the producer mapper so@InjectMockswires a real one.
Note: there are pre-existing new ObjectMapper() usages in ~16 event-listener unit tests and one production util (SlotsToJsonStringConverter, a static method) that predate this branch — happy to sweep those too if you'd like, but left them out to keep this PR scoped to the upgrade changes.
6c05ae7 to
5a1bbd8
Compare
Upgrades cpp-context-listing to Java 25, WildFly 40 and Jakarta EE 11. Proven end-to-end: - Full reactor builds green under mm (enforcer on, no SNAPSHOT dependencies) — all 25 modules. - runIntegrationTests.sh green: build -> WildFly image -> Liquibase -> PersistenceTestsIT 56/56 -> deploy -> pong -> 4/4 healthchecks -> deployed-app IT suite 222 tests, 0 failures, 0 errors, 3 skipped. Key changes: - javax -> jakarta across all modules; beans.xml -> EE 4.0; persistence.xml -> Jakarta 3.0. - DeltaSpike -> JPA for all 6 viewstore repositories; jsonb via Hibernate 6 native @JdbcTypeCode(SqlTypes.JSON). - Hibernate 6 native-query fixes (typed-null varchar casts on optional filters; uuid alias casts). - Test harnesses moved off OpenEJB/DeltaSpike to real-Postgres HibernateTestEntityManagerProvider (PersistenceTestsIT + repo ITs). - glassfish jaxb-runtime + XHIBIT namespace-prefix mapper; jakarta.xml.bind on RAML/messaging generator plugins. - junit-platform-launcher aligned to 1.14.3; command-handler test expectations aligned to ZoneOffset.UTC. Spike for the listing/hearing team — items to finalise before production (documented in commit history / decision notes): - hibernate.enable_lazy_load_no_trans=true vs fetch-joins/DTOs for the hearings query path. - Hearing native-load-only virtual-column entity design (drove the query and PersistenceTestsIT changes). - MI schema-contract test (mireportdata-listing-event-listener) disabled until mi-reportdata ships a Jakarta build.
5a1bbd8 to
bc70f09
Compare
Java 25 / WildFly 40 / Jakarta EE 11 upgrade — cpp-context-listing
Upgrades the listing context to Java 25, WildFly 40 and Jakarta EE 11. This is a spike to prove the upgrade end-to-end and hand to the listing/hearing team, who decide the final production approach for the documented items below.
Proven
mm(enforcer on, no SNAPSHOT dependencies) — all 25 modules.runIntegrationTests.shgreen end-to-end: build → WildFly image → Liquibase → PersistenceTestsIT 56/56 → deploy →pong→ 4/4 healthchecks → deployed-app IT suite 222 tests, 0 failures, 0 errors, 3 skipped.Key changes
javax→jakartaacross all modules;beans.xml→ EE 4.0;persistence.xml→ Jakarta 3.0.@JdbcTypeCode(SqlTypes.JSON).varcharcasts on optional filters;uuidalias casts).HibernateTestEntityManagerProvider(PersistenceTestsIT+ repository ITs).jaxb-runtime+ XHIBITNamespacePrefixMapper;jakarta.xml.bindon RAML/messaging generator plugins.junit-platform-launcheraligned to 1.14.3; command-handler test expectations aligned toZoneOffset.UTC.For the listing/hearing team to finalise before production
hibernate.enable_lazy_load_no_trans=truevs fetch-joins/DTOs for the hearings query path.Hearingnative-load-only virtual-column entity design (drove the query +PersistenceTestsITchanges).mireportdata-listing-event-listener) is disabled until mi-reportdata ships a Jakarta build — a re-enable marker is left inlisting-event-listener/pom.xml.NamespacePrefixMapperto the deployment (XHIBIT marshalling).