Este é um post disponível para assinantes MVPSeam 3: Forge, Solder e Catch - Revista Java Magazine 98
Seam 3 é marcantemente diferente das versões anteriores do framework, a ponto de até confundir antigos usuários da plataforma Seam. Neste artigo, veremos qual é a nova filosofia por trás do Seam, assim como algumas ferramentas úteis da nova vers
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 98
Desde que foi lançado pela JBoss em 2006, o framework Seam cresceu em adoção e criou uma rica, ativa e fiel comunidade. A versão 2 de Seam consolidou o sucesso da plataforma, tornando-a uma das mais relevantes no universo do desenvolvimento de Java EE. Sua importância transformou o framework em uma das grandes inspirações na evolução das especificações de Java. Esta influência de Seam pode ser facilmente percebida em especificações como a JSR-299 e a JSR-330.
Muitas das ideias do core de Seam 2 acabaram por influenciar o CDI, de modo que várias funcionalidades do núcleo passaram a ser fornecidas pela própria plataforma oficial Java EE 6. Isto representou um novo desafio aos desenvolvedores de Seam: se as funcionalidades do núcleo do framework já estão disponíveis na própria plataforma Java EE, o que a nova versão do framework poderá oferecer? A resposta veio com Seam 3.
Ao contrário de seu antecessor, Seam 3 dificilmente pode ser definido como um framework monolítico. Enquanto Seam 2 definia vários aspectos das tecnologias e arquitetura adotadas em sua aplicação, a versão 3 deixa isto em aberto. Na verdade, é mais adequado descrever o novo framework como um conjunto de componentes fracamente acoplados, a serem usados em uma plataforma integrada via CDI. O papel do core de Seam 2 foi delegado a Weld, e Seam 3 tornou-se um conjunto de bibliotecas, provendo ferramentas e facilidades diversas para o desenvolvimento em Java EE. Em resumo, Seam 3 é mais um conjunto de ferramentas para a nova plataforma Java EE que um framework integrado. Pode-se dizer que, na versão 3, Seam é apenas um conjunto de componentes e Java EE 6 é o framework. Esta nova postura deixou muitos na comunidade confusos, por não conseguirem ver como migrar de uma versão 2 para a mais recente. O fato é que não existe transição fácil: Seam 3 é um produto totalmente novo, com uma filosofia diferente, e dificilmente comparável às versões anteriores. Esta mudança também não veio sem polêmica. Alguns desenvolvedores tradicionais de Seam 2 sentem-se incomodados pela mudança, e reclamam tanto da nova filosofia quanto das implementações, ainda imaturas e pouco documentadas, dos módulos de Seam 3.
Para aquecer ainda mais a discussão, mudanças ainda maiores foram anunciadas. Em um post recente no blog de in.relation.to, os desenvolvedores Shane Bryzak e Pete Muir anunciaram que planejam migrar vários componentes de Seam para outros projetos. Por exemplo, Seam Persistence pode vir a fazer parte do projeto Hibernate, tornando-se o Hibernate CDI; Seam REST iria para o projeto RESTEasy; e Seam Faces se tornaria o componente Faces CDI do projeto RichFaces. Estas propostas despertaram um debate ainda mais acalorado sobre o futuro da família Seam.
Você é um usuário de Seam 2, compreende inglês e acredita que pode colaborar com a discussão? Então participe! Ao fim do artigo, há um link para o fórum em que se debate como deve ser o futuro de Seam. Os desenvolvedores da plataforma aguardam ansiosamente por seu feedback sobre Seam 3.
Apesar disto, algumas tendências parecem propensas a se manter. Seam 3 provavelmente continuará como um framework extremamente portável e modular, e seus componentes serão mantidos, mesmo que em outros projetos. Parece improvável, também, que alguns módulos centrais sejam adotados por outros projetos. Assim, vale a pena estudar, desde já, como Seam 3 funciona, assim como compreender alguns dos componentes mais maduros da plataforma.
Como utilizar Seam 3
Seam 3 pode ser utilizado em qualquer sistema Java EE 6 ou CDI. Como o framework é modular e não exige nenhuma arquitetura específica, qualquer aplicativo deste tipo pode empregar um ou mais módulos de Seam 3. Além disso, como Java EE 6 e CDI são plataformas relativamente recentes, é provável que o framework seja utilizado principalmente em novas aplicações.
Weld archetypes
No artigo da Edição 94 da Java Magazine, vimos como criar um projeto CDI: basta acrescentar um arquivo beans.xml ao diretório META-INF ou WEB-INF de uma aplicação Web – com alguma configuração a mais caso a aplicação seja implantada em um container de servlets (como Tomcat ou Jetty), ao invés de um servidor de aplicação compatível Java EE 6. Uma solução mais prática é gerar um projeto Java EE 6 através de Maven archetypes. Existem dois archetypes para Weld: um cria projetos para servidores de aplicação e outro gera aplicações CDI para containers de servlets. A chamada abaixo cria uma aplicação a ser instalada em servidores Java EE 6:
mvn archetype:generate -DarchetypeArtifactId=jboss-javaee6-webapp -DarchetypeGroupId=org.jboss.weld.archetypes -DgroupId=br.com.devmedia.seam3 -DartifactId=aplicacaoJavaEE6
"ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
