Archive for February, 2011

Seam 3 – Vem com tudo! =)

Olá! Fiquei uns tempos ausente, mas já estou de volta à ativa! =)

Bom, como vocês já devem ter ouvido/lido, o Seam 3 está bastante promissor e com algumas inovações agressivas.

Diferente do Seam 2, o Seam 3 tem uma arquitetura modular. Dêem uma olhada aqui. Para compreender melhor essa nova abordagem é necessário ter alguns conceitos básicos sobre CDI (proveniente da especificação do JEE6, lançado no ano passado).

CDI em 1 parágrafo

Bem por alto, CDI (Context and Dependency Injection) é a antiga especificação de WebBeans. Para quem não conhece os WebBeans, o CDI basicamente, como o nome já diz, sabe injetar (type safe) componentes em diversas tecnologias, e basicamente trata tudo como Managed beans. Só isso =). Anotando o bean com @Named é possível manipulá-lo por EL (Expression language) – há outras anotações também. CDI faz muitas outras coisas, se você quiser mais informações, pode consultar as edições 84 e 85 da Revista Java Magazine ou a edição 40 da antiga revista Mundo Java (agora chamada de MundoJ). Pra quem não assina revistas, aí vão alguns links:

  • Uma introdução um pouco pesada, mas bem completa
  • Um podcast com conteúdo similar ao link acima pra quem tem preguiça de ler
  • Um artigo excelente, mais denso, possui 5 partes, mas só a primeira parte já dá uma boa noção. Esse é o que mais gosto.

Bom, chega de blá blá blá de CDI e vamos ao Seam 3. Você de fato precisava entender o básico disso. Até porque o papai do Seam, Gavin King, é o líder da especificação de CDI (uau!).

Quem usava Seam 2 deve se lembrar que ele possuía umas 3565454564 funcionalidades. Mail, Autenticação, etc, etc. Tantas que às vezes você esquecia que já estava pronto e saía reinventando a roda às cegas, até descobrir que já existia uma superclass que fazia tudo por você, ou algo assim. Pois é, seus problemas devem acabar com a modularização. Cada módulo é independente, ou seja, dá pra usar o Seam sem precisar de todos os módulos. (se você está com preguiça de voltar e pegar o link da figura dos módulos, aqui vai novamente).

Módulos

Módulos… Modules… Essas coisas te lembram alguma coisa? Tipo…. MAVEN? Pois é, o Seam 3 é inteiro construído em cima de Maven. Maven 3! Prestem atenção nisso! Nada de Maven 2.x aqui. Lembra dos POMs do Maven? O pessoal do Seam 3 introduziu o termo BOM (não porque ele seja BOM, mas sim porque é acrônimo de Bill of Materials). É um princípio DRY que tenta facilitar as dependências na hora de construir os módulos do POM, basicamente.

Ok, mas qual a vantagem desses módulos? Bom, MUITAS! Primeiro, o Seam 2 era um jar pesado, hem? 113MB! Agora compare, cada módulo possui entre 2 e 12mb, aproximadamente! Bem mais leve, com muito mais simplicidade!

Bom… Vamos aos módulos. A lista está aqui; é longa; respire fundo e leia! Assumindo a preguiça de ler, fiz um breve (REALMENTE breve) resumo do que é cada uma delas.

  • Seam Solder – Uma api basicona pra CDI
  • Seam Catch – Api para tratar exceções. Não testei isso ainda, mas olhem: http://seamframework.org/Seam3/CatchModule – Promete tratar as Exceptions geradas em eventos manipulador por CDI.
  • Seam Config – Configura beans CDI via XML. Tipo um faces-config modificado.
  • Seam Faces – Vejam a descrição: “In many cases, the functionality provided by this module are prototypes for future versions of the JSF or CDI specifications.” Parece que não faz nada, mas isso faz muito! Dá pra debugar saída de JSF e muitas outras bizarrices de um jeito relativamente fácil. Tem MUITO mais coisas darks nesse cara aí, fiquem ligados nele.
  • Seam International – Módulo de i18n e Locales.
  • Seam JMS – Esse aí é dos bons também! Injeção do JMS e eventos. Pretendo fazer um post bem especial só desse módulo, porque se eu começar a falar dele aqui, vocês não terão paciência pra ir até o fim do post.
  • Seam Persistence – Módulo de nome sugestivo – persistência. Mas merece atenção a alguns detalhes de EJB.
  • Seam Remoting – Lembra do Conversation Scope? Server-side methods? Estão aí nesse cara.
  • Seam REST – Esse aí é o meu favorito! Nome esclarecedor, módulo REST do Seam. Post especial pra ele nos próximos dias!
  • Seam Security – Nome sugestivo – módulo de Security, bem similar às funções do Seam 2, mas dessa vez autenticação e autorização são combinados com CDI.
  • Seam Servlet – Descrição muito extensa, vale a pena ler o resumo daqui – http://seamframework.org/Seam3/ServletModule.
  • Seam Wicket – Permite integração com o Wicket. Não testei isso ainda, porque conheço muito pouco do Wicket. Mas quem sabe se sobrar um tempo eu testo =D

Curtiu? Post longo, mas cheio de novidades! Espero que tenha sido possível “quebrar o gelo” daqueles que nunca tinham palpado nada sobre Seam 3!

Quer testar o Seam 3? Baixe o Maven 3 e o Jboss 6; depois é só começar a brincar com os módulos – http://seamframework.org/Seam3/DistributionDownloads

Nas próximas semanas vou ver se solto posts explicando cada módulo mais detalhadamente, ou pelo menos os principais.

É isso, aguardo feedbacks!


Advertisements

February 22, 2011 at 4:29 am 12 comments


Calendar

February 2011
M T W T F S S
« Jan   Apr »
 123456
78910111213
14151617181920
21222324252627
28  

Posts by Month

Posts by Category