Bonjour,
Dans mon programme j'ai besoin de faire quelques modifications sur des classes et j'utilise pour cela ASM. J'ai toutefois quelques problèmes pour appliquer ces modifications ...
En gros, j'ai une classe abstraite Message.
Celle-ci va être étendue par d'autres classes que je ne connais pas avant l'exécution.
Je dois donc récupérer la liste des classes. Pour me facilité la tâche, elles doivent être dans des packages que je connais.
J'arrive donc à ma question. Ces classes vont être modifiées via ASM, mais comment faire pour appliquer ces modifications ?
Dans le guide ils disent qu'il faut utiliser la classe ClassFileTransformer du package java.lang.instrument.
La doc du package indique qu'il faut créer un agent. J'ai bien compris comment le créer, mais je ne vois pas comment mon agent va connaître les classes à modifier, alors que celle-ci ne sont pas encore chargées ? En effet il me semble qu'une classe est chargée via le ClassLoader quand on essaie de l'instancier. Hors dans mon cas les classes ne seront pas instancier vu que l'agent est exécuter avant la méthode main du programme...
Bref je ne vois pas trop comment m'y prendre ...
Si quelqu'un à une idée là dessus, ça m'intéresse.
Merci.
P.S: j'utilise Java 6 (et java 7 dès qu'elle sera un peu plus avancée)
Edit: j'aurais peut être du mettre mon topic dans API ...
Partager