Guia da Migração - Cloudsupport
A seguir estão os passos para atualização de versão da biblioteca nos microsserviços.
Para versão 1.18.0
- Remover em
application.propertiesa linhaspring.profiles.include=cloudsupport,cloudsupport-defaults, pois as propriedades padrões são aplicadas automaticamente. - Remover nos profiles a linha
logging.level.org.springdoc.core.events=error, não mais necessária. - Ajustar método
SecurityUtils.getSemanticLogginInCoreAttrs()paragetLoggedInCoreAttrs(). -
Para um log limpo em produção, sugere-se configurar o nível root como WARN e o pacote
cloudsupportcomo INFO:logging.level.root=warn logging.level.cloudsupport=info
Para versão 1.16.0
- Conferir documentação do Spring Boot devido ao upgrade 3.3 para 3.5:
Ref: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.4-Release-Notes
Ref: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.5-Release-Notes - Caso utilize o lookup Log4j
k8s:, verifique a documentação do projetofabric8io, pois a implementação do lookup agora é fornecida por esta extensão.
Ref: https://github.com/fabric8io/kubernetes-client/blob/main/doc/KubernetesLog4j.md
Para versão 1.15.0
-
Por segurança, os endpoints de OpenAPI e Swagger agora são inativos por padrão. Para habilitá-los, inclua nos profiles:
# Documentation springdoc.swagger-ui.enabled=true springdoc.api-docs.enabled=true - Os endpoints Actuator agora seguem o padrão do Spring Boot, que expõe somente
/actuator/healthsem details. -
Os endpoints de gerenciamento do módulo Cloudsupport Jobs são providos via extensão do Actuator, sob a identificação
cloudsupportjobs. Evite publicá-los na porta padrão do container, por motivo de segurança. Exemplo:# Actuator management.server.port=38080 management.endpoints.web.exposure.include=cloudsupportjobs[,...] - Esta versão configura os probes Actuator de liveness e de readiness para Kubernetes nos caminhos
/liveze/readyzrespectivamente, ativados automaticamente pelo Spring Boot caso o ambiente K8s seja detectado. A ativação pode ser forçada viamanagement.endpoint.health.probes.enabled=true.
Para versão 1.10.0
- Substituir:
- Propriedade
cloudsupport.security.jwt.matchesporcloudsupport.security.jwt.paths - Propriedade
cloudsupport.security.jwt.unsignedporcloudsupport.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
- Propriedade
Para versão 1.9.0
- Utilizar Java 17 ou superior
- Ajustar import de classes Javax conforme:
- De
javax.persistenceparajakarta.persistence - De
javax.annotationparajakarta.annotation - De
javax.servletparajakarta.servlet - De
javax.injectparajakarta.inject - De
javax.xmlparajakarta.xml
- De
- Ajustar import de classes Cloudsupport conforme:
- De
cloudsupport.utilparacloudsupport.utils - De
cloudsupport.services.web.Uidparacloudsupport.services.Uid
- De
- Ajustar import de classes Swagger/Springdoc conforme:
- De
org.springdoc.api.annotationsparaorg.springdoc.core.annotations
- De
- Remover anotação
@EnableDefaultConfig - Remover referências à classe
EnumItem - Refatorar conforme as mudanças na biblioteca Cloudsupport:
- Classe
ResourceUtilrenomeada paraResourceUtils - Classe
ExceptionHelperrenomeada paraExceptionUtils - Removido método
getRootSummary(throwable, lines)deExceptionUtils - Método
UidGenerator.get().next()movido paraUidGenerator.nextLong()
- Classe
- Migrar banco de dados do módulo de Jobs (rotinas) conforme:
- Coluna
keyrenomeada paraparamKeyna tabelajobParams - Coluna
valuerenomeada paraparamValuena tabelajobParams
- Coluna
- 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.xmle adotar o exemplo do arquétipo (videapplication-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*.propertiese/ouapplication*.ymlconforme:- Renomear propriedade
cloudsupport.jobs.repositoryJdbc.tablePrefixparacloudsupport.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)
- Renomear propriedade
- Alterar referências de
jobManager.listJobNames()paralistRegistryEntries() - Referências de
jobExecution.get<CampoStatus>retoramStringem vez de enum - Referências de
jobExecution.get<CampoData>retoramjava.util.Dateem vez deOffsetDateTime
Para versão 1.7.0
- Alterar referências de
jobExecution.<operacao>()parajobManager.<operacao>(jobExecution) - Alterar referências de
jobManager.getRunningJobs()paralistRunningJobs() - Ajustar Jobs que herdam de
BaseBatchProducerConsumerJobeBaseContinuousProducerConsumerJob:- 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
- Herdar da nova classe
- Remover referências a
BaseJob.sleep()eBaseJob.elapsed() - Alterar referências de
/healthReadinesspara/healthreadinessem implantações Kubernetes
Para versão 1.6.0
- Remover parâmetro
jobNamena ocorrências deBaseSchedule.runJob()
Para versão 1.4.0
- Ajustar os arquivos de profile
application*.propertiese/ouapplication*.ymlconforme:- Renomear propriedades
cloudsupport.remote.*paracloudsupport.remotes.* - Renomear propriedades
cloudsupport.job.*paracloudsupport.jobs.*
- Renomear propriedades
- Ajustar import de classes Cloudsupport conforme:
- De
cloudsupport.businessparacloudsupport.services - De
cloudsupport.business.jobparacloudsupport.services.jobs - De
cloudsupport.business.wsparacloudsupport.services.web - De
cloudsupport.remoteparacloudsupport.remotes
- De
- Refatorar estrutura de pacotes da aplicação conforme:
- De
[...].businesspara[...].services - De
[...].business.jobpara[...].services.jobs - De
[...].business.wspara[...].services.web - De
[...].remotepara[...].remotes - De
[...].persistence.entitypara[...].persistence.entities - De
[...].persistence.converterpara[...].persistence.converters
- De
Para versão 1.3.0
- Ajustar os arquivos de profile
application*.propertiese/ouapplication*.ymlconforme:- Renomear propriedades
app.remote.route.*paracloudsupport.remote.route.* - Renomear propriedades
app.job.repositoryJdbc.*paracloudsupport.job.repositoryJdbc.*
- Renomear propriedades