Skip to content

Migrazione a Jackson 3 della conversione RPT/RT e dei client OpenAPI generati - #109

Merged
pintorig merged 1 commit into
mainfrom
chore/jackson3-rpt-rt
Oct 12, 2026
Merged

pintorig merged 1 commit into
mainfrom
chore/jackson3-rpt-rt

Conversation

@pintorig

Copy link
Copy Markdown
Member

Cosa cambia

Rimuove gli ultimi usi diretti di Jackson 2 (com.fasterxml.jackson.databind/core/module) dal progetto.

  • RptRtJsonConverter / PagoPaDateModule: passano a Jackson 3 (tools.jackson) e al modulo tools.jackson.module:jackson-module-jakarta-xmlbind-annotations. Il mapper è costruito con JsonMapper.builderWithJackson2Defaults(): Jackson 3 cambia alcuni default (per esempio ordina le proprietà alfabeticamente), e così il JSON prodotto resta identico. READ_ENUMS_USING_TO_STRING e WRITE_DATES_AS_TIMESTAMPS passano ai nuovi EnumFeature/DateTimeFeature.
  • Client generati govpay-stampe-client e bizevents-client: aggiunti useSpringBoot4 e useJackson3, come già in govpay-ec-client. Le classi di supporto generate (RFC3339*) dipendevano da jackson-databind 2.
  • Test: RptRtJsonConverterTest e StampePayloadContractTest usano Jackson 3. Il secondo converte ora il payload con un mapper Jackson 3 (findAndAddModules), lo stesso tipo che usa l'applicazione.

Verifica

  • Output invariato: prima della migrazione ho salvato l'output del convertitore (toRtJson, toRtMap, toRptJson) su 4 tracciati di test (rt-sanp230.xml, rt-v2-ok.xml, rt-v2_2-ok.xml, rt-v2_2-ko.xml), ciascuno provato con tutte e 6 le versioni SANP. Dopo la migrazione l'output è identico byte per byte, comprese date, enum, null e ordine dei campi.
  • mvn clean test dopo il rebase su main: 1396 test, 0 failure.
  • Nessun import Jackson 2 nei sorgenti, né scritti a mano né generati.

Cosa resta di Jackson 2

  • jackson-annotations (com.fasterxml.jackson.annotation), che Jackson 3 continua a usare.
  • jackson-databind/dataformat-yaml/datatype-jsr310 2.x, transitivi di springdoc tramite swagger-core-jakarta: non sono usati dal codice del progetto e resteranno finché swagger-core non passa a Jackson 3.

@pintorig
pintorig merged commit 2ac2c96 into main Oct 12, 2026
7 checks passed
@pintorig
pintorig deleted the chore/jackson3-rpt-rt branch October 12, 2026 14:33
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