Como modificar um metodo em tempo de execução ?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
AndrewAguiar
JavaChild

Membro desde: 18/07/2006 10:03:59
Mensagens: 124
Offline

Olá pessoal.

Alguém poderia me indicar quais ferramentas posso usar para manipular bytecodes, gostaria de saber como ferramentas como hibernate, etc conseguem por exemplo interceptar um metodo get e fazer com que determinado código deles rode.

Pelo que pesquisei eles fazem uso de proxies, porém não tenho ideia de como e com quais API's eles fazem isso.

Grato a todos.
mcbarsotti
JavaEvangelist
[Avatar]

Membro desde: 11/05/2006 12:10:38
Mensagens: 329
Offline

cglib.sourceforge.net/

Obs.: O texto acima não é uma verdade soberana, não precisa cortar os pulsos caso não concorde.

[]'s
[MSN]
AndrewAguiar
JavaChild

Membro desde: 18/07/2006 10:03:59
Mensagens: 124
Offline

Valew kra.

Exatamente o que eu procurava
rflprp
GUJ Ranger

Membro desde: 27/04/2005 18:52:49
Mensagens: 822
Offline

Dependendo do que vc precisar vc pode utilizar reflection e polimorfismo.

[]'s
AndrewAguiar
JavaChild

Membro desde: 18/07/2006 10:03:59
Mensagens: 124
Offline

Pessoal, estou tentando usar o CGLib.

Peguei o jar do CBLib: cglib-2.1_3.jar

Vi que uma das dependencias dele é o asm, então peguei o jar deste: asm-1.4.2.jar

porém na hora de rodar da o seguinte erro:



Pensei então deve ser a versão do asm que esta errada, fui na pagina do CGLib: http://cglib.sourceforge.net/dependencies.html e vi que ele usa a versão 1.3.4.

fui para a pagina do ASM http://forge.objectweb.org/project/showfiles.php?group_id=23&release_id=2207

porém la aparece apenas da versão 1.4.2 para cima

alguém sabe onde consigo este jar do asm ? ou algum do cglib que ja venha todas as dependencias ?

Grato

This message was edited 1 time. Last update was at 03/12/2007 11:40:59

rflprp
GUJ Ranger

Membro desde: 27/04/2005 18:52:49
Mensagens: 822
Offline

http://ftp.cica.es/mirrors/maven2/asm/asm/1.3.4/
thicow
Smalltalk
[Avatar]

Membro desde: 22/08/2006 14:40:54
Mensagens: 2
Offline

Cara,

Usa aspectos!!!!
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline

AndrewAguiar wrote:
Pelo que pesquisei eles fazem uso de proxies, porém não tenho ideia de como e com quais API's eles fazem isso.


Realmente eles usam o cglib e o asm. Se quer algo mais alto nivel eu sugiro o Javasssit da JBoss. É uma biblioteca alto nivel com que vc consegue muitas das coisas que o pessoas do Hibernate, Spring e companhia usam.

Ah! e sim, o truque é usar proxies.

Criando sua própria API de Validação



Blog do MiddleHeaven
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team