Class InfoController

java.lang.Object
br.com.xadm.comum.web.InfoController

@Controller("/info") @Secured("isAnonymous()") public class InfoController extends Object
/info de fallback com a versão em runtime — shape plano {versao}, paralelo ao HealthController flat. Existe porque o InfoEndpoint do micronaut-management (alimentado pelo VersaoInfo InfoSource) não registra a rota sob native-image (AOT) → GET /info dá 404 no binário native enquanto funciona no jar. Este controller flat responde igual nos dois (jar e native).

Sem @Requires de propósito — a condição é o que quebrava sob AOT. A tentativa anterior (@Requires(property = "endpoints.info.enabled", value = "false")) NÃO sobrevive ao native-image: o @Requires de classe num @Controller é avaliado em build-time pelo AOT e a bean/rota é podada — mesmo com a property false em runtime, GET /info ficava 404 sob native (provado jar×native no e2e-central; o jar registrava, o native não). Por isso o controller é incondicional: a rota entra no grafo AOT sempre, idêntica jar↔native.

Contrato do consumidor: o app que usa a comum-web desliga o management (endpoints.info.enabled: false e endpoints.health.enabled: false) — norma da casa pra observabilidade native-safe. Sem isso, o /info do management (default-on) e este flat colidem (Micronaut responde 400 em rota duplicada). A comum-web assume esse contrato.

  • Constructor Details

    • InfoController

      public InfoController()
      Construtor padrão.