Olá,
com a contribuição da comunidade, apontando diversos bugs e dando sugestões, foi lançado o VRaptor 3.0.2,
com vários bugfixes e um jeito mais fácil de gerar JSON e XML como resultado das lógicas:
import static br.com.caelum.vraptor.view.Results.*;
//...
result.use(json()).from(usuario).include("roles").exclude("password").serialize();
vai gerar uma saída parecida com:
{"usuario": {
"login": "lucascs"
"email": "lucas.cavalcanti@caelum.com.br"
"roles": ["ADMIN", "USER"]
}}
o método include e o exclude são opcionais, e por padrão o VRaptor vai serializar só os campos primitivos
(String, números, datas).
Esse suporte a JSON e XML ainda é inicial e básico, idéias para melhorá-lo são muito bem vindas.
Além disso foram criados CustomProviders para o Hibernate e JPA, que já registram as fábricas de
Session/EntityManager, e um interceptador que controla transações, chamados HibernateCustomProvider e JPACustomProvider.
Para usá-los, basta colocar no web.xml:
<context-param>
<param-name>br.com.caelum.vraptor.provider</param-name>
<param-value>br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider</param-value>
</context-param>
ou para JPA:
<context-param>
<param-name>br.com.caelum.vraptor.provider</param-name>
<param-value>br.com.caelum.vraptor.util.jpa.JPACustomProvider</param-value>
</context-param>
Dentre os bugfixes podemos destacar:
- suporte a containers servlet 2.4, como Oracle Container 10.1.3.1
- Results.referer() agora implementa View
- content-type agora é exposto pelo File/InputStream Download
- o retorno do método agora é incluido no result quando acontece um forward.
- os parâmetros da requisição são mantidos quando acontece um erro de validação.
- lançando exceção quando o paranamer não consegue achar os metadados dos parâmetros,
assim é possível se recuperar desse problema.
Mais uma vez gostaria de agradecer a todos os que mandaram sugestões e apontaram bugs, principalmente ao
garcia-jj, lavieri e Mário Peixoto.
Downloads em: http://vraptor.caelum.com.br/download.jsp
Documentação em: http://vraptor.caelum.com.br/documentacao
[]'s