| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 12:42:46
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Oi pessoal, boa tarde.
Dada a seguinte estrutura, que está funcionando muito bem:
Como eu faria para:
1. poder encapsular diversas chamadas remotas num objeto só, enviar este objeto para o servidor, executar os métodos e retornar para o cliente os valores de retorno da execução dos métodos para os chamadores. Algo como
2. criar uma transação, algo como
Quanto a 2, louds sugeriu utilizar ThreadLocal para demarcação das transações, mas AspectWerkz infezlimente não suporta mais um per-thread model dos interceptors.
Alguém tem alguma luz? Algo que deveria estudar? Ou devo desistir pois é impossível?
Valeu pessoal.
|
Former LIPE. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 15:35:11
|
rodrigo_corinthians
JavaEvangelist
Membro desde: 07/06/2005 12:01:01
Mensagens: 316
Offline
|
Na questão 1 vc pretende fazer diversas operações(chamadas) num único método? Se sim eu fazeria mais ou menos desse jeito:
Sobre a questão 2 eu criei uma classe(bem simples) que usa uma única transação(do hibernate) para diversas regras(e consequentemente daos), uso essa classe sempre na última camada(web ou desktop) do sistema, caso queira posso disponibilizar parte do fonte.
Sem mais, Rodrigo.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 16:27:56
|
maikonaraujo
JavaChild
![[Avatar]](/images/avatar/81374713d991042a0e18865aa693cc24.jpeg)
Membro desde: 19/01/2005 05:20:25
Mensagens: 108
Localização: Rio de Janeiro - RJ
Offline
|
LIPE, ao invés de RemoteInterceptor, vc não poderia utilizar um Proxy? Assimi vc faria este mesmo trabalho em um InvocationHandler.
|
How many people can read hex if only you and dead people can read hex? 57006
In a world without fences and walls, who needs Gates and Windows?
The box said 'Requires Windows 95 or better'. So I installed LINUX
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 18:31:50
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Rodrigo, não é este o objetivo. O necessário é encapsular diversas chamadas ao servidor em uma só. Algo como um TO.
Sobre as transações, não entendi como aplicar sua sugestão no contexto que falei, pode explicar melhor?
Maikon, testei esta possibilidade e constatei que a geração de proxies é um tanto lenta quando comparada ao uso de AOP. Mas o resultado final é o mesmo
Valeu pelos replies pessoal.
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 18:45:26
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Eu nao entendi muito, mas em (1) voce poderia utilizar um agregate de commands, acho
ixprica meió aê
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 19:05:14
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Vou explicar melhor a 1.
Em dado momento do software, em determinada classe mágica, faria o seguinte:
Contudo, quem chamou person.create() está esperando um Integer como retorno. Como separar os diferentes métodos adicionados ao Command e retornar os valores para quem chamou cada método?
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 19:14:39
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Quase...
Você intercepta uma chamada a Person.create() e executa este Command?
Se for, porque você não faz um command.getResult()?
Ah, e não adicione commands assim, use um composite.
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/07/2005 19:39:45
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Boa idéia do composite, bem melhor.
Contudo, não seria a classe chamadora que criaria o composite.
Agora, pensando melhor, as duas idéias se complementam.
Melhorando o RemoteInterceptor:
edit: acabei de pensar. Minha idéia é impossível hehe não tem como:
Bosta, não tem como manter isso transparente
This message was edited 1 time. Last update was at 28/07/2005 19:43:36
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/08/2005 14:04:37
|
mister__m
Virtual Machine Man
![[Avatar]](/images/avatar/89b9c689a57b82e59074c6ba09aa394d.jpg)
Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline
|
Primeiro: não era mais fácil usar o genesis não?
Segundo, para fazer o que você quer com as transações, não é mais fácil escrever um método @Remotable que chame os outros?
|
Michael Nascimento Santos, aka Mister M
Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2005 17:41:46
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
E o aprendizado, fica onde?
Não entendi a sua idéia Mister, pode explicar um pouco melhor?
Valeu
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2005 17:47:48
|
mister__m
Virtual Machine Man
![[Avatar]](/images/avatar/89b9c689a57b82e59074c6ba09aa394d.jpg)
Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline
|
LIPE wrote:E o aprendizado, fica onde? 
Em aprender a usar o genesis
LIPE wrote:Não entendi a sua idéia Mister, pode explicar um pouco melhor?
Se você tem:
Não seria mais fácil fazer:
|
Michael Nascimento Santos, aka Mister M
Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2005 17:58:31
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
hehe espertinho
Entendi sua sugestão, mas queria fugir disso para evitar proliferação de métodos que funcionam apenas como façade.
Será que tem jeito?
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2005 18:43:38
|
mister__m
Virtual Machine Man
![[Avatar]](/images/avatar/89b9c689a57b82e59074c6ba09aa394d.jpg)
Membro desde: 18/03/2005 16:13:17
Mensagens: 736
Offline
|
LIPE wrote:Entendi sua sugestão, mas queria fugir disso para evitar proliferação de métodos que funcionam apenas como façade.
Esses métodos deveriam ser mais ou menos 1:1 com os casos de uso. Isso é ruim? Acho que fica muito mais claro, na verdade
LIPE wrote:Será que tem jeito?
Depende. Qual a boundary natural da tua transação?
|
Michael Nascimento Santos, aka Mister M
Summa Technologies do Brasil - http://www.summa-tech.com/
genesis: Uma nova forma de desenvolver aplicações - https://genesis.dev.java.net/
ThinNB: Suporte a Thinlet no NetBeans - https://thinnb.dev.java.net/
Líder da JSR-310 - Date and Time API
Expert Group Member das JSRs 207 (PD4J), 250 (Common Annotations), 270 (Java 2 SE 6.0), 296 (Swing Framework) e 303 (Bean Validation)
SouJava: Fortalecendo a comunidade Java brasileira - https://soujava.dev.java.net/ https://www.soujava.org.br/
JSR Community @ java.net - http://community.java.net/jsr
Blogs - http://blog.michaelnascimento.com.br/ http://today.java.net/pub/au/80
Twitter - @mr__m |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/08/2005 20:38:52
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Hum, pensando por este lado parece bom. Gostei
Quando ao boundary natual de minha transação eu vou estudar, depois te respondo hehe
Valeu cara \o/
|
Former LIPE. |
|
|
 |
|
|