Change History
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
classdumpdir
to 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
report
Ant 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
append
property of thedump
Ant 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
includes
andexcludes
properties 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
Instrumenter
now only requiresIExecutionDataAccessorGenerator
instead ofIRuntime
(Trac #174).- Removed reference to internal implementation classes from
CoverageBuilder
API.
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
sourcefiles
attribute of thereport
Ant task (Track #152).
Fixed Bugs
- Removed duplicate counters in the root node of XML reports (Trac #155).
- Avoid
StackOverflowException
when analyzing methods with very long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet for reporting and analyzing this!
API Changes
ICoverageNode
API has been extended for cyclomatic complexity (Trac #129).- XML and CSV report includes new counter type
COMPLEXITY
(Trac #129). - New method
getTabWidth()
in callback interfaceISourceFileLocator
instead 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
*.exec
files (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
IStructureVisitor
interface 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.analysis
package have changed as well as theline
element 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
line
formethod
elements in the XML report containing the first source line number of the method. (Track #120). - Optional
locale
attribute for number rendering HTML reports, also available as an attribute of thehtml
tag of thereport
Ant task (Track #122). - Coverage tables in HTML report are now sortable (Track #98).
- The
report
Ant 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
tcpserver
mode (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
dump
to remotely collect coverage data from agents (Trac #100).
API Changes
- Execution data file header is written and read in any case (Trac #72).
- Added
dumponexit
to agent options (Trac #82). - Added
sessionid
to agent options (Trac #88). - Added
output, address and port
to agent options (Trac #82). - Additional and modified methods in
IRuntime
to produce session information (Trac #88). - Coverage element type
SESSION
removed (Trac #95). - Removed several internal APIs from package
org.jacoco.core.instr
used for class instrumentation. - Renamed class
org.jacoco.report.csv.CsvFormatter
toCSVFormatter
(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
LocalVariableSorter
due 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
report
Ant 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).
enabled
property added toagent
andcoverage
Ant tasks (Trac #63).- Ant task
merge
added (Trac #52).
Fixed Bugs
- New
IRuntime
implementation enables JaCoCo usage for J2EE application servers like Glassfish.
API Changes
- Agent option and Ant task parameter
file
changed todestfile
(Trac #59). - Agent option and Ant task parameter
merge
changed 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.agent
that provides the Java agent as a resource (Trac #50).
Fixed Bugs
ArrayIndexOutOfBoundsException
due to inconsistent processing while instrumentation and analysis (Trac #44).
Release 0.1.0 (2009/10/28)
The very first JaCoCo release.