Thomas Darimont
Erfahrenes Mitglied
Hallo,
jede Java 5 kompatible JVM mit entsprechendem Instrumentation Support sollte damit Funktionieren.
Load-Time Weaving ist nur eine Möglichkeit AspectJ's Aspekte dynamisch zum Zeitpunkt des Klassenladens in den Bytecode der Klasse mit einzuweben. Dazu wird über Instrumentation u.A. sowas wie ein ClassLoading Hook (ClassFileTransformer) registriert der beim Laden einer Klasse angesprungen wird und die Möglichkeit hat den bytecode dieser Klasse der in die JVM geladen werden soll noch nachträglich zu transformieren (beispielsweise um zusätzlichen Code einzustreuen wie etwa Trace -Statements oder dergleichen).
http://www.tutorials.de/forum/java/...lung-platformspezifischer-objektgroessen.html
Das war eigentlich nur ein Proof of Konzept und keine Implementierungsempfehlung! Mit Load-Time-Weaving sollte man nur Aspekte einweben lassen die man u.U. auch weglassen kann (Profiling, Tracing, Security, etc.) Andere Aspekte wie etwa Konfiguration sollte man in diesem Fall (IMHO) besser mit Compile-time weaving in den Code einweben lassen. In diesem Fall wird der Code dem einem entsprechenden Kompiler wie dem ajc von AspectJ kompiliert. Verwendet man für Eclipse beispielsweise das AJDT Plugin so kann man ein normales Java Projekt zu einem AspectJ Projekt konvertieren.Dadurch wird das Projekt dann automatisch / transparent über den Incrementellen AspectJ-Eclipse Compiler kompiliert. Der daraus resultierende Bytecode ist auf jeder entsprechenden JVM lauffähig.
Gruß Tom
jede Java 5 kompatible JVM mit entsprechendem Instrumentation Support sollte damit Funktionieren.
Load-Time Weaving ist nur eine Möglichkeit AspectJ's Aspekte dynamisch zum Zeitpunkt des Klassenladens in den Bytecode der Klasse mit einzuweben. Dazu wird über Instrumentation u.A. sowas wie ein ClassLoading Hook (ClassFileTransformer) registriert der beim Laden einer Klasse angesprungen wird und die Möglichkeit hat den bytecode dieser Klasse der in die JVM geladen werden soll noch nachträglich zu transformieren (beispielsweise um zusätzlichen Code einzustreuen wie etwa Trace -Statements oder dergleichen).
http://www.tutorials.de/forum/java/...lung-platformspezifischer-objektgroessen.html
Das war eigentlich nur ein Proof of Konzept und keine Implementierungsempfehlung! Mit Load-Time-Weaving sollte man nur Aspekte einweben lassen die man u.U. auch weglassen kann (Profiling, Tracing, Security, etc.) Andere Aspekte wie etwa Konfiguration sollte man in diesem Fall (IMHO) besser mit Compile-time weaving in den Code einweben lassen. In diesem Fall wird der Code dem einem entsprechenden Kompiler wie dem ajc von AspectJ kompiliert. Verwendet man für Eclipse beispielsweise das AJDT Plugin so kann man ein normales Java Projekt zu einem AspectJ Projekt konvertieren.Dadurch wird das Projekt dann automatisch / transparent über den Incrementellen AspectJ-Eclipse Compiler kompiliert. Der daraus resultierende Bytecode ist auf jeder entsprechenden JVM lauffähig.
Gruß Tom