Class VersaoInfo

java.lang.Object
br.com.xadm.comum.web.VersaoInfo
All Implemented Interfaces:
io.micronaut.core.order.Ordered, io.micronaut.management.endpoint.info.InfoSource

@Singleton public class VersaoInfo extends Object implements io.micronaut.management.endpoint.info.InfoSource
Expõe a versão do app (de version.properties, gerado no build de cada app a partir de project.version) no endpoint /info, e oferece versaoAtual() estático para o /health e o log de startup.

A lib não fixa a versão: cada app gera seu version.properties no classpath (task Gradle gerarVersionProperties). A versão do @OpenAPIDefinition de cada app é o contrato HTTP da API, desacoplada desta — não confundir.

  • Field Summary

    Fields inherited from interface io.micronaut.core.order.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
    Construtor padrão.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    Diz em que forma o processo está rodando: binário native-image ou JVM.
    org.reactivestreams.Publisher<io.micronaut.context.env.PropertySource>
     
    static String
    Lê a versão do recurso version.properties no classpath.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.micronaut.core.order.Ordered

    getOrder
  • Constructor Details

    • VersaoInfo

      public VersaoInfo()
      Construtor padrão.
  • Method Details

    • versaoAtual

      public static String versaoAtual()
      Lê a versão do recurso version.properties no classpath.
      Returns:
      a versão (ex.: 1.4.2) ou "desconhecida" se ausente
    • flavorAtual

      public static String flavorAtual()
      Diz em que forma o processo está rodando: binário native-image ou JVM. Receita da constituição (versionamento §Receita): o binário native seta org.graalvm.nativeimage.imagecode; a JVM não. Serve pra distinguir dois deploys da MESMA versão (o JVM de fallback × o native) no /health.

      Avaliado a cada chamada, de propósito — nunca cacheado em static final. Sob native-image o inicializador estático pode rodar no build da imagem (onde a property vale "buildtime"), e o valor congelado passaria a depender da política de initialize-at-build-time em vez do runtime real. Uma leitura de property por request é irrelevante num liveness.

      Returns:
      "native" sob native-image, "jvm" na JVM
    • getSource

      public org.reactivestreams.Publisher<io.micronaut.context.env.PropertySource> getSource()
      Specified by:
      getSource in interface io.micronaut.management.endpoint.info.InfoSource