<?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> &gt;
  <a href="index.html" class="el_group">Documentation</a> &gt;
  <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>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>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>

<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">
&lt;configuration&gt;
  &lt;includes&gt;org.foo.*:org.bar.*&lt;/includes&gt;
  &lt;excludes&gt;com.foo.*:com.bar.*&lt;/excludes&gt;
&lt;/configuration&gt;
</pre>
      must be replaced on:
<pre class="source lang-xml">
&lt;configuration&gt;
  &lt;includes&gt;
    &lt;include>org.foo.*&lt;/include&gt;
    &lt;include>org.bar.*&lt;/include&gt;
  &lt;/includes&gt;
  &lt;excludes&gt;
    &lt;exclude&gt;com.foo.*&lt;/exclude&gt;
    &lt;exclude&gt;com.bar.*&lt;/exclude&gt;
  &lt;/excludes&gt;
&lt;/configuration&gt;
</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> &copy; @copyright.years@ Mountainminds GmbH &amp; Co. KG and Contributors
</div>

</body>
</html>
