Mojarra (JSF RI) 2.0 FCS disponível

34 respostas
G

Acaba de sair oficialmente a versão 2.0 da implementação de referência do JSF.
As novidades eu já havia postado quando saiu a beta1, e são:

:arrow: o suporte a anotações
:arrow: implicit navigations
:arrow: ajax
:arrow: suporte a várias VDL (View Definition Language): a implementação deve ao menos suportar JSF e Facelets, sendo o Facelets o default
:arrow: uma forma nova, mais simples e mais robusta de se construir componentes com Facelets
:arrow: view scope
:arrow: custom scopes
:arrow: suporte à resources
:arrow: URL’s amigáveis (método GET)
:arrow: Integração com Bean Validation
:arrow: Além das novas funcionalidades que eu comentei acima (e umas que eu provavelmente esqueci de colocar nessa lista), o JSF 2 vai se beneficiar da nova versão da Unified EL (que sairá no JEE 6), passando a ter suporte a passagem de parâmetros nas expressões

Outros links:

https://javaserverfaces.dev.java.net/
https://javaserverfaces.dev.java.net/nonav/rlnotes/2.0.0/index.html
https://javaserverfaces.dev.java.net/maven2

34 Respostas

J

Bom dia,

Tivemos aqui em Paris uma conferencia ParisJUG sobre JSF 2.0 et Servlet 3.0 (na semana passada 13/10/2009) :

A onda estave presente um Spec leader JSF.

Algums links importantes :

PARLEYS : http://beta.parleys.com/

Não sei se existe um Parleys o equivalente em português para a CPLP ? talvez o JEDI-Brasil ?

Tem no PARLEYS uma messagem importante :

PARLEYS: The Java User Group Space is FREE for any JUG around the world.
Mail us and we’ll setup your JUG chanmel today so you can start publishing your presentations and share it with the community.

JSF AJAX Component Library Feature Matrix : http://www.ajaxjsf.com/

What?s New in JSF 2 ? By andyschwartz
http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/

Refcard JSF2 : http://refcardz.dzone.com/refcardz/javaserver-faces-20

Livro : Beginning Java EE 6 platform with Glassfish v3 ( Antonio Goncalves JugLeader http://www.parisjug.org/ )

Abraços

P

Gilliard, parabens pela noticia completa, elaborada, e cheia de links! Excelente trabalho, assim como seu blog!

JXTA, obrigado pelos links!

Enfim, uma ótima notícia!

M

Nossa eu quase comprei um livro de JSF semana passada. Decidi esperar por causa dos posts sobre a versão nova. Ainda bem que eu esperei. :stuck_out_tongue:

R

sera que ja tem uma versao do rich faces ou semelhante compativel pra nova versao ?

abrassss

R

Até que enfim saiu isso!
Demorou, e muito!

Espero que agora as APIs como o rich faces se atualizem rápido.

C

Alguem sabe se existe alguma vantagem em utilizar o RitchFaces no lugar do IceFaces ?

E alguem sabe se corrigiram o erro CHATO do Facelets quando voce faz redeploy com a biblioteca estando no LIB do TOMCAT ?

Y

Como so vou ter tempo pra ver os links todos com calma a noite, tem uma coisa que me deixou curioso:

Essa versao é compativel com as versoes anteriores?

R

Muito legal essas novidades do JSF. O bom é que quem utiliza o JBoss Seam já está habituado com algumas delas.

G

YvGa:
Como so vou ter tempo pra ver os links todos com calma a noite, tem uma coisa que me deixou curioso:

Essa versao é compativel com as versoes anteriores?

dá uma olhada aqui que explica certinho o esquema da compatibilidade.

Resumidamente é compatível sim. As principais diferenças em relação à compatibilidade é no Facelets incorporado ao JSF e não no JSF em si. No entanto ao perceber que você usa as classes antigas do facelets 1.1.x o facelets incorporado no JSF 2 não é startado, deixando rodar somente a versão antiga.

Depois de migrar os componentes para deixar de usar as classes do pacote com.sun.facelets, é só tirar os jars antigos e o novo facelets já sai rodando.

Realmente, com RichFaces + Seam a gente já aproveita de muitas dessas novidades. Mas como ainda tem muitos projetos que se limitam a usar somente as especificações, essas novidades são muito importantes :smiley:

J

Bom dia,

Não à duvida JSF e uma arquitetura muito “clean”.

sera que ja tem uma versão do Richfaces ou semelhante compativel pra nova versao ?

Richfaces 4.0 Alpha 1, IceFaces, PrimeFaces…

Alguem sabe se existe alguma vantagem em utilizar o RitchFaces no lugar do IceFaces ?
Atualmente, a maioria dos profissionais estão optando Richfaces

Para quem não esperimentou ainda JSF 2: JSF2HelloWorld

JSF e mesmo, muito simples de usar  ou seja  4  ficheiros de base  ( jsf-api.jar , jsf-impl.jar , jstl-api-1.2.jar , jstl-impl-1.2.jar)

a por seja no  lib/  de Tomcat6 o no WEB-INF/lib .  E o resto esta aqui : You can download the source code here.

Não esquecer o Bean Validation Framework o simplesmente meter em comentario : //import javax.validation.constraints.Pattern;

<a href="http://developinjava.com/features/47-enterprise-java/110-introduction-to-jsf-2-using-netbeans-and-glassfish.html" class="onebox" target="_blank">http://developinjava.com/features/47-enterprise-java/110-introduction-to-jsf-2-using-netbeans-and-glassfish.html</a>

Abroços

L

Sou do tempo ainda do JSF 1.1 e de como era padrão “malhar” esse framework.

Eu já brinquei com a versão 2.0, e percebi que retiraram muito “a encheção de saco” das versões anteriores, que agora não tem nada do XML que fica gigantesco, nada de Sessions para qualquer coisa, nada de sofrer com Ajax… Pena que o custo disso foi um framework extremamente complexo e que, possivelmente, pode não atender futuras inovações da web, como vídeo ou gráficos vetoriais (porque a JSF teima em encapsular tudo!).

Mais estranho de tudo isso: Porque os críticos calaram? Porque só fica nesse oba-oba de noobs que nunca aprenderam outro framework web? Será que aqueles que tanto se decepcionaram com framework em Java foram para Rails ou Django, e só sobraram os medianos?

Enfim, quando será que os javeiros aprenderão a apreciar as coisas simples, e a ignorar monstros “faz-tudo” como JSF?

G

JxtaNode:
Bom dia,

JSF e mesmo, muito simples de usar ou seja 4 ficheiros de base ( jsf-api.jar , jsf-impl.jar , jstl-api-1.2.jar , jstl-impl-1.2.jar) …

Usando facelets não são necessários os jars do jstl, e como o JSF 2 já tem facelets incorporado, só precisamos mesmo dos 2 jars: jsf-api.jar e jsf-impl.jar.

F

Leonardo3001:
Sou do tempo ainda do JSF 1.1 e de como era padrão “malhar” esse framework.

Eu já brinquei com a versão 2.0, e percebi que retiraram muito “a encheção de saco” das versões anteriores, que agora não tem nada do XML que fica gigantesco, nada de Sessions para qualquer coisa, nada de sofrer com Ajax… Pena que o custo disso foi um framework extremamente complexo e que, possivelmente, pode não atender futuras inovações da web, como vídeo ou gráficos vetoriais (porque a JSF teima em encapsular tudo!).

Mais estranho de tudo isso: Porque os críticos calaram? Porque só fica nesse oba-oba de noobs que nunca aprenderam outro framework web? Será que aqueles que tanto se decepcionaram com framework em Java foram para Rails ou Django, e só sobraram os medianos?

Enfim, quando será que os javeiros aprenderão a apreciar as coisas simples, e a ignorar monstros “faz-tudo” como JSF?

O que nao consigo entender é a birra que os usuarios dos frameworks action based tem do JSF, é realmente incrivel a rejeiçao.
Sim eu estava aqui no GUJ la pelo ano 2005 onde a moda geral era malhar o JSF, e vejam só onde ele chegou!!!

Eu particularmente desde aquela época ja me dei bem com ele, mas isto é gosto pessoal, agora imagina voce meio novo no mundo java, tinha comprado o livro Core JavaServer Faces, entrava aqui no forum e só via o povo metendo o pau nele, dizendo que ja tinha nascido morto e coisa afim, hehe é a famosa prova de fogo, segurar a onda e botar fé que ia vingar, pra nao sair correndo para o “struts” na epoca.

G

Que interessante… então se alguém não acha a mesma coisa que você é porque é um noob/mediano :?
me diz qual o livro que você está lendo atualmente pra eu ler também e assim deixar de ser tão medíocre :twisted:

… desculpa a todos, sou contra flames, mas essa não consegui deixar passar :lol: (na próxima não respondo)

J

Bom dia,

Gilliard_santos, obrigado pela informação sobre os ficheiros(arquivos) necessarios para JSF2.

Parece-me que o JSP é mais rápido que o Facelets, mas eu não tive tempo para estudar isso.

Eu já utilizei Struts, mas francamente o ciclo de vida de JSF roda perfeitamente.

Produtividade e eficiência, isto é o que um desenvolvedor está buscando.
Ou ele está tentando aprender uma língua e faramenta, sem outra finalidade, que aprender.
Enfim, em poucos anos, haverá outras línguas e faramentas. A única coisa que resta são os conceitos, e o caminho.

Best regards

G

Bom dia JxtaNode,

eu nunca testei, mas dizem que facelets roda mais rápido do que jsp basicamente por 3 motivos: o primeiro é que não existe aquele tempo maior para execução da primeira view, que resulta da transformação do jsf no servlet; e o segundo vem do fato do html em si ser gerado pelo renderizador do jsf, então tanto faz se for por jsp ou facelets a renderização em si seria na mesma velocidade; e um terceiro motivo seria a velocidade do sax, que para gerar a árvore do jsf uns dizem que executa igual, outros dizem que executa mais rápido que o servlet compilado.

Eu acredito mais que o segundo e o terceiro motivo sejam equilibrados, e que o facelets leve vantagem em cima do tempo de compilação do jsp para servlet, mas não fiz testes práticos. Se alguém tiver feito ou se souber de referências confiáveis poste aqui. Na prática mesmo a vantagem que percebi, além de templates e componentização facilitada, foi a maior clareza nas mensagens de erro.

F

Achei isso aqui:

M

Deixa ver se entendi. Esse texto acima quer dizer que o facelets é mais rápido que jsp porque não precisa compilar a primeira vez. E depois de compilado? Do jeito que falam, da impressão que JSP é compilado toda vez que se acessa e não toda vez que se altera. :?. O parse do facelets é feito somente uma vez ou toda vez que acessa a página? Se ele é feito apenas uma vez o desempenho tem que ser o mesmo já que JSP se transforma em um servlet e bla bla bla. Agora se o parse age a cada acesso a página é brincadeira dizer que é mais rápido que o servlet. Ta parecendo jogada de marketing isso sim.

C

Meio mandrake essa afirmacao.

R

Me desculpem o off-topic mas sou só eu que não estou conseguindo acessar o https://javaserverfaces.dev.java.net/

alias não to conseguindo nada no dev.java.net

F

rafaelbtz:
Me desculpem o off-topic mas sou só eu que não estou conseguindo acessar o https://javaserverfaces.dev.java.net/

alias não to conseguindo nada no dev.java.net

http://www.guj.com.br/posts/list/140800.java

F

“Every time you edit, save and reload a JSP page”

Alguma afirmação errada ae???

"With a near-zero compile-time overhead, developing JSF applications with Facelets is simply faster. "

F

marcosalex:
Bom, então quando é alterado o arquivo o facelets é mais rápido.
Mas ainda não descobrimos quando não há edição se ele ganha. Porque se o servlet gerado pelo jsp for mais rápida depois de compilado, é preferível ganhar performance com o servlet, a não ser que você altere a página com muita frequencia e esse overhead te comprometa.

Analisando exclusivamente a performance, claro.

Bom eu postei aquele texto apenas para responder a sua pergunta sobre se era gerado servlet ou nao, agora sobre a performance, depois do JSP compilado eu ja nao sei, teria que ver.

M

“Every time you edit, save and reload a JSP page”

Alguma afirmação errada ae???

"With a near-zero compile-time overhead, developing JSF applications with Facelets is simply faster. "
Nessa parte do texto não. Agora no Texto todo sim se ficar “parseando” a cada acesso. Mas o texto não é do fabricante então não da para culpar o mesmo. E não estou culpando você também. Mas afirmar que é mais rápido por causa do sax :? e ainda recomendar por causa disso, usando servlet como comparação, é dificil em. Com certeza tem argumento melhor.

F

“Every time you edit, save and reload a JSP page”

Alguma afirmação errada ae???

"With a near-zero compile-time overhead, developing JSF applications with Facelets is simply faster. "
Nessa parte do texto não. Agora no Texto todo sim se ficar “parseando” a cada acesso. Mas o texto não é do fabricante então não da para culpar o mesmo. E não estou culpando você também. Mas afirmar que é mais rápido por causa do sax :? e ainda recomendar por causa disso, usando servlet como comparação, é dificil em. Com certeza tem argumento melhor.

ok, ok, entendi :slight_smile: Como eu disse, quando postei isto nem era este exatamente o objetivo, claro que temos outras vantagens tambem para se usar facelets, mas sempre vejo em posts o pessoal falando que é de 30% a 50% mais rapido, só nao falam se é em desenvolvimento ou em produçao ja, mas nao achei nada muito especifico explicando o motivo, achei só este, meio antigo de 2006, nem sei se ainda é 100% valido, mas fala da questao da renderizacao do JSP:

R

Qual appserver vcs estão usando?
estou testando no tomcat 6.0.18 e ta dando erro.

Ele não faz parse das Tags do XHTML!

precisa de algum JAR além do mojarra pra rodar os samples?

M

O Grande Bé:
Qual appserver vcs estão usando?
estou testando no tomcat 6.0.18 e ta dando erro.

Ele não faz parse das Tags do XHTML!

precisa de algum JAR além do mojarra pra rodar os samples?

cara, pelo q percebi no Tomcat 6 vc não roda nada além de servlet e jsp. Ele está literalmente pelado. Precisa incluir todos os jar’s necessários no seu war, para rodar qualquer coisa além disso.

R

Que seriam?

Quais Jars preciso pra rodar o JSF2 no Tomcat6?

Se subir no glassfish só no 3?

Não sei se entendi direito, mas mesmo sendo versão final o JSF2 ainda não posso usar em produção pois ele precisa estar no JEE6
é isso?

M

Geralmente no site do fabricante fala, as vezes até no próprio jar, mas acho que não seria muita coisa além dos jar’s necessários para rodar a versão 1.2. De cabeça agora eu não sei todos, mas não estou conseguindo acessar o site do fabricante também. Coloca o erro ai.

http://www.guj.com.br/posts/list/131391.java

B

muito bom, melhorou mesmo!!!

mas apesar do esforço, fazer componentes personalizados ficou ainda mais complicado com esse suporte ajax que foi adicionado. putz, aqle xml em forma de classe :?, em componentes mais elaborados… ferrou!
ainda bem que o pessoal do richfaces já está com uma versão compatível com o jsf 2.0 na agulha.

parabéns pelo blog, ótima cobertura :wink:

G

bobmoe, se você já conhece facelets, e acha que é uma forma boa de fazer componentes, então vai perceber que na versão 2.0 só melhorou. Tem aquela parte da especificação do componente onde informamos a estrutura dos objetos que o componente manipula, mas você também pode fazer praticamente igual como já fazia no facelets 1.1.x. Uma vantagem do novo facelets é que podemos passar actions como parâmetro, e na versão anterior tinha que fazer uma gambiarra para isso funcionar. Além de outras coisas que podemos fazer também.

Obviamente cada um tem um ponto de vista, mas se você gostava do facelets antigo, provavelmente vai gostar mais ainda do novo. As vezes os exemplos tem coisas a mais do que seria o estritamente necessário justamente para mostrar o maior número de funcionalidades em um exemplo só.

E a parte de ajax é praticamente igual ao que o richfaces (ajax4jsf) faz, com a vantagem de você poder colocar a tag <f:ajax> em qualquer parte da tela e “ajaxiar” todos os componentes que ficaram dentro dela em uma pancada só. Tanto que com essa tag <f:ajax> nem vai mais ter a <a4j:support>, pois a tag padrão faz tudo que a outra faz e mais um pouco ainda. Então como pelo visto você gosta do jeito de trabalhar com ajax do richfaces, provavelmente vai gostar do jeito padrão também. Eu já linkei lá em cima isso, mas caso você não tenha visto, aqui eu dou uns exemplos de como usar essa nova tag.

Valeu!

B

sim, realmente é muito legal esse suporte nativo a ajax.

quero testar se eles resolveram aquela característica do ajax no richfaces não suportar por padrão o parametro rendered nos componentes. se ainda não tiver quero ajudar a implementar, pq esconder componentes na tela de forma assíncrona é muito básico em qq aplicação.

F

Que seriam?

Quais Jars preciso pra rodar o JSF2 no Tomcat6?

Se subir no glassfish só no 3?

Não sei se entendi direito, mas mesmo sendo versão final o JSF2 ainda não posso usar em produção pois ele precisa estar no JEE6
é isso?

Conseguiu rodar?

Estou rodandos os samples aqui no Tomcat 6.0.18, roda tudo de boa, apenas em algums com ajax por ex., precisa adicionar as lib da jstl, eu adicionei uma que tem pronta no Netbeans e funfou.

R

JSF 2.0, legal. Vou conferir assim que possível.

Criado 19 de outubro de 2009
Ultima resposta 1 de nov. de 2009
Respostas 34
Participantes 14