Nesta semana, a Eclipse Foundation anunciou o lançamento da nova versão do Jakarta EE, a versão 9.1. O objetivo dessa versão foi tornar a plataforma Jakarta EE totalmente compatível com o Java SE 11. Importante frisar que foi mantida total compatibilidade com o Java SE 8.
Vale aqui uma boa contextualização, para quem não tem acompanhado as notícias do mundo Java. O pessoal das antigas vai lembrar da diferenciação entre Java SE (Standard Edition, o Java que sempre instalamos no computador) e Java EE (Enterprise Edition, um conjunto de especificações que eram implementadas por servidores de aplicação). Essas plataformas eram controladas pela Sun, e passaram a ser controladas pela Oracle, quando esta última comprou a primeira.
A plataforma Java SE viu uma evolução tremenda nos últimos anos. O ritmo de lançamento das novas versões passou a ser semestral, com pequenos avanços em cada versão. Assim, o Java SE agora se encontra na versão 16, com expectativa de lançamento da versão 17 em setembro (as novas versões são lançadas nos meses de março e setembro de cada ano). Foram instituídas também as chamadas versões LTS (Long Term Support), sendo a mais atual nesse sentido a versão 11 (por isso o interesse da Eclipse Foundation em fazer a nova versão do Jakarta EE compatível com o Java 11, a versão LTS mais atual do Java SE).
Já no mundo Java EE, a evolução era lenta e muito controlada pela Oracle. A comunidade reclamava e pressionava por um processo mais aberto. Logo após o lançamento da versão 8, a Oracle decidiu ceder para a comunidade o controle, que acabou sendo transferido para a Eclipse Foundation (sim, a mesma que desenvolve a IDE, mas que também toca inúmeros outros projetos importantes). Não sem antes criar alguma confusão: eles mantiveram o controle de propriedade intelectual na marca Java, o que, na prática, impedia a evolução das especificações sem uma mudança drástica (mais sobre essa mudança já já).
A primeira versão da plataforma Jakarta EE lançada pela Eclipse Foundation foi a versão 8, que era totalmente compatível com a versão 8 do Java EE. Um lançamento mais ou menos simbólico, eu diria. Aconteceu em setembro de 2019. A mudança drástica que falei no parágrafo anterior ficou para a próxima versão.
A mudança drástica veio com a versão 9 da plataforma, lançada em novembro de 2020. Consistiu na mudança do nome de todos os pacotes relativos às especificações. Todo pacote que se chamava javax.*, na nova versão 9 agora se chama jarkarta.*. Exemplo: as classes, interfaces e anotações da JPA, agora chamada de Jakarta Persistence, ficam no pacote jakarta.persistence.*. E esta nova versão já está sendo implementada por diversos produtos: IBM Open Liberty, Eclipse Glassfish, Red Hat Wildfly, dentre outros.
Percebam o trabalho que teremos para migrar nossas aplicações para esta plataforma - mudar todos os imports relativos ao Java EE. Claro que é algo apenas trabalhoso, sem muita complexidade, entretanto um trabalho relevante. Porém, algo importante para a comunidade, que se torna totalmente independente do controle da Oracle e suas marcas registradas, e pode ditar o ritmo desejado de inovação na plataforma. Esse lançamento da versão 9.1 aponta para um ritmo interessante, com versões major anuais e algumas versões minor pelo caminho. Um ritmo necessário para a plataforma Jakarta EE recuperar o tempo perdido e buscar a inovação que tantos sempre desejaram.
Um abraço e até o próximo post!
Comentários
Postar um comentário