<?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>Exclude from a report enum methods <code>valueOf</code> and <code>values</code>
      that are created by compiler
      (GitHub <a href="https://github.com/jacoco/jacoco/issues/491">#491</a>).</li>
  <li>Exclude from a report a part of bytecode that compiler generates for a
      synchronized statement
      (GitHub <a href="https://github.com/jacoco/jacoco/issues/501">#501</a>).</li>
  <li>Maven aggregated reports will now also include modules of runtime dependencies
      (GitHub <a href="https://github.com/jacoco/jacoco/issues/498">#498</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">
&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>
