DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


JBoss Seam 3: o módulo Config - Revista Java Magazine 100

Neste artigo, veremos quais mudanças ocorreram recentemente no Seam 3. Também estudaremos mais um módulo do framework, o Seam Config, que nos permite utilizar arquivos XML para definir beans.






Seam 3 mudou bastante os princípios por trás dos frameworks da família Seam. Até o Seam 2, o núcleo do framework era um módulo responsável pela injeção de dependências. A plataforma era intimamente integrada – ou acoplada, dependendo do ponto de vista. Entretanto, Seam 3 abandonou o núcleo anterior em favor do CDI, a nova especificação de injeção de dependências da Java EE 6, e as demais partes da plataforma foram substituídas por módulos totalmente desacoplados.

Nos primeiros artigos desta série, vimos como CDI implementa injeção de dependências, gerenciamento de contextos, eventos, interceptadores e decoradores. No artigo anterior, vimos dois dos módulos de Seam 3 – Solder, que contém inúmeras ferramentas genéricas, e Catch, para tratamento centralizado de exceções. Entretanto, vimos também que Seam estava passando por mudanças e seu futuro ainda estava indefinido.

Recentemente, após receber feedback da comunidade, o time de desenvolvedores do JBoss Seam anunciou uma grande mudança: vários módulos de Seam 3 seriam alocados em outros projetos. Dos diversos módulos originais do framework, porém, quatro ainda seriam mantidos pela equipe de Seam: Solder, Catch, Config e Servlet. A partir da versão 3.1, estes módulos estarão fundidos em um só, o novo Seam Solder. Como já estudamos Solder (como definido na versão 3.0) e Catch no artigo anterior, veremos, neste artigo, o módulo Config.

Mudanças ainda mais drásticas ocorrerão com o Seam 3. A mais importante é que o novo Seam Solder será integrado a outros complementos portáveis para CDI (como Apache CODI e CDISource), em um grande projeto, sob a égide da Apache Foundation. Estas mudanças serão mais bem explicadas no próximo artigo da série.

Seam Config

O uso de XML em CDI é bastante limitado. Exceto pelos arquivos exigidos por aplicações web Java (como o web.xml), uma aplicação CDI precisa apenas do beans.xml, que pode inclusive não ter conteúdo. Além disso, quando se configura a aplicação através do beans.xml, apenas aspectos de implantação são definidos – a lógica de negócio é toda expressada em Java. Esta abordagem contrasta com a maioria dos frameworks em Java, que utilizam XML para as mais diversas tarefas: desde rotear requisições para actions, até injetar dependências. Este é um dos aspectos mais elogiados de CDI, pois configurações em XML são difíceis de depurar, pouco legíveis e fracamente tipadas.

Por outro lado, configurações em XML são mais flexíveis e fáceis de customizar. É possível alterar vários aspectos de uma aplicação sem precisar recompilá-la. Componentes diferentes podem ser usados em ambientes de implantação diferentes apenas trocando arquivos de configuração. Com Weld, podemos utilizar beans anotados com @Alternative para obter resultado semelhante, e Solder oferece algumas funcionalidades úteis nesta mesma linha (como a anotação @DefaultBean). Entretanto, estas ferramentas focam-se mais em definir beans com comportamentos variados, ao invés de definir parâmetros em beans com igual comportamento. Na prática, porém, é bastante usual querer mudar apenas um parâmetro no comportamento de um bean. Por exemplo, queremos que nosso entity manager se conecte a um banco de dados em homologação e a outro em produção, mas não queremos usar dois tipos de entity managers. Nestes cenários, as ferramentas de Weld e Solder podem ser desnecessariamente complicadas.

Como uma alternativa, Seam 3 possui o módulo Seam Configuration (ou simplesmente Seam Config). Este módulo permite, através de XML, gerar, alterar ou substituir beans a partir de "



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    5 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Niccolas Vieira Gomes Costa
Ta só me diz uma coisa por que o exemplo não foi feito utilizando jboss seam 3. por que o exemplo mostrado foi encima de seam 2, muito madeira isso
[há +1 mês] - Responder

 

Wesley Yamazack
Olá Niccolas, estou verificando com o Adam para que ele possa confirmar esta sua dúvida.

Peço que aguarde um pouco para que o mesmo possa lhe ajudar.

Obrigado
[há +1 mês] - Responder
 

[autor] Adam Victor Nazareth Brandizzi
Olá, Nicolas.

Poderia nos informar de qual exemplo você está falando? Realmente não tenho ideia de qual seria.

Até!
[há +1 mês] - Responder
 

Niccolas Vieira Gomes Costa
o video que aparece na introdução do artigo.
[há +1 mês] - Responder
 

Wesley Yamazack
Olá Niccolas, entramos em contato com o editor chefe da revista pra ele ver o motivo. Estou com uma dúvida, o exemplo este errado? Ou foi por que foi feito numa versão inferior?

Poderia explicar o ocorrido por favor?

Um abraço
[há +1 mês] - Responder
 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Adam Victor Nazareth Brandizzi

Desenvolvedor Java há cinco anos e já desenvolveu aplicações Web que utilizavam threads e JNI para acesso a hardware.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03