Hospedagem Profissional

Hospedagem Profissional
Clique aqui e ganhe US$ 10,00 para testar durante 1 mês a melhor hospedagem: Digital Ocean!

terça-feira, 29 de março de 2011

Dúvidas sobre JBoss Seam e CDI ?

JBoss SeamMuitas pessoas estão com dúvidas sobre o que é CDI e sobre sua relação com o framework JBoss Seam, então vamos elucidar superficialmente essas dúvidas.

O JBoss Seam é um framework open source para Java EE que unifica o modelo de componentes usados em todas as camadas da aplicação, fazendo a ponte entre os componentes de Visualização  (Tela), Controle (Negócio) e Persistência (Banco de Dados) para que eles trabalhem de maneira uniforme e transparente.

Além da ponte entre estas tecnologias, o JBoss Seam oferece integração com uma grande gama de tecnologias: do AJAX que permite aplicações Web 2.0 com interface rica até a definição do fluxo das páginas por JBPM (Gerenciamento de Processos de Negócio com Java).

Passa também pela geração de PDFs, envio de email, indexação e busca avançada de conteúdo, balanceamento de carga, segurança, envio de mensagens, motor de regras, entre outros.

Seu criador foi Gaving King, o mesmo criador do Hibernate, que mais tarde deu origem ao JPA que faz parte da especificação do EJB 3 (JSR 220).

CDIE agora a história se repete, onde o core do JBoss Seam deu origem a especificação JSR 299, comumente chamada de CDI - Contexts and Dependency Injection for the JavaTM EE platform ou oficialmente chamada de WebBeans !

Mas isso será o fim do JBoss Seam? NÃO!!!! Como dito, somente o CORE do Seam deu origem a JSR 299, como Injeção de Dependência, Eventos, Inicialização, Interceptadores, Configuração, etc. As outras tecnologias do java como citadas acima (PDFs, envio de email, indexação e busca avançada de conteúdo, balanceamento de carga, segurança, envio de mensagens, motor de regras, etc.) continuarão a fazer parte agora do JBoss Seam 3, que terá seu core baseado no CDI.

Bom, na verdade o CDI será a especificação, o Seam 3 utilizará o Weld que é a implementação de referência da JSR 299.

Confuso ? Que tal uma imagem que fala por mil palavras vinda diretamente do site oficial do Seam ?

Clique para ampliar!

Clique para ampliar!

 

Ficou mais claro né!  Em resumo:

CDI é uma especificação da JCP incluída no Java EE
Weld é a implementação de referência do CDI
Seam 3 é um conjunto de módulos que extendem a CDI para prover funcionalidades além das oferecidas pelo Java EE 6

Até o momento em que este artigo foi escrito, o Seam 3 está na versão 3.0.0.CR3, aguardando sua versão final, o que deve ser em breve e que virá com muitas novidades, como a integração com o JSF 2.0 (JSR 314), Servelet 3.0, JSP 2.2, EL 2.2, JSTL 1.2, EJB 3.1, JPA 2.0, JTA 1.1 e muito mais.

Referências desse artigo:

- http://jcp.org/en/jsr/summary?id=299
- http://seamframework.org/Seam3/Downloads
- http://jcp.org/en/jsr/detail?id=314
- http://seamframework.org/Weld