Requirements
- Runtime supports Java 6+
Building
The usual:
mvn clean install
Building requires Java 8+ and Maven 3.3.1+.
Contributing
This project uses Immutables annotation processing to eliminate maintenance on lots of boilerplate code. If you are using Eclipse, this requires installing the m2e-apt plugin and changing Window > Preferences > Maven > Annotation Processing to "Automatically configure JDT APT".
Integration tests
Integration tests are run during Maven's standard integration-test
lifecycle phase.
The test harness makes it easy to run sample application code and then validate the trace captured by the instrumentation. The test harness is able to run tests both using a custom weaving class loader (which is very convenient for running and debugging inside your favorite IDE), and by spawning a JVM with the -javaagent flag (which more correctly simulates real world conditions).
Code quality
SonarQube is used to check Java coding conventions, code coverage, duplicate code, package cycles and much more. See analysis at https://sonarcloud.io.
Checker Framework is used to eliminate fear of null with its rigorous Nullness Checker. It is run as part of every Travis CI build (see the job with TARGET=checker) and any violation fails the build.
License
Source code is licensed under the Apache License, Version 2.0.