A versão final do framework Jersey 2.0 para Web Services RESTful foi lançada recentemente trazendo nova API cliente, suporte a hipermídia, e filtros e interceptadores, assim como suporte a clientes e serviços assíncronos. O Jersey 2.0 é a implementação de referência da especificação JAX-RS 2.0 (JSR 339), lançada no final de maio de 2013.
O framework Jersey passou por grande refatoração para acomodar as mudanças significativas trazidas pela JAX-RS 2.0, incluindo:
- API cliente para comunicação com serviços RESTful ou qualquer outro Web Service exposto via protocolo HTTP. Essa nova API da JAX-RS foi construída com base nos conceitos da API proprietária do Jersey 1.x. Os desenvolvedores já familiarizados com a API cliente do Jersey 1.x não terão problemas para migrar para a nova versão.
- Suporte a hipermídia com classes relacionadas a links, para a construção de hiperlinks de acordo com o conceito HATEOAS (por exemplo, links para recursos relacionados ou links para alterar o estado do recurso).
- Filtros e interceptadores que possibilitam monitorar e modificar mensagens de entrada e saída, tanto do lado cliente quanto do lado servidor. Podem ser utilizados para realizar autenticação ao receber requisições, e para adicionar cabeçalhos nas respostas.
- Clientes e serviços assíncronos. A vazão no lado servidor pode ser aumentada utilizando-se menos recursos, mediante a liberação da thread inicial e tratamento da requisição de forma assíncrona. Quando concluído o tratamento da requisição, uma nova thread é obtida para devolver a resposta. Já do lado cliente, a carga pode ser reduzida de forma similar, com o envio da requisição de maneira assíncrona. Uma referência de Future é utilizada para receber a resposta ao final do processamento.
O Jersey 2.0 sofreu uma grande refatoração que resultou em muitas incompatibilidades entre a versão 1.x e a 2.0. A equipe do projeto acrescentou um capítulo exclusivo na documentação sobre a migração entre as duas versões. Além disso, Marek Potociar, um dos desenvolvedores na equipe do Jersey, escreveu uma visão geral da versão 2.0 do framework, apontando as maiores mudanças.
A equipe do projeto Jersey também trocou seu sistema de controle de versões para o Git e moveu o repositório de fontes para o GitHub com intuito de simplificar as contribuições da comunidade ao projeto.
Para mais informações sobre Jersey e o novo JAX-RS, consulte os slides da apresentação de Arun Gupta, evangelista Java da Oracle; e os exemplos de códigos disponíveis em uma série de artigos sobre o Java EE 7.