Muitas 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).
E 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!
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
Nenhum comentário:
Postar um comentário
Comentários sobre assuntos não relacionados ao objetivo deste blog serão removidos.