| <?xml version="1.0" encoding="UTF-8" ?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| <link rel="stylesheet" href="resources/doc.css" charset="UTF-8" type="text/css" /> |
| <link rel="shortcut icon" href="resources/report.gif" type="image/gif" /> |
| <title>JaCoCo - Change History</title> |
| </head> |
| <body> |
| |
| <div class="breadcrumb"> |
| <a href="../index.html" class="el_report">JaCoCo</a> > |
| <a href="index.html" class="el_group">Documentation</a> > |
| <span class="el_source">Change History</span> |
| </div> |
| <div id="content"> |
| |
| <h1>Change History</h1> |
| |
| <h2>Snapshot Build @qualified.bundle.version@ (@build.date@)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Branches and instructions generated by javac 11 for try-with-resources |
| statement are filtered out |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/669">#669</a>).</li> |
| <li>Synthetic classes are filtered out during generation of report |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/668">#668</a>).</li> |
| <li>Methods added by the Kotlin compiler are filtered out during generation |
| of report. Idea and implementation by Nikolay Krasko |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/689">#689</a>).</li> |
| <li>Branch added by the Kotlin compiler for reading from <code>lateinit</code> |
| property is filtered out during generation of report. Implementation by |
| Fabian Mastenbroek |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/707">#707</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Don't insert stackmap frames into class files with version < 1.6, |
| this fixes regression which was introduced in version 0.6.5 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/667">#667</a>).</li> |
| <li>Question mark in filter expressions now correctly matches exactly one character |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/672">#672</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 6.2 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/706">#706</a>).</li> |
| <li>Improved error message when already instrumented classes are used for |
| instrumentation or analysis |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/703">#703</a>).</li> |
| <li>JaCoCo build now requires at least Maven 3.3.9 and JDK 8 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/711">#711</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>The XML report now has an optional attribute <code>sourcefilename</code> |
| on the <code>class</code> element to allow unambiguously relate classes |
| to source files. The JaCoCo DTD version has been updated to 1.1 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/702">#702</a>).</li> |
| </ul> |
| |
| <h2>Release 0.8.1 (2018/03/21)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>JaCoCo now supports Java 10 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/629">#629</a>).</li> |
| <li>Empty constructor without parameters in enum is filtered out during |
| generation of report |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/649">#649</a>).</li> |
| </ul> |
| |
| <h2>Release 0.8.0 (2018/01/02)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>JaCoCo now officially supports Java 9 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li> |
| <li>JaCoCo now comes with a simple command line interface |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/525">#525</a>).</li> |
| <li>Limit configuration of Maven <code>check</code> goal and Ant |
| <code>check</code> element now also supports percentage values |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/534">#534</a>).</li> |
| <li>Manifests of JAR files now have <code>Automatic-Module-Name</code> for Java 9 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/565">#565</a>).</li> |
| <li>Maven aggregated reports will now also include modules of <code>runtime</code> |
| and <code>provided</code> dependencies |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/498">#498</a>, |
| <a href="https://github.com/jacoco/jacoco/issues/572">#572</a>).</li> |
| </ul> |
| |
| <p> |
| During creation of reports various compiler generated artifacts are filtered |
| out, which otherwise require unnecessary and sometimes impossible tricks to |
| not have partial or missed coverage: |
| </p> |
| |
| <ul> |
| <li>Methods <code>valueOf</code> and <code>values</code> of enum types |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/491">#491</a>).</li> |
| <li>Private empty no-argument constructors |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/529">#529</a>).</li> |
| <li>Methods annotated with <code>@lombok.Generated</code> to better integrate |
| with Lombok >= 1.16.14. Initial analysis and contribution by RĂ¼diger zu Dohna |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/513">#513</a>).</li> |
| <li>Methods annotated with <code>@groovy.transform.Generated</code> to better |
| integrate with Groovy >= 2.5.0. Thanks to Andres Almiray for adding the annotation to Groovy |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/610">#610</a>).</li> |
| <li>Part of bytecode for <code>synchronized</code> blocks |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/501">#501</a>).</li> |
| <li>Part of bytecode for try-with-resources statements |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/500">#500</a>).</li> |
| <li>Part of bytecode for <code>finally</code> blocks |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/604">#604</a>).</li> |
| <li>Part of bytecode for <code>switch</code> statements on |
| <code>java.lang.String</code> values |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/596">#596</a>).</li> |
| </ul> |
| |
| <p> |
| Note: Tools that directly read <code>exec</code> files and embed JaCoCo for |
| this (such as SonarQube or Jenkins) will provide filtering functionality only |
| after they updated to this version of JaCoCo. |
| </p> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Fixed bug in instrumentation of exception handlers, which was causing damage |
| of structured locking in certain situations and as consequence poor |
| performance of instrumented methods, analysis and fix contributed by Allen Hair |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/627">#627</a>).</li> |
| <li><code>dump</code> commands now report error when server unexpectedly |
| closes connection without sending response |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/538">#538</a>).</li> |
| <li>Reduced chance of conflict with other agents |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/555">#555</a>).</li> |
| <li>Restored Maven <code>help</code> goal that was missing in version 0.7.9 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/559">#559</a>).</li> |
| <li><code>NullPointerException</code> during offline instrumentation of |
| <code>module-info.class</code> |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>, |
| GitHub <a href="https://github.com/jacoco/jacoco/issues/634">#634</a>).</li> |
| <li>Incorrect update of frames caused by bug in ASM library |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li> |
| <li>Loss of <code>InnerClasses</code> attribute caused by bug in ASM library |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li> |
| <li><code>NegativeArraySizeException</code> during instrumentation caused by bug |
| in ASM library |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 6.0 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li> |
| <li>More information about context is provided when unable to read input during |
| instrumentation |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/527">#527</a>).</li> |
| <li>More information about context is provided when unable to read stream during |
| analysis |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/541">#541</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.9 (2017/02/05)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>"<code>java.lang.ClassFormatError: Short length on BootstrapMethods in class file</code>" |
| caused by bug in ASM library |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/462">#462</a>).</li> |
| <li>Do not recompute frames in case of large methods, otherwise |
| <code>java.lang.ClassNotFoundException</code> might be thrown |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/177">#177</a>).</li> |
| <li><code>ExecutionDataWriter.FORMAT_VERSION</code> is not a compile-time constant |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/474">#474</a>).</li> |
| <li>Maven goal "prepare-agent" should not overwrite existing property value if execution was skipped |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/486">#486</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li><code>JaCoCo.ASM_API_VERSION</code> removed |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/474">#474</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 5.2.</li> |
| <li>OSGi metadata now generated automatically and additionally include |
| <code>uses</code> directives, <code>Require-Capability</code> attribute, |
| and export of all internal packages with <code>x-internal:=true</code> directive |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/211">#211</a>).</li> |
| <li>Removed OSGi attributes that were mistakenly added in version 0.6.1 into |
| <code>jacocoant.jar</code> that contains all dependencies |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/211">#211</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.8 (2016/12/09)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>User property <code>jacoco.dataFile</code> for parameter <code>dataFile</code> |
| of Maven <code>report</code> goal |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/322">#322</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Use <code>RoundingMode#FLOOR</code> instead of |
| <code>RoundingMode#HALF_EVEN</code> for percentages in HTML report, so that |
| "99.5" is displayed as "99%", not as "100%" |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/452">#452</a>).</li> |
| <li>Do not add useless members into Java 8 interfaces that have only interface |
| initialization and abstract methods |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/441">#441</a>).</li> |
| <li>Fix instrumentation to not violate Java Virtual Machine Specification regarding |
| initialization of final fields, otherwise <code>IllegalAccessError</code> |
| will be thrown starting from OpenJDK 9 EA b127 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/434">#434</a>).</li> |
| <li>Fix instrumentation of interfaces with default methods to not create incorrect |
| constant pool entries, which lead to <code>IncompatibleClassChangeError</code> |
| starting from OpenJDK 9 EA b122 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/428">#428</a>).</li> |
| <li>Add Maven goal <code>report-aggregate</code> to lifecycle-mapping-metadata.xml |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/427">#427</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Released JaCoCo JARs are not signed any more. Signed versions of JaCoCo are |
| now available from the Eclipse Orbit project |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/466">#466</a>).</li> |
| <li>Simplified numbering of versions - JaCoCo JARs in Maven Central repository |
| do not have qualifier any more |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/468">#468</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.7 (2016/06/06)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New Maven goal <code>report-aggregate</code> to create reports for |
| multi-module projects |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/388">#388</a>).</li> |
| <li>New parameters <code>title</code> and <code>footer</code> for Maven |
| reporting goals allow customization of generated reports.</li> |
| <li>Renamed "dot" resources in generated HTML reports to become more web |
| hosting friendly |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/401">#401</a>).</li> |
| <li>Experimental support for Java 9 class files |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/406">#406</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Don't suppress EOF errors in case of truncated execution data files |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/397">#397</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 5.1.</li> |
| <li>Empty probe arrays are not written to execution data files any more. This |
| reduces exec file size significantly for per-test data dumps. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/387">#387</a>).</li> |
| <li>More information about context is provided when unable to read input during |
| analysis. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/400">#400</a>).</li> |
| <li>Require at least Maven 3.0 for build of JaCoCo.</li> |
| </ul> |
| |
| |
| <h2>Release 0.7.6 (2016/02/18)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New agent option <code>inclnolocationclasses</code> to support execution |
| environments like Android where no source location is provided with classes |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/288">#288</a>).</li> |
| <li>Improved error message in case of incompatible execution data files. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/319">#319</a>).</li> |
| <li>Command line agent options now supports comma in file names. Contributed |
| by Jochen Berger. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/358">#358</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Fix <code>MBeanClient</code> example |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/333">#333</a>).</li> |
| <li>Avoid <code>ConcurrentModificationException</code> during shutdown |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/364">#364</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>In case of incompatible execution data formats read from another JaCoCo |
| version <code>ExecutionDataReader.read()</code> now throws a |
| <code>IncompatibleExecDataVersionException</code>.</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 5.0.4.</li> |
| </ul> |
| |
| |
| <h2>Release 0.7.5 (2015/05/24)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Better detection of coverage in code blocks with implicit exceptions. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/310">#310</a>).</li> |
| <li>Added lifecycle-mapping-metadata.xml for M2E |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/203">#203</a>).</li> |
| <li>Allow locales with country and variant for Ant report task |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/289">#289</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>For the Ant tasks <code>coverage</code> and <code>agent</code> the |
| <code>destfile</code> attribute is now passed as an absolute path also in |
| the default case |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/301">#301</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>The exec file version has been updated and is not compatible with previous |
| versions.</li> |
| </ul> |
| |
| <h2>Release 0.7.4 (2015/02/26)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Restored exec file compatibility with version 0.7.2 by fixing missing |
| probes in case of try/catch blocks which are jump targets. |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/286">#286</a>).</li> |
| </ul> |
| |
| |
| <h2>Release 0.7.3 (2015/02/19)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>For offline instrumemtation agent configuration supports system properties |
| replacements. Implementation based on pull request of GitHub user 'debugger' |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/262">#262</a>).</li> |
| <li>Exclude dynamically generated classes from instrumentation for better |
| interoperability with JMockit, analysis contributed by Rogério Liesenfeld |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/272">#272</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Instrumented bytecode now compatible with Android ART runtime, analysis |
| and fix contributed by Allen Hair |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/265">#265</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.2 (2014/09/12)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Do not ignore synthetic lambda methods to get code coverage for Java 8 |
| lambda expressions |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/232">#232</a>).</li> |
| </ul> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New configuration option for the JaCoCo agent |
| <code>inclbootstrapclasses</code> to also instrument classes from the |
| bootstrap class loader |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/49">#49</a>).</li> |
| <li>Agent uses unique file names to dump class files |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/225">#225</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.1 (2014/05/08)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Fixed failure with default methods in Java 8 interfaces |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/201">#201</a>).</li> |
| <li>Better interoperability with JMockit, analysis and fix contributed by Rogério |
| Liesenfeld (GitHub <a href="https://github.com/jacoco/jacoco/issues/35">#35</a> |
| and <a href="https://github.com/jacoco/jacoco/issues/54">#54</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 5.0.1 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/201">#201</a>).</li> |
| </ul> |
| |
| <h2>Release 0.7.0 (2014/03/18)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>JaCoCo now supports Java 8 |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/74">#74</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo now depends on ASM 5.0 using asm-debug-all instead of asm-all |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/199">#199</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.5 (2014/03/03)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Warnings are logged during report generation if different versions of |
| classes are used than at runtime (GitHub <a href="https://github.com/jacoco/jacoco/issues/185">#185</a>).</li> |
| <li>Signatures are removed from instrumented JAR files |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/186">#186</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Skip jacoco instrumentation for mvn modules with package type ear (GitHub <a href="https://github.com/jacoco/jacoco/issues/169">#169</a>).</li> |
| <li>Align skip conditions and messages for Maven goals and give reasons. This |
| includes removal of the specific skip condition for packages e.g. POMs and |
| instead checks existence of <tt>target/classes</tt> in appropriate goals |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/171">#171</a>).</li> |
| <li>GitHub #44: (Regression) Agent Mojo should set empty property, if execution was skipped |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/192">#192</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Restrict visibility of methods in abstract classes of jacoco-maven-plugin (GitHub <a href="https://github.com/jacoco/jacoco/issues/175">#175</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.4 (2013/12/10)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for Android <i>Strict Mode</i> (GitHub <a href="https://github.com/jacoco/jacoco/issues/113">#113</a>).</li> |
| <li>New dump Mojo for Maven plug-in (GitHub <a href="https://github.com/jacoco/jacoco/issues/107">#107</a>).</li> |
| <li>New merge Mojo for Maven plug-in, contributed by Mads Mohr Christensen |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/126">#126</a>).</li> |
| <li>Additional list of source files for every package in HTML report |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/142">#142</a>).</li> |
| <li>Additional report-integration and prepare-agent-integration goals for |
| integration tests. (GitHub <a href="https://github.com/jacoco/jacoco/issues/152">#152</a>, <a href="https://github.com/jacoco/jacoco/issues/161">#161</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Multiple executions of Maven goal "prepare-agent" should not lead to |
| incorrect configuration (GitHub <a href="https://github.com/jacoco/jacoco/issues/40">#40</a>).</li> |
| <li>Avoid direct dependency on java.lang.management APIs to allow usage on |
| Android (GitHub <a href="https://github.com/jacoco/jacoco/issues/150">#150</a>).</li> |
| <li>All JaCoCo Maven goals are marked as thread-safe (GitHub <a href="https://github.com/jacoco/jacoco/issues/133">#133</a>).</li> |
| <li>check and merge goal failures in jacoco-maven-plugin with Maven 2.2.1 |
| due to incompatible configuration (GitHub <a href="https://github.com/jacoco/jacoco/issues/129">#129</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>New API package <code>org.jacoco.core.tools</code> for shared high-level |
| tools. (GitHub <a href="https://github.com/jacoco/jacoco/issues/159">#159</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.3 (2013/06/03)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for archives in Pack200 format (GitHub <a href="https://github.com/jacoco/jacoco/issues/91">#91</a>).</li> |
| <li>The coverage check has been reworked to allow checks on all counter values |
| on all element types (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li> |
| <li>Coverage checks are now also available in Ant (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Fixed inconsistent stackmap frames when instrumenting class files produced |
| by certain tools like ProGuard (GitHub <a href="https://github.com/jacoco/jacoco/issues/85">#85</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>More context information when exceptions occur during analysis or |
| instrumentation (GitHub <a href="https://github.com/jacoco/jacoco/issues/104">#104</a>).</li> |
| <li>If analysis is performed on offline instrumented classes - which is an |
| build configuration error - an exception is now thrown (GitHub <a href="https://github.com/jacoco/jacoco/issues/108">#108</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>The configuration of the Maven check goal has been reworked to support |
| checks on any element type (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li> |
| <li><code>Analyzer</code> and <code>Instrumenter</code> expect resource name |
| as additional parameter for better error messages (GitHub <a href="https://github.com/jacoco/jacoco/issues/104">#104</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.2 (2013/02/03)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for offline instrumentation (GitHub <a href="https://github.com/jacoco/jacoco/issues/4">#4</a>, <a href="https://github.com/jacoco/jacoco/issues/64">#64</a>).</li> |
| <li>JaCoCo agent exposes runtime API for direct integration with application |
| under test (GitHub <a href="https://github.com/jacoco/jacoco/issues/61">#61</a>).</li> |
| <li>Support for parallel test execution: Different agents can now safely write |
| to the same <code>*.exec</code> file (GitHub <a href="https://github.com/jacoco/jacoco/issues/52">#52</a>).</li> |
| <li>New output mode 'none' can be used when agent is only controlled via JMX |
| or its new runtime API (GitHub <a href="https://github.com/jacoco/jacoco/issues/63">#63</a>).</li> |
| <li>Better error message in case of invalid stackmap frames (GitHub <a href="https://github.com/jacoco/jacoco/issues/73">#73</a>).</li> |
| <li>jacoco-maven-plugin: default phase for goal "report" - "verify" |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/72">#72</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>For every build the corresponding Git commit hash is included as |
| <code>Eclipse-SourceReferences</code> manifest headers (GitHub <a href="https://github.com/jacoco/jacoco/issues/7">#7</a>, <a href="https://github.com/jacoco/jacoco/issues/59">#59</a>).</li> |
| <li>Adjust saturation of red source highlighting in HTML reports to make |
| JaCoCo reports more accessible to red/green blind users.</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>The <code>output</code> mode <code>mbean</code> of the agent has been |
| dropped in favor of the new boolean option <code>jmx</code>. This allows |
| to combine JMX access with any other output mode (GitHub <a href="https://github.com/jacoco/jacoco/issues/62">#62</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.1 (2012/12/23)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Add a coverage check Mojo, contributed by Kyle Lieber (GitHub <a href="https://github.com/jacoco/jacoco/issues/6">#6</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>jacocoant.jar should not conflict with ASM 3.x (GitHub <a href="https://github.com/jacoco/jacoco/issues/39">#39</a>).</li> |
| <li>Agent Mojo should set empty property, if execution was skipped |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/44">#44</a>).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Upgrade to ASM 4.1 (GitHub <a href="https://github.com/jacoco/jacoco/issues/37">#37</a>).</li> |
| <li>Log location of merged execution data file in Ant <code>merge</code> task |
| (GitHub <a href="https://github.com/jacoco/jacoco/issues/29">#29</a>).</li> |
| </ul> |
| |
| <h2>Release 0.6.0 (2012/10/06)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Full support for Java 7 including INVOKEDYNAMIC as JaCoCo is now based |
| on ASM 4.0 (GitHub <a href="https://github.com/jacoco/jacoco/issues/5">#5</a>).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>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 <a href="https://github.com/jacoco/jacoco/issues/19">#19</a>).</li> |
| <li>Maven plugin should fail if unable to read execution data file or create |
| report (GitHub <a href="https://github.com/jacoco/jacoco/issues/19">#19</a>).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Only colon as separator character supported in agent parameters. The |
| deprecated pipe character is no longer supported.</li> |
| </ul> |
| |
| <h2>Release 0.5.10 (2012/08/31)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Correct stackmap frames for new <code>long[]</code> arrays (SF #3553210).</li> |
| <li>Properly resolve the <code>fork</code> variable for tasks wrapped by the |
| <code>coverage</code> Ant task (Trac #213).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Source tree has been migrated to Git and is now hosted on Github at |
| <a href="https://github.com/jacoco/jacoco">https://github.com/jacoco/jacoco</a>.</li> |
| </ul> |
| |
| <h2>Release 0.5.9 (2012/07/30)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Don't produce invalid class files in case of unexpected stackmap frames |
| (SF #3543758).</li> |
| </ul> |
| |
| <h2>Release 0.5.8 (2012/07/11)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for parallel Maven builds (Trac #191).</li> |
| <li>New agent option <code>classdumpdir</code> to dump all class files seen |
| by the JaCoCo agent to disk. This option is also available for Ant and |
| Maven (Trac #208).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Allow instrumentation of classes with dead code (SF #3538112).</li> |
| <li>Reworked instrumentation strategy to avoid verifier error "Uninitialized |
| object exists on backward branch" with certain Java 7 class files |
| (Trac #154).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Documentation now includes Maven example and Maven goal documentation |
| (Trac #201, #202).</li> |
| </ul> |
| |
| <h2>Release 0.5.7 (2012/04/19)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for class redefinitions by other agents like JMockit (SF #3509409).</li> |
| <li>Remove class file attributes with invalid code offsets caused by other |
| byte code processing tools to avoid verifier errors (Trac #196).</li> |
| <li>Improved logging for Ant tasks (SF #3518429).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>In case of failures the agent should log the original exception.</li> |
| </ul> |
| |
| <h2>Release 0.5.6 (2012/01/23)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>jacoco-maven-plugin can be used together with maven-site-plugin (Trac #181).</li> |
| <li>The <code>report</code> 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).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Don't insert stackmap frames for class files before version 1.6.</li> |
| <li>Regression, which was introduced in 0.5.4 - restored compatibility of jacoco-maven-plugin with Maven 2 (Trac #182).</li> |
| </ul> |
| |
| <h2>Release 0.5.5 (2011/12/15)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Correct default value for the <code>append</code> property of the |
| <code>dump</code> Ant task is <code>true</code> (Trac #178).</li> |
| <li>Try/catch blocks must not be counted as instructions (Trac #179).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Upgrade to ASM 3.3.1.</li> |
| </ul> |
| |
| <h2>Release 0.5.4 (2011/11/11)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Maven plug-in: respect <code>includes</code> and <code>excludes</code> |
| properties in report Mojo (Trac #160). |
| Also note that: |
| <pre class="source lang-xml"> |
| <configuration> |
| <includes>org.foo.*:org.bar.*</includes> |
| <excludes>com.foo.*:com.bar.*</excludes> |
| </configuration> |
| </pre> |
| must be replaced on: |
| <pre class="source lang-xml"> |
| <configuration> |
| <includes> |
| <include>org.foo.*</include> |
| <include>org.bar.*</include> |
| </includes> |
| <excludes> |
| <exclude>com.foo.*</exclude> |
| <exclude>com.bar.*</exclude> |
| </excludes> |
| </configuration> |
| </pre> |
| </li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li><code>Instrumenter</code> now only requires |
| <code>IExecutionDataAccessorGenerator</code> instead of |
| <code>IRuntime</code> (Trac #174).</li> |
| <li>Removed reference to internal implementation classes from |
| <code>CoverageBuilder</code> API.</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Release bundles from now on signed again.</li> |
| <li>Several documentation updates.</li> |
| </ul> |
| |
| <h2>Release 0.5.3 (2011/07/06)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New Maven plug-in for JaCoCo agent setup and basic reporting (Trac #25).</li> |
| <li>Additional output mode implementation for JaCoCo agent based on JMX.</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Fixed problem with reporting of nested group structures (Trac #157).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>JaCoCo build based on Maven (Trac #136).</li> |
| <li>JaCoCo published to Maven repository (Trac #149).</li> |
| </ul> |
| |
| <h2>Release 0.5.2 (2011/05/19)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>JaCoCo reports cyclomatic complexity numbers (Trac #129).</li> |
| <li>For HTML reports the tab width can be specified on the |
| <code>sourcefiles</code> attribute of the <code>report</code> Ant task |
| (Track #152).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Removed duplicate counters in the root node of XML reports (Trac #155).</li> |
| <li>Avoid <code>StackOverflowException</code> when analyzing methods with very |
| long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet |
| for reporting and analyzing this!</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li><code>ICoverageNode</code> API has been extended for cyclomatic |
| complexity (Trac #129).</li> |
| <li>XML and CSV report includes new counter type <code>COMPLEXITY</code> |
| (Trac #129).</li> |
| <li>New method <code>getTabWidth()</code> in callback interface |
| <code>ISourceFileLocator</code> instead of |
| <code>HTMLReportFormatter.setTabWidth()</code> which has been removed. |
| (Trac #152).</li> |
| </ul> |
| |
| <h2>Release 0.5.1 (2011/03/21)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Duplicate classes with identical identifiers are now ignored during |
| analysis.</li> |
| <li>Added support for TestNG to Ant task Coverage (Track #144).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Calculate correct stackmap frames for Java 1.6 branches (Trac #139).</li> |
| <li>Link source files also for classes in default package (Trac #151).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>API documentation cleanup (Track #140).</li> |
| <li>Removed obsolete examples from documentation (Trac #141).</li> |
| <li>Added reporting API example (Trac #146).</li> |
| <li>Reduced file size of HTML report source pages (Trac #148).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Simplified reporting API (Trac #53).</li> |
| <li>Use colon as separator character in agent parameters (Trac #143).</li> |
| <li>Now also empty files are accepted as <code>*.exec</code> files (Trac #150).</li> |
| </ul> |
| |
| <h2>Release 0.5.0 (2011/01/19)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>JaCoCo now reports branch coverage (Track #66).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Only process actual Java class files during analysis (SF #3106102).</li> |
| <li>Fix broken source links due to sort hash (Track #125).</li> |
| <li>Fixed invalid OSGi headers in MANIFEST.MF files (Track #127).</li> |
| <li>Try to avoid interference with Hibernate (SF #3134190).</li> |
| <li>Provide proper error message in case of duplicate class names in the same |
| group (SF #3110219).</li> |
| <li>Allow any number of probes in static interface initializers (SF #3161106).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>All analysis specific APIs have been moved to package |
| <code>org.jacoco.core.analysis</code>.</li> |
| <li>The <code>IStructureVisitor</code> interface has been replaced by a |
| simplified version called <code>ICoverageVisitor</code> (Track #132).</li> |
| <li>All counter creation and update APIs now accept <i>missed items</i> and |
| <i>covered items</i> as parameters (Track #131).</li> |
| <li>Instructions are now counted on a per line basis. Therefore some |
| interfaces in the <code>org.jacoco.core.analysis</code> package have |
| changed as well as the <code>line</code> element in the XML report |
| (Track #130).</li> |
| <li>Several internal implementation classes have removed from the core APIs or |
| have been replaced by new interfaces (Track #133).</li> |
| </ul> |
| |
| <h2>Release 0.4.1 (2010/10/07)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New attribute <code>line</code> for <code>method</code> elements in the |
| XML report containing the first source line number of the method. |
| (Track #120).</li> |
| <li>Optional <code>locale</code> attribute for number rendering HTML reports, |
| also available as an attribute of the <code>html</code> tag of the |
| <code>report</code> Ant task (Track #122).</li> |
| <li>Coverage tables in HTML report are now sortable (Track #98).</li> |
| <li>The <code>report</code> Ant task issues a warning if source files are |
| provided but class files do not contain debug information to collect line |
| numbers (SF #3024486).</li> |
| </ul> |
| |
| <h3>Non-functional Changes</h3> |
| <ul> |
| <li>Reduced memory footprint for coverage data by 30% (Track #106).</li> |
| <li>Moved to Eclipse 3.6.x as development environment (Trac #115).</li> |
| <li>All delivered bundles and JAR files are signed (Trac #118).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Better error message when multiple JaCoCo agents are specified |
| (Track #103).</li> |
| <li>Fixed potential NPE at shutdown when running agent in |
| <code>tcpserver</code> mode (Track #117).</li> |
| <li>Agent now fails at startup when execution data file can't be opened |
| (Track #121).</li> |
| </ul> |
| |
| <h2>Release 0.4.0 (2010/06/04)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Execution data now includes session information: an arbitrary identifier, |
| the start time and dump time (Trac #88).</li> |
| <li>Added session information to XML report (Trac #92).</li> |
| <li>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).</li> |
| <li>The agent now supports remote dumps via TCP/IP connections (Trac #82).</li> |
| <li>New Ant task <code>dump</code> to remotely collect coverage data from |
| agents (Trac #100).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Execution data file header is written and read in any case (Trac #72).</li> |
| <li>Added <code>dumponexit</code> to agent options (Trac #82).</li> |
| <li>Added <code>sessionid</code> to agent options (Trac #88).</li> |
| <li>Added <code>output, address and port</code> to agent options (Trac #82).</li> |
| <li>Additional and modified methods in <code>IRuntime</code> to produce |
| session information (Trac #88).</li> |
| <li>Coverage element type <code>SESSION</code> removed (Trac #95).</li> |
| <li>Removed several internal APIs from package |
| <code>org.jacoco.core.instr</code> used for class instrumentation.</li> |
| <li>Renamed class <code>org.jacoco.report.csv.CsvFormatter</code> to |
| <code>CSVFormatter</code> (upper case) for consistency with other |
| formatters.</li> |
| </ul> |
| |
| <h2>Release 0.3.3 (2010/04/19)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Support for different archives (jar, war, ear etc.) and nested archives |
| (Trac #78).</li> |
| <li>XML report with line level coverage information (requested for Sonar).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Correct stackmap frames for Java 1.6 class files. (Track #81).</li> |
| <li>Avoid usage of <code>LocalVariableSorter</code> due to ASM bug #314563 |
| (Track #69).</li> |
| <li>Nested Java/JUnit Ant tasks not being executed when coverage task disabled. (Track #85).</li> |
| </ul> |
| |
| <h2>Release 0.3.2 (2010/04/01)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>New HTML report option to directly create a zip file containing the report |
| (Trac #12).</li> |
| <li>Code coverage for static initializers in interfaces (Trac #21).</li> |
| <li>Better error handling for <code>report</code> Ant task (Trac #71).</li> |
| <li>Classes without instructions are excluded from reports (Trac #73).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>XML and CSV report output now also works for structures without groups |
| (Track #76).</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Consistent usage of the term "Missed" instead of "NotCovered" in all APIs |
| (Trac #72).</li> |
| <li>To support "off-line" instrumentation scenarios it is not required any |
| more to register instrumented classes with the runtime (Trac #74).</li> |
| </ul> |
| |
| <h2>Release 0.3.1 (2010/02/09)</h2> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>Ant tasks broken on Linux (Trac #68).</li> |
| </ul> |
| |
| <h2>Release 0.3.0 (2010/02/02)</h2> |
| |
| <h3>New Features</h3> |
| <ul> |
| <li>Report renders anonymous classes with type information (Trac #46).</li> |
| <li><code>enabled</code> property added to <code>agent</code> and |
| <code>coverage</code> Ant tasks (Trac #63).</li> |
| <li>Ant task <code>merge</code> added (Trac #52).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| <ul> |
| <li>New <code>IRuntime</code> implementation enables JaCoCo usage for J2EE |
| application servers like Glassfish.</li> |
| </ul> |
| |
| <h3>API Changes</h3> |
| <ul> |
| <li>Agent option and Ant task parameter <code>file</code> changed to |
| <code>destfile</code> (Trac #59).</li> |
| <li>Agent option and Ant task parameter <code>merge</code> changed to |
| <code>append</code> (Trac #51).</li> |
| </ul> |
| |
| <h2>Release 0.2.0 (2010/01/08)</h2> |
| |
| <h3>New Features</h3> |
| |
| <ul> |
| <li>Simplified probe data structure reduces memory usage (Trac #47).</li> |
| <li>Performance test becomes part of the build.</li> |
| <li>New bundle <code>org.jacoco.agent</code> that provides the Java agent |
| as a resource (Trac #50).</li> |
| </ul> |
| |
| <h3>Fixed Bugs</h3> |
| |
| <ul> |
| <li><code>ArrayIndexOutOfBoundsException</code> due to inconsistent processing |
| while instrumentation and analysis (Trac #44).</li> |
| </ul> |
| |
| <h2>Release 0.1.0 (2009/10/28)</h2> |
| |
| <p> |
| The very first JaCoCo release. |
| </p> |
| |
| </div> |
| <div class="footer"> |
| <span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span> |
| <a href="license.html">Copyright</a> © @copyright.years@ Mountainminds GmbH & Co. KG and Contributors |
| </div> |
| |
| </body> |
| </html> |