O que esperar do JSF 2.0

O lançamento

Acaba de ser lançado a Reference Implementation (RI) Beta do JSF2.0. Com o nome de Mojarra, continuando com o mesmo nome da versão 1.2 da implementação da Sun,  a nova especificação está trazendo diversas melhorias e acertos em relação as versões anteriores, nesta versão realmente há muitas features interessantes e que alavancará a produtividade no desenvolvimento com JavaServer Faces.

As features

Entre as diversas features e melhorias, existem algumas que eu gostaria de destacar:

  • Um novo ciclo de vidas no lado cliente (browser), ou seja, agora será bem mais fácil integrar e criar componentes com frameworks e APIs javascript como ExtJS ou Yahoo API, quem sabe em breve não vejamos um Ext4JSF por aí? Além do mais será mais rápido e prático implementar interfaces do tipo “on a single page interface web application“, já que todo o processamento da interface gráfica ficará no lado cliente!
  • Escopos de conversação, finalmente!! Feature esta que realmente fazia (faz?) falta ao se desenvolver com JSF, atualmente somos obrigados a se utilizar de frameworks ou componentes como Myfaces Tomahawk, JBoss Seam, Spring Annotation entre outros.
  • Agora teremos “Zero Configuration“, ou seja, esqueça faces-config.xml, esqueça web.xml !! Provavelmente configuraremos tudo por annotations.
  • Outra feature necessária e que também fazia uma falta em tanto é a Exception Handler, agora depois de um erro lançado poderemos encaminhar o usuário para uma página de erro.
  • Annotations, e muitas annotations para declarar artefatos como managed bean, componentes, regras de navegação etc.
  • Suporte a templating, algo próximo no estilo do Facelets.
  • Suporte a submissão com método HTTP GET, ou seja, bookmarking.
  • Agora com AJAX nativo no ciclo de vida. A incompatibilidade entre os conjuntos de componentes será absurdamente menor, já que a falta de uma especificação AJAX para JSF era um dos maiores causadores de tanta incompatibilidade!
  • Acessar recursos JSF através de REST, wow!
  • Agora será possível executar uma ação (método?) ao carregar uma página.
  • Salvar e recuperar parcialmente estados da árvore de componentes (Isso vai trazer uma melhoria significativa à perfomance).

Como podem ver, são inúmeras melhorias significativas -na minha opiniao- para esta nova versão, e provavelmente surjam outras já que a especificação está ainda em rascunho. No site da JCP há as demais features e melhorias sobre esta versão.

Concluindo

Uma das maiores dúvidas em relação a esta versão é a tal da retrocompatibilidade, eu particularmente acredito que a versão 2.0 do JSF será compatível com as versões anteriores (ao menos com a JSF1.2) pois há o envolvimento de Big Players na especificação e encarar as versões anteriores como legados descontinuados é algo radical demais para o mercado, porém é quase que certo que será necessário abrir mão da compatibilidade em algum ponto para aproveitar os recursos da nova versão.

Enfim, JSF2.0 está vindo com tudo. Enquanto aguardamos a versão final já podemos brincar com a versão beta do Mojarra para JSF2.0.