olá, galera!
eu vinha desenvolvendo um sistema web usando JSF 2.0, JPA 2.0 e tomcat 7. Com cerca de 70% do sistema concluido decidi trocar o container tomcat pelo glassFish 3.1.1. Então vi que os autores dizem que em um container de aplicações, o CDI é uma alternativa mais poderosa do que os managed beans do JSF.
Comecei a testar o CDI na minha aplicação, mas surgiram varias dúvidas em relação ao @ConversationScoped. Me parece que ele é o equivalente ao @ViewScoped do JSF, logo, eu teria que fazer essa troca. Mas não esta sendo tão simples assim porque o @ConversationScoped deve ser iniciado e fechado explicitamente, ao contrário do @ViewScoped, que é destruido pelo container quando outra página é carregada.
Nos exemplos que vi sobre o fechamento de um @ConversationScoped, geralmente um commandButton chama o metodo no respectivo bean que encerra a conversão. Mas na minha aplicação uso muitos compositions, como por exemplo uma barra de menus que carrega outras páginas e aparece em quase todas as views. Assim, como eu poderia encerrar um atual @ConversationScoped e iniciar outro, uma vez que o composition é usuado por várias páginas ?
E tb pq se eu iniciar uma nova conversação sem encerrar a atual, eu recebo
org.jboss.weld.exceptions.IllegalStateException: WELD-000214 Attempt to call begin() on a long-running conversation
??? valeu
Rafael