Yajta is a extensible library for bytecode probe insertion. It is built on top of javassist. It allows to build tracing agents but it is not limited to this task. Probe insertion can be done both offline and at load time. So far, probes can be inserted only at the begining and the end of methods and/or at any branching point.
Further more several tools that make use of that library are provided:
- An agent that allow probe insertion at run time (See Agent_README and Agent_Usages_README.md) (Example of traces collected on common open source libraries can be found here.)
- An agent that check that an execution follow a previous trace (See Follower_README)
- A tool that generate a test impact report (A json file containing for each method of the explored project the list of test the call it.) (See TIE_README)
- A way to insert probe offline (See API_README)
Yajta can be depended upon by a maven project by including the following snippet in its pom.xml
<dependency>
<artifactId>yajta-core</artifactId>
<groupId>se.kth.castor</groupId>
<version>2.0.2</version>
</dependency>
The offline instrumenter can be used with
<dependency>
<artifactId>yajta-offline</artifactId>
<groupId>se.kth.castor</groupId>
<version>2.0.2</version>
</dependency>
A version of yajta with limited dependencies (should be enough to run instrumented code reffering to loggs impplemented in yajta) may be used with
<dependency>
<artifactId>yajta-lean</artifactId>
<groupId>se.kth.castor</groupId>
<version>2.0.2</version>
</dependency>