Guia da Migração do Cloudsupport

A seguir estão os passos para atualização de versão da biblioteca nos microsserviços.

Para versão 1.10.0

  • Substituir:
    • Propriedade cloudsupport.security.jwt.matches porcloudsupport.security.jwt.paths
    • Propriedade cloudsupport.security.jwt.unsigned por cloudsupport.security.jwt.always-trust
    • Propriedades abaixo, se declaradas, por cloudsupport.error.conventions.enabled:

      cloudsupport.error.include-message-on-http-4xx
      cloudsupport.error.include-message-on-business-exception
      cloudsupport.error.hide-message-on-http-5xx
      cloudsupport.error.shorten-validation-errors
      cloudsupport.error.enable-web-tracking
      cloudsupport.jobs.save-stack-trace:false
      

Para versão 1.9.0

  • Utilizar Java 17 ou superior
  • Ajustar import de classes Javax conforme:
    • De javax.persistence para jakarta.persistence
    • De javax.annotation para jakarta.annotation
    • De javax.servlet para jakarta.servlet
    • De javax.inject para jakarta.inject
    • De javax.xml para jakarta.xml
  • Ajustar import de classes Cloudsupport conforme:
    • De cloudsupport.util para cloudsupport.utils
    • De cloudsupport.services.web.Uid para cloudsupport.services.Uid
  • Ajustar import de classes Swagger/Springdoc conforme:
    • De org.springdoc.api.annotations para org.springdoc.core.annotations
  • Remover anotação @EnableDefaultConfig
  • Remover referências à classe EnumItem
  • Refatorar conforme as mudanças no Cloudsupport:
    • Classe ResourceUtil renomeada para ResourceUtils
    • Classe ExceptionHelper renomeada para ExceptionUtils
    • Removido método getRootSummary(throwable, lines) de ExceptionUtils
    • Método UidGenerator.get().next() movido para UidGenerator.nextLong()
  • Migrar banco de dados do módulo de Jobs (rotinas) conforme:
    • Coluna key renomeada para paramKey na tabela jobParams
    • Coluna value renomeada para paramValue na tabela jobParams
  • Conferir se há impacto devido ao novo conjunto de configurações do profile cloudsupport-defaults.properties (foi simplificado), vide Changelog
  • Sugere-se remover o arquivo local logging.xml e adotar o exemplo do arquétipo (vide application-local.properties)
  • Sugere-se considerar a nova versão do arquétipo que contém exemplos de controle de acesso com OIDC, melhor utilização do Swagger, com CommonMark, e uso do @Valid

Para versão 1.8.0

  • Ajustar os arquivos de profile application*.properties e/ou application*.yml conforme:
    • Renomear propriedade cloudsupport.jobs.repositoryJdbc.tablePrefix para cloudsupport.jobs.repository.jdbc.tablePrefix (padrão é "")
    • Remover demais propriedades cloudsupport.jobs.repositoryJdbc.*
    • Adicionar propriedade cloudsupport.jobs.repository=memory|jdbc (padrão é memory)
    • Adicionar propriedade cloudsupport.jobs.scheduling.enabled=true|false (padrão é false)
  • Alterar referências de jobManager.listJobNames() para listRegistryEntries()
  • Referências de jobExecution.get<CampoStatus> retoram String em vez de enum
  • Referências de jobExecution.get<CampoData> retoram java.util.Date em vez de OffsetDateTime

Para versão 1.7.0

  • Alterar referências de jobExecution.<operacao>() para jobManager.<operacao>(jobExecution)
  • Alterar referências de jobManager.getRunningJobs() para listRunningJobs()
  • Ajustar Jobs que herdam de BaseBatchProducerConsumerJob e BaseContinuousProducerConsumerJob:
    • Herdar da nova classe BaseProducerConsumerJob
    • Implementar shouldProduceMore() se desejar ativar a produção periódica
    • Implementar queueThreshold() para configurar o limiar do buffer que dispara nova produção
    • Implementar productionRetryDelay() para configurar o atraso (não blocante) entre produções
  • Remover referências a BaseJob.sleep() e BaseJob.elapsed()
  • Alterar referências de /healthReadiness para /healthreadiness em implantações Kubernetes

Para versão 1.6.0

  • Remover parâmetro jobName na ocorrências de BaseSchedule.runJob()

Para versão 1.4.0

  • Ajustar os arquivos de profile application*.properties e/ou application*.yml conforme:
    • Renomear propriedades cloudsupport.remote.* para cloudsupport.remotes.*
    • Renomear propriedades cloudsupport.job.* para cloudsupport.jobs.*
  • Ajustar import de classes Cloudsupport conforme:
    • De cloudsupport.business para cloudsupport.services
    • De cloudsupport.business.job para cloudsupport.services.jobs
    • De cloudsupport.business.ws para cloudsupport.services.web
    • De cloudsupport.remote para cloudsupport.remotes
  • Refatorar estrutura de pacotes da aplicação conforme:
    • De [...].business para [...].services
    • De [...].business.job para [...].services.jobs
    • De [...].business.ws para [...].services.web
    • De [...].remote para [...].remotes
    • De [...].persistence.entity para [...].persistence.entities
    • De [...].persistence.converter para [...].persistence.converters

Para versão 1.3.0

  • Ajustar os arquivos de profile application*.properties e/ou application*.yml conforme:
    • Renomear propriedades app.remote.route.* para cloudsupport.remote.route.*
    • Renomear propriedades app.job.repositoryJdbc.* para cloudsupport.job.repositoryJdbc.*