Thursday, July 09, 2009

Seam Component x Contextos

Complementando o ótimo post do Dr. Spock, na sequência coloco os tipos de Seam Component e quais contextos do Seam podem ou devem ser usados:
  • Session Stateful (EJB) - por default é mantido em APPLICATION. Nunca devem ser associados a STATELESS ou PAGE.
  • Session Stateless (EJB) - sempre mantido em STATELESS. Toda cada vez que requisitado o Seam busca uma instância (lookup).
  • JPA Entity class - por default é mantido em CONVERSATION, nunca devem ser usados em STATELESS já que em algum momento devem ser sincronizados na base de dados.
  • JavaBean / POJO - por default ficam em EVENT.
  • Message Driven Bean - atua como uma listerner para Topic ou Queue, não é mantido em contexto Seam.

Sunday, July 05, 2009

Testando Google Wave

Essa semana fui um dos vários convidados para testar o Google Wave. A ferramenta esta em fase de testes, vários ajustes e melhorias devem ser efetuados, na minha opnião o conceito da ferramenta eh show de bola. Principalmente a ideia de plataforma aonde vc consegue criar/estender elementos e rodar no wave.

Veja essa página que comenta sobre extensões do Wave:

Vc tem 2 alternativas para criar elementos para o Wave:
  • Robots - robô que atua como um participante/convidado de uma determinada Wave, como por exemplo um corretor ortográfico.
  • Gadgets - pequenos aplicativos que rodam dentro da Wave, e compartilham seu estado para todos os participantes da mesma Wave, como por exemplo um mapa com a rota para uma balada.

JBoss Seam Timeout Conversation

Essa semana estava fussando bastante no Seam, e de repente pintou uma questão:
Qual é o timeout default do conversation caso o usuário não aciona uma requisição para o método @End? Será a mesma da Session?

A resposta é 10 minutos por default, encontrei isso no livro Seam In Action (pag. 300), ótimo por sinal!

Vc pode sobreescrever no component.xml, usando a tag:
core:manager timeout="600000"

Uma outra opção é usar a property timeout da tag page no mapeamento de view's (pages.xml):
page id="/cadastro.xhtml" timeout="300000"