Jiapi2 ====== To update jiapi html docs sftp into hosted jiapi web site: sftp mcr70,jiapi@web.sourceforge.net Major changes from Jiapi to Jiapi2 are: - Use j2sdk1.5 This gives us an instrumentation hook point provided by jvm. However, Jiapi code is written using jdk1.4. jdk1.5 features are utilizied at classloading level. - Minimize library dependencies. No BCEL, Regexp or log4j. alt.jiapi.file package replaces BCEL. This package is general purpose, low-level, api for reading class files. jdk1.4 regexp is utilized jdk1.4 loggin is utilized; RECONSIDERING THIS!!! Idea is to have one jar file, provided by Jiapi team, which contains all the relevant stuff. - new JiapiClass("Bar").dump() should produce classfile equivalent to public class Bar { } README of the previous version of Jiapi follows: o Jiapi depends on following packages : - Log4J http://jakarta.apache.org/log4j/ This package is used for logging/tracing Jiapi. o Compilation - make a copy of build.properties.example to a name build.properties - edit the references in build.properties (if you took Jiapi binary release you propably don't have to change anything) - say: > ant dist > ant build-test - make sure all the dependent packages are in your classpath - add jiapi.jar to your classpath - try it out: > java -Dinclude=test.* alt.jiapi.util.Bootstrapper test.EventTest This should produce something like : Foo.main () false Method entered : alt.jiapi.event.MethodEvent[source=class alt.jiapi.event.MethodEventProducer] test.Foo.<init>, id=1 Foo() Method exited : alt.jiapi.event.MethodEvent[source=class alt.jiapi.event.MethodEventProducer] test.Foo.<init>, id=2 Method entered : alt.jiapi.event.MethodEvent[source=class alt.jiapi.event.MethodEventProducer] test.Foo.foo, id=1 Foo.foo() Method exited : alt.jiapi.event.MethodEvent[source=class alt.jiapi.event.MethodEventProducer] test.Foo.foo, id=2 If it did, you are ready to start modifying your software programmatically. o To run samples - set the CLASSPATH: > export CLASSPATH=lib/bcel.jar:lib/jakarta-regexp-1.2.jar:lib/jiapi.jar o Misc - to generate samples: > ant build-samples - to generate JavaDoc: > ant doc - Jiapi team -