Seam 3 – Vem com tudo! =)

February 22, 2011 at 4:29 am 12 comments

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!


About these ads

Entry filed under: Jboss Seam. Tags: .

Dev Chronicles #1 Seam 3 – Final – Released!!

12 Comments Add your own

  • 1. Tweets that mention TI Stuff -- Topsy.com  |  February 22, 2011 at 2:00 pm

    [...] This post was mentioned on Twitter by Rafael Ponte and Alessandro Lazarotti, Hanneli Tavante. Hanneli Tavante said: Novo post no meu blog – resumo das novidades do Seam 3 – http://wp.me/s17dWd-seam3 Hope you enjoy it! =) [...]

    Reply
  • 2. Tiago Faustino  |  February 25, 2011 at 2:34 am

    Nossa! Meus últimos 6 meses foram todos de JBoss Seam em minha empresa. Apesar de ao q tudo indica iremos migrar os futuros parao Grails continuarei estudando o Seam por já ter gostado nele na versão 2, imagine agora bonitão na versao 3!!

    Aguardo ansioso os novos posts sobre Seam
    Abraços!

    Reply
  • 3. renan  |  March 28, 2011 at 5:06 pm

    olá, vc pode me ajudar com uma coisa?

    eu baixei o módulo seam-config-3.0.0.CR1.zip e tentei executar o exemplo que vem nele, com nome de princess-rescue

    dentro do exemplo tem um pom.xml, tentei construir o projeto com o maven usando mvn clean install

    mas dá vários erros, queria saber se vc já construiu esse exemplo, se já e deu certo, poderia me orientar?

    obrigado

    Reply
  • 4. renan  |  March 28, 2011 at 5:08 pm

    AH, já tava esquecendo, meu servidor é o jboss 6

    valeu

    Reply
  • 5. Marcelo Soares  |  April 18, 2011 at 2:26 pm

    Espero que essa versão resolva o problema de instanciação de objetos no contexto, pois a versões anteriores tinhamos que fazer uns cambalachos para poder manter determinados objetos no contexto. Valeu Hannelita, sou seu fã.

    Reply
  • 6. Seam 3 – Iniciando! « TI Stuff  |  May 21, 2011 at 8:11 pm

    [...] seguida, é preciso ter o Maven 3 (tal qual descrevi em outro post – o Seam 3 é inteiramente baseado em Maven 3). Baixe o Maven 3 aqui. A instalação vai depender [...]

    Reply
  • 7. Mateus Sampaio de Souza  |  July 16, 2011 at 4:12 pm

    alguem conseguiu rodar os exemplos que vem com o seam 3?
    o forge e o maven não reconhecem os projetos, eles reclamam de erros no pom.xml em relação a uma tag

    Reply
    • 8. hannelita  |  July 16, 2011 at 5:52 pm

      Opa, eu consegui sim, cara! Seguir o tutorial que eu publiquei nao adiantou pra vc? Vc pode colocar o erro aqui? Uma dica importante, rode as tasks do maven sempre pelo terminal, e nunca pelo eclipse

      Reply
      • 9. Mateus Sampaio de Souza  |  July 16, 2011 at 10:17 pm

        Esses tutoriais que vc passou o forge reconheceu e como projeto, mas eu queria rodar os exemplos que vem junto com o seam3, aqueles que estão na pasta examples, sabe qual que é?

        quando entro na pasta de algum exemplo daqueles com o froge da o seguinte erro:

        [FATAL] Non-resolvable parent POM: The repository system is offline but the artifact org.jboss.seam.examples:seam-examples-parent:pom:3.0.0.Final is not available in the local repository. and ‘parent.relativePath’ points at wrong local POM @ line 20, column 13
        for project org.jboss.seam.examples:seam-booking:3.0.0.Final at /home/mateus/Impls/seam-3.0.0.Final/examples/seam-booking/pom.xml

        está é a linha 20 em diante do pom.xml:

        org.jboss.seam.examples
        seam-examples-parent
        3.0.0.Final
        ../pom.xml

  • 10. Mateus Sampaio de Souza  |  July 16, 2011 at 10:20 pm

    não aparece as tags quando envio um comentário

    org.jboss.seam.examples
    seam-examples-parent
    3.0.0.Final
    ../pom.xml

    Reply
  • 11. Bruno Soares Bravo  |  September 29, 2011 at 8:25 am

    O pessoal do Seam pode migrar alguns módulos do Seam 3 para outros projetos no futuro, como está escrito no blog relation.to:

    * Seam Persistence – Move into the Hibernate core project, re-brand as “Hibernate CDI”
    * Seam Validation – Move into Hibernate Validator, make CDI support part of the core offering
    * Seam Wicket – Moving into the Wicket project itself, this is already in motion
    * Seam REST – Moving into the RESTEasy project
    * Seam Faces – Moving into RichFaces as a standalone “Faces CDI” integration library

    Reply
    • 12. hannelita  |  September 29, 2011 at 11:50 am

      Olá! :)
      Esse post é bem antigo! Recentemente escrevi sobre as opiniões referentes as mudanças propostas aqui: :)

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

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

Most Recent Posts


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: