Change History
Release 0.6.1 (2012/12/23)
New Features
- Add a coverage check Mojo, contributed by Kyle Lieber (GitHub #6).
Fixed Bugs
- jacocoant.jar should not conflict with ASM 3.x (GitHub #39).
- Agent Mojo should set empty property, if execution was skipped (GitHub #44).
Non-functional Changes
- Upgrade to ASM 4.1 (GitHub #37).
- Log location of merged execution data file in Ant
mergetask (GitHub #29).
Release 0.6.0 (2012/10/06)
New Features
- Full support for Java 7 including INVOKEDYNAMIC as JaCoCo is now based on ASM 4.0 (GitHub #5).
Fixed Bugs
- Maven plugin should skip creation of report if the execution data file is missing. This avoids appearance of stack traces in case when JVM was not forked, e.g. if there are no tests to run (SF #3563431, GitHub #19).
- Maven plugin should fail if unable to read execution data file or create report (GitHub #19).
API Changes
- Only colon as separator character supported in agent parameters. The deprecated pipe character is no longer supported.
Release 0.5.10 (2012/08/31)
Fixed Bugs
- Correct stackmap frames for new
long[]arrays (SF #3553210). - Properly resolve the
forkvariable for tasks wrapped by thecoverageAnt task (Trac #213).
Non-functional Changes
- Source tree has been migrated to Git and is now hosted on Github at https://github.com/jacoco/jacoco.
Release 0.5.9 (2012/07/30)
Fixed Bugs
- Don't produce invalid class files in case of unexpected stackmap frames (SF #3543758).
Release 0.5.8 (2012/07/11)
New Features
- Support for parallel Maven builds (Trac #191).
- New agent option
classdumpdirto dump all class files seen by the JaCoCo agent to disk. This option is also available for Ant and Maven (Trac #208).
Fixed Bugs
- Allow instrumentation of classes with dead code (SF #3538112).
- Reworked instrumentation strategy to avoid verifier error "Uninitialized object exists on backward branch" with certain Java 7 class files (Trac #154).
Non-functional Changes
- Documentation now includes Maven example and Maven goal documentation (Trac #201, #202).
Release 0.5.7 (2012/04/19)
New Features
- Support for class redefinitions by other agents like JMockit (SF #3509409).
- Remove class file attributes with invalid code offsets caused by other byte code processing tools to avoid verifier errors (Trac #196).
- Improved logging for Ant tasks (SF #3518429).
Fixed Bugs
- In case of failures the agent should log the original exception.
Release 0.5.6 (2012/01/23)
New Features
- jacoco-maven-plugin can be used together with maven-site-plugin (Trac #181).
- The
reportAnt task now also supports directory resources to specify source folders. This allows reading source files from multiple directories. Contributed by Dominik Stadler (Trac #119).
Fixed Bugs
- Don't insert stackmap frames for class files before version 1.6.
- Regression, which was introduced in 0.5.4 - restored compatibility of jacoco-maven-plugin with Maven 2 (Trac #182).
Release 0.5.5 (2011/12/15)
Fixed Bugs
- Correct default value for the
appendproperty of thedumpAnt task istrue(Trac #178). - Try/catch blocks must not be counted as instructions (Trac #179).
Non-functional Changes
- Upgrade to ASM 3.3.1.
Release 0.5.4 (2011/11/11)
New Features
- Maven plug-in: respect
includesandexcludesproperties in report Mojo (Trac #160). Also note that:<configuration> <includes>org.foo.*:org.bar.*</includes> <excludes>com.foo.*:com.bar.*</excludes> </configuration>
must be replaced on:<configuration> <includes> <include>org.foo.*</include> <include>org.bar.*</include> </includes> <excludes> <exclude>com.foo.*</exclude> <exclude>com.bar.*</exclude> </excludes> </configuration>
API Changes
Instrumenternow only requiresIExecutionDataAccessorGeneratorinstead ofIRuntime(Trac #174).- Removed reference to internal implementation classes from
CoverageBuilderAPI.
Non-functional Changes
- Release bundles from now on signed again.
- Several documentation updates.
Release 0.5.3 (2011/07/06)
New Features
- New Maven plug-in for JaCoCo agent setup and basic reporting (Trac #25).
- Additional output mode implementation for JaCoCo agent based on JMX.
Fixed Bugs
- Fixed problem with reporting of nested group structures (Trac #157).
Non-functional Changes
- JaCoCo build based on Maven (Trac #136).
- JaCoCo published to Maven repository (Trac #149).
Release 0.5.2 (2011/05/19)
New Features
- JaCoCo reports cyclomatic complexity numbers (Trac #129).
- For HTML reports the tab width can be specified on the
sourcefilesattribute of thereportAnt task (Track #152).
Fixed Bugs
- Removed duplicate counters in the root node of XML reports (Trac #155).
- Avoid
StackOverflowExceptionwhen analyzing methods with very long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet for reporting and analyzing this!
API Changes
ICoverageNodeAPI has been extended for cyclomatic complexity (Trac #129).- XML and CSV report includes new counter type
COMPLEXITY(Trac #129). - New method
getTabWidth()in callback interfaceISourceFileLocatorinstead ofHTMLReportFormatter.setTabWidth()which has been removed. (Trac #152).
Release 0.5.1 (2011/03/21)
New Features
- Duplicate classes with identical identifiers are now ignored during analysis.
- Added support for TestNG to Ant task Coverage (Track #144).
Fixed Bugs
- Calculate correct stackmap frames for Java 1.6 branches (Trac #139).
- Link source files also for classes in default package (Trac #151).
Non-functional Changes
- API documentation cleanup (Track #140).
- Removed obsolete examples from documentation (Trac #141).
- Added reporting API example (Trac #146).
- Reduced file size of HTML report source pages (Trac #148).
API Changes
- Simplified reporting API (Trac #53).
- Use colon as separator character in agent parameters (Trac #143).
- Now also empty files are accepted as
*.execfiles (Trac #150).
Release 0.5.0 (2011/01/19)
New Features
- JaCoCo now reports branch coverage (Track #66).
Fixed Bugs
- Only process actual Java class files during analysis (SF #3106102).
- Fix broken source links due to sort hash (Track #125).
- Fixed invalid OSGi headers in MANIFEST.MF files (Track #127).
- Try to avoid interference with Hibernate (SF #3134190).
- Provide proper error message in case of duplicate class names in the same group (SF #3110219).
- Allow any number of probes in static interface initializers (SF #3161106).
API Changes
- All analysis specific APIs have been moved to package
org.jacoco.core.analysis. - The
IStructureVisitorinterface has been replaced by a simplified version calledICoverageVisitor(Track #132). - All counter creation and update APIs now accept missed items and covered items as parameters (Track #131).
- Instructions are now counted on a per line basis. Therefore some
interfaces in the
org.jacoco.core.analysispackage have changed as well as thelineelement in the XML report (Track #130). - Several internal implementation classes have removed from the core APIs or have been replaced by new interfaces (Track #133).
Release 0.4.1 (2010/10/07)
New Features
- New attribute
lineformethodelements in the XML report containing the first source line number of the method. (Track #120). - Optional
localeattribute for number rendering HTML reports, also available as an attribute of thehtmltag of thereportAnt task (Track #122). - Coverage tables in HTML report are now sortable (Track #98).
- The
reportAnt task issues a warning if source files are provided but class files do not contain debug information to collect line numbers (SF #3024486).
Non-functional Changes
- Reduced memory footprint for coverage data by 30% (Track #106).
- Moved to Eclipse 3.6.x as development environment (Trac #115).
- All delivered bundles and JAR files are signed (Trac #118).
Fixed Bugs
- Better error message when multiple JaCoCo agents are specified (Track #103).
- Fixed potential NPE at shutdown when running agent in
tcpservermode (Track #117). - Agent now fails at startup when execution data file can't be opened (Track #121).
Release 0.4.0 (2010/06/04)
New Features
- Execution data now includes session information: an arbitrary identifier, the start time and dump time (Trac #88).
- Added session information to XML report (Trac #92).
- New "Sessions" page in the HTML report shows information about each sessions wherein execution data has been collected for the report (Trac #93). Additionally all classes with execution data available are listed on this page (Trac #94).
- The agent now supports remote dumps via TCP/IP connections (Trac #82).
- New Ant task
dumpto remotely collect coverage data from agents (Trac #100).
API Changes
- Execution data file header is written and read in any case (Trac #72).
- Added
dumponexitto agent options (Trac #82). - Added
sessionidto agent options (Trac #88). - Added
output, address and portto agent options (Trac #82). - Additional and modified methods in
IRuntimeto produce session information (Trac #88). - Coverage element type
SESSIONremoved (Trac #95). - Removed several internal APIs from package
org.jacoco.core.instrused for class instrumentation. - Renamed class
org.jacoco.report.csv.CsvFormattertoCSVFormatter(upper case) for consistency with other formatters.
Release 0.3.3 (2010/04/19)
New Features
- Support for different archives (jar, war, ear etc.) and nested archives (Trac #78).
- XML report with line level coverage information (requested for Sonar).
Fixed Bugs
- Correct stackmap frames for Java 1.6 class files. (Track #81).
- Avoid usage of
LocalVariableSorterdue to ASM bug #314563 (Track #69). - Nested Java/JUnit Ant tasks not being executed when coverage task disabled. (Track #85).
Release 0.3.2 (2010/04/01)
New Features
- New HTML report option to directly create a zip file containing the report (Trac #12).
- Code coverage for static initializers in interfaces (Trac #21).
- Better error handling for
reportAnt task (Trac #71). - Classes without instructions are excluded from reports (Trac #73).
Fixed Bugs
- XML and CSV report output now also works for structures without groups (Track #76).
API Changes
- Consistent usage of the term "Missed" instead of "NotCovered" in all APIs (Trac #72).
- To support "off-line" instrumentation scenarios it is not required any more to register instrumented classes with the runtime (Trac #74).
Release 0.3.1 (2010/02/09)
Fixed Bugs
- Ant tasks broken on Linux (Trac #68).
Release 0.3.0 (2010/02/02)
New Features
- Report renders anonymous classes with type information (Trac #46).
enabledproperty added toagentandcoverageAnt tasks (Trac #63).- Ant task
mergeadded (Trac #52).
Fixed Bugs
- New
IRuntimeimplementation enables JaCoCo usage for J2EE application servers like Glassfish.
API Changes
- Agent option and Ant task parameter
filechanged todestfile(Trac #59). - Agent option and Ant task parameter
mergechanged toappend(Trac #51).
Release 0.2.0 (2010/01/08)
New Features
- Simplified probe data structure reduces memory usage (Trac #47).
- Performance test becomes part of the build.
- New bundle
org.jacoco.agentthat provides the Java agent as a resource (Trac #50).
Fixed Bugs
ArrayIndexOutOfBoundsExceptiondue to inconsistent processing while instrumentation and analysis (Trac #44).
Release 0.1.0 (2009/10/28)
The very first JaCoCo release.