| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 16:48:40
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Como é definido onde acaba e onde começa uma conversação ?
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 17:14:26
|
juzepeleteiro
Virtual Machine Man
Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline
|
saoj wrote:Como é definido onde acaba e onde começa uma conversação?
Você define em qual evento termina:
Assim, quando você chamar o evento acaba ele vai ser processado e a conversação vai terminar.
Da uma olhada em http://www.jboss.org (procure por Seam) que a documentação dele é bem legal.
[]'s
Jose Peleteiro
|
http://ofert.as - Cupons de desconto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 18:00:21
|
saoj
JWizard
![[Avatar]](/images/avatar/2e7ceec8361275c4e31fee5fe422740b.png)
Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline
|
Só para ver se eu entendi, para poder implementar no menta.
Um problema clássico de qualquer aplicação web é:
Quero dar um redirect para a página: Meus livros
Só que tb quero mostrar uma mensagem de sucesso, do tipo: "Livro adicionado com sucesso!"
Possíveis soluções:
- passo a mensagem na URL como parametro (porco)
- passo um id ou alguma indicação na url que ela precisa mostrar uma mensagem que está na session, talvez com esse id (porco tb)
- coloco a mensagem na session e como o jsp não vai encontrar no request (não tem request pois foi redirect) ele vai pegar automaticamente da session e mostrar. (ok mas tem problemas continue lendo)
Todas as tags do Mentawai utilizam cascateamento de escopo (acabei de inventar esse nome), ou seja, procura no request, se não tiver procura na session, se não tiver procura no application. (EL é assim tb, so whatever, só para enfatizar que isso é bom..)
Logo antes de dar o redirect eu coloco a mensagem de sucesso na session e faço o redirect.
Problema: Quem vai remover isso da session ?
Pelo que entendi esse é o problema que o scope conversation resolve. Várias sessions independentes dentro de uma session geral do usuário, carregando informações de um lado para o outro.
Como o conversation scope resolveria o meu problema acima ??? Acho que como a action showLivros é um ponto final da conversa (pelo menos um deles, pois poderão haver mais), eu daria um reset no context dentro da action ShowBooks
Hoje como eu resolvo isso?
Como eu só tenho uma mensagem de sucesso no meu contexto, eu dou um:
Dá praticamente no mesmo, mas se minha conversa vc gigantesca eu teria que ficar limpando sujeira da sessão a todo momento.
Então esse escopo de conversação é bonito mesmo !!! Vamos implementar !!! Como:
Contextos de conversação podem ser únicos (apenas um por sessão) ou múltiplos (vários por sessão)
Contextos de conversação são controlados por cookies assim como a session (se o cara não tiver cookie azar o dele pois eu não vou implementar url rewrite que é um saco total)
Contextos expiram assim como a sessão.
Pro futuro pode-se implementar um ContextBindingListener, no mesmo esquema do HttpSessionBindingListener
E o principal.
Todas as tags do mentawai vão procurar seus parametros assim:
request -> contextos de conversação seguindo a ordem LIFO -> session -> application
O que vc achou juzepeleteiro? Faz sentido isso?
Não é trivial implementar isso, ainda mais que depois tem que dar um jeito de integrar o IoC com isso...
PS: O reset no context ou na mensagem que está na session teriam que ser feitos após a execução da action, provavelmente por um AfterConsequenceFilter.
|
Sergio A Oliveira Jr. - saoj
ExperiMENTA:
Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 18:16:01
|
juzepeleteiro
Virtual Machine Man
Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline
|
Sim, mais oumenos. Se eu tiver dois contextos (um para cada janela do browser) qual que a tag do menta vai pegar? Na janela A ela deve pegar o contexto da janela A, e na B o contexto da janela B.
Essa gerência de contexto têm que ser rica, timeout, opções de armazenamento (imagine eu ficar armazendo minha session (do Hibernate) dentro da session do HTTP?), eventos (start, stop, dispose, page...).
Se não é apenas uma feature para dizer que tem. E só vai servir para attributos da página.
E, please, não use cookie. Cookie têm que ser utilizado ao mínimo sempre, por a cada requisição o browser enviar todos os cookies para o servidor, aumentando assim o consumo de banda. E quando estamos falando de aplicações de alta-disponibilidade isso é bem importante. (10 conversações eu estaria gastando 10x mais em cookie, do que um só se eu passa-se o conversionId por parametro.)
IoC sem eventos não é IoC, e apenas coleção de objetos.
[]'s
Jose Peleteiro
|
http://ofert.as - Cupons de desconto |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2006 18:20:57
|
juzepeleteiro
Virtual Machine Man
Membro desde: 19/07/2005 16:01:40
Mensagens: 583
Localização: Rio de Janeiro
Offline
|
Quer realmente fazer algo útil nesse sentido no Menta? Pega o SpringFlow, que pode ser utilizado programaticamente ou com uma IDE fantatica aonde você define os flows graficamente e integra ao Menta.
Ele já lhe dá toda essa história de conversação de forma graciosa. E que não é simples de ser feito, principalmente quando você começa a falar de depedencias entre contextos.
Como fica hoje no menta, quando um componente do scopo de applicação precisa de um do escopo de sessao? Ou seja, ele vive para aplicação, mas aquela instancia do componente B e diferente para cada sessão?
Pode parecer simples, mas não é não.
|
http://ofert.as - Cupons de desconto |
|
|
 |
|
|