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.