David Delabassee, evangelista de software da Oracle, apresentou no JavaOne América Latina 2015 as possíveis novidades que teremos para o Java EE 8.
Dentre as áreas de melhorias da plataforma Java EE, as principais mudanças esperadas para a nova versão ocorreram principalmente na:
- Melhoria da camada web e uso do HTML5;
- Facilidade no desenvolvimento das aplicações corporativas;
- Infraestrutura das aplicações na nuvem.
Para a camada web temos APIs novas e atualizadas como a JSON-B, nova API que converte Java para objetos JavaScript e vice versa, como por exemplo:
// Parse de JSON para objeto Java. Produto produto = jsonb.fromJson(new File("produtos.json", Produto.class)); // Parse de objeto Java para JSON. jsonb.toJson(produto, new File("produto.json"));
A API JSON-P (JSON Processing) 1.1 é usada para referenciar e manipular conteúdo JSON. Através da classe JsonPointer é realizado operações como adicionar, atualizar, remover, entre outros, e com JsonPatch podemos manipular arrays, adicionar, remover, mover, copiar, filtrar e testar de objetos JSON.
A nova API para camada de visualização chamada MVC 1.0 utilizará na camada de modelo CDI, Bean Validation, JPA, entre outros; para camada de view por padrão haverá JSF e JSP, mas já há suporte de outros mecanismos como Freemaker, Mustach e Velocity; e o controle será feito com base no JAX-RS.
Na API Servlet 4.0 novas funcionalidades incluem priorização de stream, push pelo servidor e a migração do HTTP 1.1 para o HTTP 2
Como melhorias na plataforma Java EE, haverá alteração na API JMS, pois atualmente no MessageDriveBean há um código muito verboso como, por exemplo:
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName="connectionFactoryLookup", propertyValue="jms/myConn"), @ActivationConfigProperty(propertyName="destinationLookup", propertyValue="jms/myQueue"), @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue")}) public class MyMDB implements MessageListener { public void onMessage(Message message) { // extrai e processa o corpo da mensagem. } }
Tendo que informar nomes de classes como Strings, nova versão do JMS 2.1 facilitará a criação de novos MDBs, tanto ao especificar o tipo de fila como ao informar as configurações ou usar os próprios padrões da API como, por exemplo:
@MessageDriven public class MyMessageBean implements JMSMessageDriveBean { @JMSListener(lookup = "java:global/Trades", type = JMSListener.Type.QUEUE) public void processTrade(TextMessage tradeMessage) { // processa a mensagem. } }
As mudanças na nova versão do CDI 2.0 incluem modularidade, eventos síncronos e assíncronos e ordem de execução dos eventos.
A nova versão do Java EE 8 também está endereçando alguns desafios relacionados a infraestrutura das aplicações na nuvem, com a nova versão da API Java EE Management 2.0 e a nova Java EE Security 1.0 que agora suportará autorização via interceptadores de CDI.