MuleSoft Meetup Curitiba - Como migrar para o JAVA 17.pdf
1.
Como migrar umaAPI
MuleSoft para o Java 17
Curitiba MuleSoft Meetup
February 12, 2025
6:00 PM (BRT)
#MuleSoftMeetup
2.
Solution Architect
Guilherme ZasyekiMachado
Como migrar uma
API MuleSoft para
o Java 17
Curitiba MuleSoft Meetup
June 4, 2025
5:00 PM (BRT)
#MuleSoftMeetup
3.
●Trabalho com MuleSofthá mais de 7 anos.
●Mais de 14 anos de experiencia na área de TI.
●Focada em desenvolvimento de APIs com MuleSoft.
●Atualmente trabalhando como Solution Architect na API
People.
Who I Am?
●Trabalho com MuleSofthá mais de 6 anos.
●Mais de 25 anos de experiencia na área de TI.
●Focada em desenvolvimento de APIs com MuleSoft.
●Atualmente trabalhando como Integration Analyst na
Avenue Code.
Who I Am?
Por que migrar?
OMuleSoft tem que seguir regras de compliance, e com Java 8 perdendo suporte oficial,
não tem escolha se não atualizar para continuar recebendo patchs de segurança. Com
isso, novas versões não mais suportarão Java 8.
9.
Java 17
A primeiraversão a suportar Java 17 foi a 4.6. Com isso vários conectores padrão foram
migrados para Java 17 e podem ser usados com poucas ou nunhuma adaptação. Porém
conectores que não são oficialmente suportados pela MuleSoft, tiveram que ser
migrados pela comunidade. Entre eles, alguns comumente utilizados:
JSON Logger Plugin: recomendamos o uso do conector
https://github.com/anypointcloud/json-logger, ao inves do conector original.
Error Handler Plugin: o conector original foi migrado para suportar Java 17, e o link
para o repositório é: https://github.com/mulesoft-catalyst/error-handler-plugin
10.
Connectors & Policies
Sevocê desenvolveu um custom connector ou uma custom policy, algumas bibliotecas
precisam ser atualizadas:
Bibliotecas externas precisam ser migradas para versões compativeis com Java 17.
O parent pom usado como referencia precisa ser atualizado.
Se o conector usa Java EE libs, a Mule mudou a forma como ele é exposto. Uma BOM
dependency deve ser adicionada ao projeto.
Old New
error.errorType.asString error.errorType.namespace++ ":" ++ error.errorType.identifier
error.muleMessage error.errorMessage
error.errors error.childErrors
error.muleMessage.typedAttributes.statusCode error.errorMessage.attributes.statusCode
error.errorMessage.typedValue is used to get the http request connector response
payload incase the http request returns error like 500, 400 etc.
error.errorMessage.payload is used to get http request connector response payload
Error Handling
13.
Demo
Walkthrough de umprojeto migrado para Java 17.
Connectors
Error Handler
Parent Pom
Mule Maven plugin alterações no pipeline Java 17.