0009 — Bump para Micronaut 5 e JDK 25¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-30 · Decidido em: 2026-06-30
Contexto¶
A stack da casa (engenharia/stack.md)
padronizou em JDK 25 LTS + Micronaut 5. O auth-service estava em Micronaut
4.10 / JDK 21, atrás do padrão — e desalinhado dos demais apps (ex.
bi-transporte-xls, já em Micronaut 5 / JDK 25). A decisão
0001 (Micronaut sobre Spring/Quarkus)
continua de pé; muda só a versão.
Decisão¶
Migrar para Micronaut Platform 5.0.3 (BOM), JDK 25 (toolchain Gradle) e
Gradle 9.5.1. Plugin io.micronaut.application 5.0.0; version do projeto
movido para gradle.properties (padrão da casa, lido pela /xadm-release).
Consequências¶
- Jackson 3 (
tools.jackson.*) passa a ser o backend do serde — oJwtService.jwksJson()deixou de usarcom.fasterxml.jackson.databind.ObjectMapper(Jackson 2) e serializa o JWKS via nimbus (JSONObjectUtils). Os DTOs já eram@Serdeable, então as views HTTP não precisaram mudar. - O JVM que roda o Gradle precisa ser 25 (o plugin Micronaut 5.0.0 exige) —
não basta o toolchain. Localmente:
JAVA_HOMEapontando para um JDK 25. Em CI/Docker já é JDK 25 (ci-java:25,eclipse-temurin:25). micronaut-http-server-nettyemicronaut-inject-java(AP) passam a ser declarados explicitamente; Flyway fixado em 12.x (PG 18); Testcontainers com versões explícitas (oplatform()do BOM não propaga sob Gradle 9).- O plugin/bloco de AOT foi removido (otimização opcional, não usada pela casa).
Alternativas consideradas¶
- Permanecer em Micronaut 4 / JDK 21: mantém o app divergente da stack da casa
e do ferramental de CI (imagens
ci-java:25). Descartado.