xref: /aosp_15_r20/external/jacoco/org.jacoco.doc/docroot/doc/changes.html (revision 7e63c1270baf9bfa84f5b6aecf17bd0c1a75af94)
1*7e63c127SSorin Basca<?xml version="1.0" encoding="UTF-8" ?>
2*7e63c127SSorin Basca<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3*7e63c127SSorin Basca<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
4*7e63c127SSorin Basca<head>
5*7e63c127SSorin Basca  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6*7e63c127SSorin Basca  <link rel="stylesheet" href="resources/doc.css" charset="UTF-8" type="text/css" />
7*7e63c127SSorin Basca  <link rel="shortcut icon" href="resources/report.gif" type="image/gif" />
8*7e63c127SSorin Basca  <title>JaCoCo - Change History</title>
9*7e63c127SSorin Basca</head>
10*7e63c127SSorin Basca<body>
11*7e63c127SSorin Basca
12*7e63c127SSorin Basca<div class="breadcrumb">
13*7e63c127SSorin Basca  <a href="../index.html" class="el_report">JaCoCo</a> &gt;
14*7e63c127SSorin Basca  <a href="index.html" class="el_group">Documentation</a> &gt;
15*7e63c127SSorin Basca  <span class="el_source">Change History</span>
16*7e63c127SSorin Basca</div>
17*7e63c127SSorin Basca<div id="content">
18*7e63c127SSorin Basca
19*7e63c127SSorin Basca<h1>Change History</h1>
20*7e63c127SSorin Basca
21*7e63c127SSorin Basca<h2>Release 0.8.7 (2020/05/04)</h2>
22*7e63c127SSorin Basca
23*7e63c127SSorin Basca<h3>New Features</h3>
24*7e63c127SSorin Basca<ul>
25*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 15 and 16
26*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1094">#1094</a>,
27*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1097">#1097</a>,
28*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1176">#1176</a>).</li>
29*7e63c127SSorin Basca  <li>Experimental support for Java 17 class files
30*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1132">#1132</a>).</li>
31*7e63c127SSorin Basca  <li>New <code>formats</code> parameter for Maven report goals to specify the
32*7e63c127SSorin Basca      generated report formats. Contributed by troosan.
33*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1175">#1175</a>).</li>
34*7e63c127SSorin Basca  <li>Branch added by the Kotlin compiler version 1.4.0 and above for "unsafe" cast
35*7e63c127SSorin Basca      operator is filtered out during generation of report
36*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1143">#1143</a>,
37*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1178">#1178</a>).</li>
38*7e63c127SSorin Basca  <li><code>synthetic</code> methods added by the Kotlin compiler version 1.5.0 and
39*7e63c127SSorin Basca      above for <code>private</code> suspending functions are filtered out
40*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1174">#1174</a>).</li>
41*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler version 1.4.20 and above for suspending
42*7e63c127SSorin Basca      lambdas are filtered out during generation of report
43*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1149">#1149</a>).</li>
44*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler version 1.5.0 and above for functions
45*7e63c127SSorin Basca      with default arguments are filtered out during generation of report
46*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1162">#1162</a>).</li>
47*7e63c127SSorin Basca  <li>Branch added by the Kotlin compiler version 1.5.0 and above for reading from
48*7e63c127SSorin Basca      <code>lateinit</code> property is filtered out during generation of report
49*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1166">#1166</a>).</li>
50*7e63c127SSorin Basca  <li>Additional bytecode generated by the Kotlin compiler version 1.5.0 and above
51*7e63c127SSorin Basca      for <code>when</code> expressions on <code>kotlin.String</code> values
52*7e63c127SSorin Basca      is filtered out during generation of report
53*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1172">#1172</a>).</li>
54*7e63c127SSorin Basca  <li>Improved filtering of bytecode generated by Kotlin compiler versions below
55*7e63c127SSorin Basca      1.5.0 for <code>when</code> expressions on <code>kotlin.String</code> values
56*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1156">#1156</a>).</li>
57*7e63c127SSorin Basca</ul>
58*7e63c127SSorin Basca
59*7e63c127SSorin Basca<h3>Fixed bugs</h3>
60*7e63c127SSorin Basca<ul>
61*7e63c127SSorin Basca  <li>Fixed parsing of SMAP generated by Kotlin compiler version 1.5.0 and above
62*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1164">#1164</a>).</li>
63*7e63c127SSorin Basca</ul>
64*7e63c127SSorin Basca
65*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
66*7e63c127SSorin Basca<ul>
67*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 9.1
68*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1094">#1094</a>,
69*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1097">#1097</a>,
70*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1153">#1153</a>).</li>
71*7e63c127SSorin Basca  <li>Maven plug-in has no dependency on <code>maven-reporting-impl</code> any more
72*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1121">#1121</a>).</li>
73*7e63c127SSorin Basca</ul>
74*7e63c127SSorin Basca
75*7e63c127SSorin Basca<h2>Release 0.8.6 (2020/09/15)</h2>
76*7e63c127SSorin Basca
77*7e63c127SSorin Basca<h3>New Features</h3>
78*7e63c127SSorin Basca<ul>
79*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 14.</li>
80*7e63c127SSorin Basca  <li>Experimental support for Java 15 class files
81*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/992">#992</a>).</li>
82*7e63c127SSorin Basca  <li>Experimental support for Java 16 class files
83*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1059">#1059</a>).</li>
84*7e63c127SSorin Basca  <li>Methods <code>toString</code>, <code>hashCode</code> and <code>equals</code>
85*7e63c127SSorin Basca      generated by compiler for records are filtered out during generation of report
86*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/990">#990</a>).</li>
87*7e63c127SSorin Basca  <li>Bridge methods are filtered out during generation of report
88*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1010">#1010</a>).</li>
89*7e63c127SSorin Basca  <li>Methods generated by Kotlin compiler for non-overridden non-abstract methods
90*7e63c127SSorin Basca      of interfaces are filtered out during generation of report
91*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1012">#1012</a>).</li>
92*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler version 1.3.60 for suspending functions
93*7e63c127SSorin Basca      with tail call optimization are filtered out during generation of report
94*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1016">#1016</a>).</li>
95*7e63c127SSorin Basca</ul>
96*7e63c127SSorin Basca
97*7e63c127SSorin Basca<h3>Fixed bugs</h3>
98*7e63c127SSorin Basca<ul>
99*7e63c127SSorin Basca  <li>Compression method of zip entries is now preserved when instrumenting archives.
100*7e63c127SSorin Basca      This allows to use JaCoCo with frameworks that expect uncompressed entries
101*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1018">#1018</a>).</li>
102*7e63c127SSorin Basca</ul>
103*7e63c127SSorin Basca
104*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
105*7e63c127SSorin Basca<ul>
106*7e63c127SSorin Basca  <li>Support for Pack200 was removed in JDK 14. JaCoCo will now throw a detailed
107*7e63c127SSorin Basca      exception when Pack200 archives are processed with the latest JDKs
108*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/984">#984</a>).</li>
109*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 8.0.1
110*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/1032">#1032</a>,
111*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/1043">#1043</a>).</li>
112*7e63c127SSorin Basca</ul>
113*7e63c127SSorin Basca
114*7e63c127SSorin Basca<h3>API Changes</h3>
115*7e63c127SSorin Basca<ul>
116*7e63c127SSorin Basca  <li><code>URLStreamHandlerRuntime</code> removed
117*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/471">#471</a>).</li>
118*7e63c127SSorin Basca</ul>
119*7e63c127SSorin Basca
120*7e63c127SSorin Basca<h2>Release 0.8.5 (2019/10/11)</h2>
121*7e63c127SSorin Basca
122*7e63c127SSorin Basca<h3>New Features</h3>
123*7e63c127SSorin Basca<ul>
124*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 13</li>
125*7e63c127SSorin Basca  <li>Experimental support for Java 14 class files
126*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/897">#897</a>).</li>
127*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler for <code>open</code> functions with
128*7e63c127SSorin Basca      default arguments are filtered out during generation of report
129*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/887">#887</a>).</li>
130*7e63c127SSorin Basca</ul>
131*7e63c127SSorin Basca
132*7e63c127SSorin Basca<h3>Fixed bugs</h3>
133*7e63c127SSorin Basca<ul>
134*7e63c127SSorin Basca  <li><code>synthetic</code> constructors that contain values of default arguments
135*7e63c127SSorin Basca      in Kotlin should not be ignored
136*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/888">#888</a>).</li>
137*7e63c127SSorin Basca  <li>Instrumentation should update indexes of local variables in annotations
138*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/894">#894</a>).</li>
139*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler for functions with default arguments
140*7e63c127SSorin Basca      and containing arguments of type <code>long</code> or <code>double</code>
141*7e63c127SSorin Basca      should be filtered out during generation of report
142*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/908">#908</a>).</li>
143*7e63c127SSorin Basca  <li><code>synthetic</code> methods that contain bodies of anonymous functions
144*7e63c127SSorin Basca      in Scala should not be ignored
145*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/912">#912</a>).</li>
146*7e63c127SSorin Basca  <li>To avoid failures with invalid class files report generation now checks
147*7e63c127SSorin Basca      that source references are actually files
148*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/941">#941</a>).</li>
149*7e63c127SSorin Basca  <li><code>NullPointerException</code> during filtering
150*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/942">#942</a>,
151*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/944">#944</a>).</li>
152*7e63c127SSorin Basca</ul>
153*7e63c127SSorin Basca
154*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
155*7e63c127SSorin Basca<ul>
156*7e63c127SSorin Basca  <li>JaCoCo now distributed under the terms and conditions of the
157*7e63c127SSorin Basca      Eclipse Public License Version 2.0
158*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/943">#943</a>).</li>
159*7e63c127SSorin Basca  <li>Prevent startup when JaCoCo runtime cannot be initialized to avoid
160*7e63c127SSorin Basca      subsequent faults
161*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/910">#910</a>).</li>
162*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 7.2
163*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/947">#947</a>).</li>
164*7e63c127SSorin Basca</ul>
165*7e63c127SSorin Basca
166*7e63c127SSorin Basca<h3>API Changes</h3>
167*7e63c127SSorin Basca<ul>
168*7e63c127SSorin Basca    <li>The coverage check API and tools (Ant, Maven) now report an error, when
169*7e63c127SSorin Basca        a coverage ratio limit is configured outside the range [0,1] to avoid
170*7e63c127SSorin Basca        common configuration mistakes
171*7e63c127SSorin Basca        (GitHub <a href="https://github.com/jacoco/jacoco/issues/783">#783</a>).</li>
172*7e63c127SSorin Basca  <li>Unsupported class file versions are now consistently reported as exceptions
173*7e63c127SSorin Basca      by all methods of <code>Analyzer</code> and <code>Instrumenter</code> and
174*7e63c127SSorin Basca      thus also during report generation and offline instrumentation
175*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/952">#952</a>).</li>
176*7e63c127SSorin Basca</ul>
177*7e63c127SSorin Basca
178*7e63c127SSorin Basca<h2>Release 0.8.4 (2019/05/08)</h2>
179*7e63c127SSorin Basca
180*7e63c127SSorin Basca<h3>New Features</h3>
181*7e63c127SSorin Basca<ul>
182*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 12</li>
183*7e63c127SSorin Basca  <li>Instrumentation does not add synthetic field to Java 11+ class files,
184*7e63c127SSorin Basca      however still adds synthetic method
185*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/845">#845</a>).</li>
186*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler version 1.3.30 for suspending lambdas
187*7e63c127SSorin Basca      and functions are filtered out during generation of report
188*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/849">#849</a>).</li>
189*7e63c127SSorin Basca</ul>
190*7e63c127SSorin Basca
191*7e63c127SSorin Basca<h3>Fixed bugs</h3>
192*7e63c127SSorin Basca<ul>
193*7e63c127SSorin Basca  <li>Fixed incorrect update of frames caused by bug in ASM library in case of
194*7e63c127SSorin Basca      arrays with more than 7 dimensions
195*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/839">#839</a>).</li>
196*7e63c127SSorin Basca  <li>Fixed regression, which was introduced in 0.8.3 -
197*7e63c127SSorin Basca      <code>module-info.class</code> should be excluded from analysis to not cause
198*7e63c127SSorin Basca      <code>IllegalStateException</code>
199*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/859">#859</a>).</li>
200*7e63c127SSorin Basca</ul>
201*7e63c127SSorin Basca
202*7e63c127SSorin Basca<h3>API Changes</h3>
203*7e63c127SSorin Basca<ul>
204*7e63c127SSorin Basca    <li>Methods <code>Instrumenter.instrument(org.objectweb.asm.ClassReader)</code>
205*7e63c127SSorin Basca        and <code>Analyzer.analyzeClass(org.objectweb.asm.ClassReader)</code>
206*7e63c127SSorin Basca        were removed
207*7e63c127SSorin Basca        (GitHub <a href="https://github.com/jacoco/jacoco/issues/850">#850</a>).</li>
208*7e63c127SSorin Basca</ul>
209*7e63c127SSorin Basca
210*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
211*7e63c127SSorin Basca<ul>
212*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 7.1
213*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/851">#851</a>).</li>
214*7e63c127SSorin Basca</ul>
215*7e63c127SSorin Basca
216*7e63c127SSorin Basca<h2>Release 0.8.3 (2019/01/23)</h2>
217*7e63c127SSorin Basca
218*7e63c127SSorin Basca<h3>New Features</h3>
219*7e63c127SSorin Basca<ul>
220*7e63c127SSorin Basca  <li>jacoco-maven-plugin now requires at least Maven 3.0
221*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/821">#821</a>).</li>
222*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 11
223*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/760">#760</a>).</li>
224*7e63c127SSorin Basca  <li>Experimental support for Java 13 class files
225*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/835">#835</a>).</li>
226*7e63c127SSorin Basca  <li>Branch added by the Kotlin compiler for "unsafe" cast operator is filtered
227*7e63c127SSorin Basca      out during generation of report
228*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/761">#761</a>).</li>
229*7e63c127SSorin Basca  <li>Branch added by the Kotlin compiler for not-null assertion operator is
230*7e63c127SSorin Basca      filtered out during generation of report
231*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/815">#815</a>).</li>
232*7e63c127SSorin Basca  <li>Instructions inlined by Kotlin compiler are filtered out during generation
233*7e63c127SSorin Basca      of report
234*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/764">#764</a>).</li>
235*7e63c127SSorin Basca  <li>Branches added by the Kotlin compiler for suspending lambdas and functions
236*7e63c127SSorin Basca      are filtered out during generation of report
237*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/802">#802</a>,
238*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/803">#803</a>,
239*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/809">#809</a>).</li>
240*7e63c127SSorin Basca  <li>Classes and methods annotated by annotation whose retention policy is
241*7e63c127SSorin Basca      <code>runtime</code> or <code>class</code> and whose simple name contains
242*7e63c127SSorin Basca      "Generated" (previously equality was required) are filtered out during
243*7e63c127SSorin Basca      generation of report
244*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/822">#822</a>).</li>
245*7e63c127SSorin Basca  <li>HTML report shows message when source file can't be found
246*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/801">#801</a>).</li>
247*7e63c127SSorin Basca  <li>HTML report shows message when class has no debug information
248*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/818">#818</a>).</li>
249*7e63c127SSorin Basca  <li>HTML report shows message when analyzed class does not match executed
250*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/819">#819</a>).</li>
251*7e63c127SSorin Basca  <li>HTML report shows message when no class files specified and when
252*7e63c127SSorin Basca      none of the analyzed classes contain code relevant for code coverage
253*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/833">#833</a>).</li>
254*7e63c127SSorin Basca  <li>Empty class and sourcefile nodes are preserved and available in XML report
255*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/817">#817</a>).</li>
256*7e63c127SSorin Basca  <li>Agent avoids conflicts with other agents when running on Java 9+
257*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/829">#829</a>).</li>
258*7e63c127SSorin Basca</ul>
259*7e63c127SSorin Basca
260*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
261*7e63c127SSorin Basca<ul>
262*7e63c127SSorin Basca  <li><code>synthetic</code> methods that contain values of default arguments
263*7e63c127SSorin Basca      in Kotlin should not be ignored
264*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/774">#774</a>).</li>
265*7e63c127SSorin Basca  <li><code>synthetic</code> methods that represent <code>suspend</code>
266*7e63c127SSorin Basca      functions in Kotlin should not be ignored
267*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/804">#804</a>).</li>
268*7e63c127SSorin Basca  <li>Removed misleading parameters <code>includes</code> and
269*7e63c127SSorin Basca      <code>excludes</code> from <code>dump</code>, <code>merge</code> and
270*7e63c127SSorin Basca      <code>restore-instrumented-classes</code> goals of jacoco-maven-plugin,
271*7e63c127SSorin Basca      because they have no effect
272*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/827">#827</a>).</li>
273*7e63c127SSorin Basca</ul>
274*7e63c127SSorin Basca
275*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
276*7e63c127SSorin Basca<ul>
277*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 7.0
278*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/760">#760</a>).</li>
279*7e63c127SSorin Basca</ul>
280*7e63c127SSorin Basca
281*7e63c127SSorin Basca<h2>Release 0.8.2 (2018/08/21)</h2>
282*7e63c127SSorin Basca
283*7e63c127SSorin Basca<h3>New Features</h3>
284*7e63c127SSorin Basca<ul>
285*7e63c127SSorin Basca  <li>Experimental support for Java 11 and Java 12 class files, including
286*7e63c127SSorin Basca      JEP 12 "preview features"
287*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/719">#719</a>,
288*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/738">#738</a>,
289*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/743">#743</a>).</li>
290*7e63c127SSorin Basca  <li>Branches and instructions generated by javac 11 for try-with-resources
291*7e63c127SSorin Basca      statement are filtered out
292*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/669">#669</a>).</li>
293*7e63c127SSorin Basca  <li>Synthetic classes are filtered out during generation of report
294*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/668">#668</a>).</li>
295*7e63c127SSorin Basca  <li>Part of bytecode generated by ECJ for <code>switch</code> statements on
296*7e63c127SSorin Basca      <code>java.lang.String</code> values is filtered out during generation of
297*7e63c127SSorin Basca      report
298*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/735">#735</a>,
299*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/741">#741</a>,
300*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/746">#746</a>).</li>
301*7e63c127SSorin Basca  <li>Methods added by the Kotlin compiler that do not have line numbers are
302*7e63c127SSorin Basca      filtered out during generation of report. Idea and implementation by
303*7e63c127SSorin Basca      Nikolay Krasko
304*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/689">#689</a>).</li>
305*7e63c127SSorin Basca  <li>Branch added by the Kotlin compiler for reading from <code>lateinit</code>
306*7e63c127SSorin Basca      property is filtered out during generation of report. Implementation by
307*7e63c127SSorin Basca      Fabian Mastenbroek
308*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/707">#707</a>).</li>
309*7e63c127SSorin Basca  <li>Bytecode generated by Kotlin compiler for implicit <code>else</code> of
310*7e63c127SSorin Basca      <code>when</code> expressions that list all cases of <code>enum</code> or
311*7e63c127SSorin Basca      <code>sealed class</code> is filtered out during generation of report
312*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/721">#721</a>,
313*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/729">#729</a>,
314*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/749">#749</a>).</li>
315*7e63c127SSorin Basca  <li>Additional bytecode generated by Kotlin compiler for <code>when</code>
316*7e63c127SSorin Basca      expressions on <code>kotlin.String</code> values is filtered out during
317*7e63c127SSorin Basca      generation of report
318*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/737">#737</a>,
319*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/746">#746</a>).</li>
320*7e63c127SSorin Basca  <li>Classes and methods annotated with annotation whose retention policy
321*7e63c127SSorin Basca      is <code>runtime</code> or <code>class</code> and whose simple name
322*7e63c127SSorin Basca      is <code>Generated</code> are filtered out during generation of report
323*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/731">#731</a>).</li>
324*7e63c127SSorin Basca  <li>Maven goal <code>report-aggregate</code> now also considers dependencies
325*7e63c127SSorin Basca      specified using version range. Idea and implementation by Lukas Krejc
326*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/658">#658</a>).</li>
327*7e63c127SSorin Basca</ul>
328*7e63c127SSorin Basca
329*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
330*7e63c127SSorin Basca<ul>
331*7e63c127SSorin Basca  <li>Don't insert stackmap frames into class files with version &lt; 1.6,
332*7e63c127SSorin Basca      this fixes regression which was introduced in version 0.6.5
333*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/667">#667</a>).</li>
334*7e63c127SSorin Basca  <li>Question mark in filter expressions now correctly matches exactly one character
335*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/672">#672</a>).</li>
336*7e63c127SSorin Basca  <li>Part of bytecode that javac generates for <code>switch</code> statement on
337*7e63c127SSorin Basca      <code>java.lang.String</code> values with a small number cases is now correctly
338*7e63c127SSorin Basca      filtered out during generation of report
339*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/730">#730</a>).</li>
340*7e63c127SSorin Basca</ul>
341*7e63c127SSorin Basca
342*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
343*7e63c127SSorin Basca<ul>
344*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 6.2.1
345*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/706">#706</a>,
346*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/725">#725</a>).</li>
347*7e63c127SSorin Basca  <li>Improved error message when already instrumented classes are used for
348*7e63c127SSorin Basca      instrumentation or analysis
349*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/703">#703</a>).</li>
350*7e63c127SSorin Basca  <li>JaCoCo build now requires at least Maven 3.3.9 and JDK 8
351*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/711">#711</a>).</li>
352*7e63c127SSorin Basca</ul>
353*7e63c127SSorin Basca
354*7e63c127SSorin Basca<h3>API Changes</h3>
355*7e63c127SSorin Basca<ul>
356*7e63c127SSorin Basca  <li>The XML report now has an optional attribute <code>sourcefilename</code>
357*7e63c127SSorin Basca      on the <code>class</code> element to allow unambiguously relate classes
358*7e63c127SSorin Basca      to source files. The JaCoCo DTD version has been updated to 1.1
359*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/702">#702</a>).</li>
360*7e63c127SSorin Basca</ul>
361*7e63c127SSorin Basca
362*7e63c127SSorin Basca<h2>Release 0.8.1 (2018/03/21)</h2>
363*7e63c127SSorin Basca
364*7e63c127SSorin Basca<h3>New Features</h3>
365*7e63c127SSorin Basca<ul>
366*7e63c127SSorin Basca  <li>JaCoCo now supports Java 10
367*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/629">#629</a>).</li>
368*7e63c127SSorin Basca  <li>Empty constructor without parameters in enum is filtered out during
369*7e63c127SSorin Basca      generation of report
370*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/649">#649</a>).</li>
371*7e63c127SSorin Basca</ul>
372*7e63c127SSorin Basca
373*7e63c127SSorin Basca<h2>Release 0.8.0 (2018/01/02)</h2>
374*7e63c127SSorin Basca
375*7e63c127SSorin Basca<h3>New Features</h3>
376*7e63c127SSorin Basca<ul>
377*7e63c127SSorin Basca  <li>JaCoCo now officially supports Java 9
378*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li>
379*7e63c127SSorin Basca  <li>JaCoCo now comes with a simple command line interface
380*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/525">#525</a>).</li>
381*7e63c127SSorin Basca  <li>Limit configuration of Maven <code>check</code> goal and Ant
382*7e63c127SSorin Basca      <code>check</code> element now also supports percentage values
383*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/534">#534</a>).</li>
384*7e63c127SSorin Basca  <li>Manifests of JAR files now have <code>Automatic-Module-Name</code> for Java 9
385*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/565">#565</a>).</li>
386*7e63c127SSorin Basca  <li>Maven aggregated reports will now also include modules of <code>runtime</code>
387*7e63c127SSorin Basca      and <code>provided</code> dependencies
388*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/498">#498</a>,
389*7e63c127SSorin Basca      <a href="https://github.com/jacoco/jacoco/issues/572">#572</a>).</li>
390*7e63c127SSorin Basca</ul>
391*7e63c127SSorin Basca
392*7e63c127SSorin Basca<p>
393*7e63c127SSorin Basca  During creation of reports various compiler generated artifacts are filtered
394*7e63c127SSorin Basca  out, which otherwise require unnecessary and sometimes impossible tricks to
395*7e63c127SSorin Basca  not have partial or missed coverage:
396*7e63c127SSorin Basca</p>
397*7e63c127SSorin Basca
398*7e63c127SSorin Basca<ul>
399*7e63c127SSorin Basca  <li>Methods <code>valueOf</code> and <code>values</code> of enum types
400*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/491">#491</a>).</li>
401*7e63c127SSorin Basca  <li>Private empty no-argument constructors
402*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/529">#529</a>).</li>
403*7e63c127SSorin Basca  <li>Methods annotated with <code>@lombok.Generated</code> to better integrate
404*7e63c127SSorin Basca      with Lombok >= 1.16.14. Initial analysis and contribution by Rüdiger zu Dohna
405*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/513">#513</a>).</li>
406*7e63c127SSorin Basca  <li>Methods annotated with <code>@groovy.transform.Generated</code> to better
407*7e63c127SSorin Basca      integrate with Groovy >= 2.5.0. Thanks to Andres Almiray for adding the annotation to Groovy
408*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/610">#610</a>).</li>
409*7e63c127SSorin Basca  <li>Part of bytecode for <code>synchronized</code> blocks
410*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/501">#501</a>).</li>
411*7e63c127SSorin Basca  <li>Part of bytecode for try-with-resources statements
412*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/500">#500</a>).</li>
413*7e63c127SSorin Basca  <li>Part of bytecode for <code>finally</code> blocks
414*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/604">#604</a>).</li>
415*7e63c127SSorin Basca  <li>Part of bytecode for <code>switch</code> statements on
416*7e63c127SSorin Basca      <code>java.lang.String</code> values
417*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/596">#596</a>).</li>
418*7e63c127SSorin Basca</ul>
419*7e63c127SSorin Basca
420*7e63c127SSorin Basca<p>
421*7e63c127SSorin Basca  Note: Tools that directly read <code>exec</code> files and embed JaCoCo for
422*7e63c127SSorin Basca  this (such as SonarQube or Jenkins) will provide filtering functionality only
423*7e63c127SSorin Basca  after they updated to this version of JaCoCo.
424*7e63c127SSorin Basca</p>
425*7e63c127SSorin Basca
426*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
427*7e63c127SSorin Basca<ul>
428*7e63c127SSorin Basca  <li>Fixed bug in instrumentation of exception handlers, which was causing damage
429*7e63c127SSorin Basca      of structured locking in certain situations and as consequence poor
430*7e63c127SSorin Basca      performance of instrumented methods, analysis and fix contributed by Allen Hair
431*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/627">#627</a>).</li>
432*7e63c127SSorin Basca  <li><code>dump</code> commands now report error when server unexpectedly
433*7e63c127SSorin Basca      closes connection without sending response
434*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/538">#538</a>).</li>
435*7e63c127SSorin Basca  <li>Reduced chance of conflict with other agents
436*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/555">#555</a>).</li>
437*7e63c127SSorin Basca  <li>Restored Maven <code>help</code> goal that was missing in version 0.7.9
438*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/559">#559</a>).</li>
439*7e63c127SSorin Basca  <li><code>NullPointerException</code> during offline instrumentation of
440*7e63c127SSorin Basca      <code>module-info.class</code>
441*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>,
442*7e63c127SSorin Basca      GitHub <a href="https://github.com/jacoco/jacoco/issues/634">#634</a>).</li>
443*7e63c127SSorin Basca  <li>Incorrect update of frames caused by bug in ASM library
444*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li>
445*7e63c127SSorin Basca  <li>Loss of <code>InnerClasses</code> attribute caused by bug in ASM library
446*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li>
447*7e63c127SSorin Basca  <li><code>NegativeArraySizeException</code> during instrumentation caused by bug
448*7e63c127SSorin Basca      in ASM library
449*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li>
450*7e63c127SSorin Basca</ul>
451*7e63c127SSorin Basca
452*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
453*7e63c127SSorin Basca<ul>
454*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 6.0
455*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/600">#600</a>).</li>
456*7e63c127SSorin Basca  <li>More information about context is provided when unable to read input during
457*7e63c127SSorin Basca      instrumentation
458*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/527">#527</a>).</li>
459*7e63c127SSorin Basca  <li>More information about context is provided when unable to read stream during
460*7e63c127SSorin Basca      analysis
461*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/541">#541</a>).</li>
462*7e63c127SSorin Basca</ul>
463*7e63c127SSorin Basca
464*7e63c127SSorin Basca<h2>Release 0.7.9 (2017/02/05)</h2>
465*7e63c127SSorin Basca
466*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
467*7e63c127SSorin Basca<ul>
468*7e63c127SSorin Basca  <li>"<code>java.lang.ClassFormatError: Short length on BootstrapMethods in class file</code>"
469*7e63c127SSorin Basca      caused by bug in ASM library
470*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/462">#462</a>).</li>
471*7e63c127SSorin Basca  <li>Do not recompute frames in case of large methods, otherwise
472*7e63c127SSorin Basca      <code>java.lang.ClassNotFoundException</code> might be thrown
473*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/177">#177</a>).</li>
474*7e63c127SSorin Basca  <li><code>ExecutionDataWriter.FORMAT_VERSION</code> is not a compile-time constant
475*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/474">#474</a>).</li>
476*7e63c127SSorin Basca  <li>Maven goal "prepare-agent" should not overwrite existing property value if execution was skipped
477*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/486">#486</a>).</li>
478*7e63c127SSorin Basca</ul>
479*7e63c127SSorin Basca
480*7e63c127SSorin Basca<h3>API Changes</h3>
481*7e63c127SSorin Basca<ul>
482*7e63c127SSorin Basca  <li><code>JaCoCo.ASM_API_VERSION</code> removed
483*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/474">#474</a>).</li>
484*7e63c127SSorin Basca</ul>
485*7e63c127SSorin Basca
486*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
487*7e63c127SSorin Basca<ul>
488*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 5.2.</li>
489*7e63c127SSorin Basca  <li>OSGi metadata now generated automatically and additionally include
490*7e63c127SSorin Basca      <code>uses</code> directives, <code>Require-Capability</code> attribute,
491*7e63c127SSorin Basca      and export of all internal packages with <code>x-internal:=true</code> directive
492*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/211">#211</a>).</li>
493*7e63c127SSorin Basca  <li>Removed OSGi attributes that were mistakenly added in version 0.6.1 into
494*7e63c127SSorin Basca      <code>jacocoant.jar</code> that contains all dependencies
495*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/211">#211</a>).</li>
496*7e63c127SSorin Basca</ul>
497*7e63c127SSorin Basca
498*7e63c127SSorin Basca<h2>Release 0.7.8 (2016/12/09)</h2>
499*7e63c127SSorin Basca
500*7e63c127SSorin Basca<h3>New Features</h3>
501*7e63c127SSorin Basca<ul>
502*7e63c127SSorin Basca  <li>User property <code>jacoco.dataFile</code> for parameter <code>dataFile</code>
503*7e63c127SSorin Basca      of Maven <code>report</code> goal
504*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/322">#322</a>).</li>
505*7e63c127SSorin Basca</ul>
506*7e63c127SSorin Basca
507*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
508*7e63c127SSorin Basca<ul>
509*7e63c127SSorin Basca  <li>Use <code>RoundingMode#FLOOR</code> instead of
510*7e63c127SSorin Basca      <code>RoundingMode#HALF_EVEN</code> for percentages in HTML report, so that
511*7e63c127SSorin Basca      "99.5" is displayed as "99%", not as "100%"
512*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/452">#452</a>).</li>
513*7e63c127SSorin Basca  <li>Do not add useless members into Java 8 interfaces that have only interface
514*7e63c127SSorin Basca      initialization and abstract methods
515*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/441">#441</a>).</li>
516*7e63c127SSorin Basca  <li>Fix instrumentation to not violate Java Virtual Machine Specification regarding
517*7e63c127SSorin Basca      initialization of final fields, otherwise <code>IllegalAccessError</code>
518*7e63c127SSorin Basca      will be thrown starting from OpenJDK 9 EA b127
519*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/434">#434</a>).</li>
520*7e63c127SSorin Basca  <li>Fix instrumentation of interfaces with default methods to not create incorrect
521*7e63c127SSorin Basca      constant pool entries, which lead to <code>IncompatibleClassChangeError</code>
522*7e63c127SSorin Basca      starting from OpenJDK 9 EA b122
523*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/428">#428</a>).</li>
524*7e63c127SSorin Basca  <li>Add Maven goal <code>report-aggregate</code> to lifecycle-mapping-metadata.xml
525*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/427">#427</a>).</li>
526*7e63c127SSorin Basca</ul>
527*7e63c127SSorin Basca
528*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
529*7e63c127SSorin Basca<ul>
530*7e63c127SSorin Basca  <li>Released JaCoCo JARs are not signed any more. Signed versions of JaCoCo are
531*7e63c127SSorin Basca      now available from the Eclipse Orbit project
532*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/466">#466</a>).</li>
533*7e63c127SSorin Basca  <li>Simplified numbering of versions - JaCoCo JARs in Maven Central repository
534*7e63c127SSorin Basca      do not have qualifier any more
535*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/468">#468</a>).</li>
536*7e63c127SSorin Basca</ul>
537*7e63c127SSorin Basca
538*7e63c127SSorin Basca<h2>Release 0.7.7 (2016/06/06)</h2>
539*7e63c127SSorin Basca
540*7e63c127SSorin Basca<h3>New Features</h3>
541*7e63c127SSorin Basca<ul>
542*7e63c127SSorin Basca  <li>New Maven goal <code>report-aggregate</code> to create reports for
543*7e63c127SSorin Basca      multi-module projects
544*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/388">#388</a>).</li>
545*7e63c127SSorin Basca  <li>New parameters <code>title</code> and <code>footer</code> for Maven
546*7e63c127SSorin Basca      reporting goals allow customization of generated reports.</li>
547*7e63c127SSorin Basca  <li>Renamed "dot" resources in generated HTML reports to become more web
548*7e63c127SSorin Basca      hosting friendly
549*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/401">#401</a>).</li>
550*7e63c127SSorin Basca  <li>Experimental support for Java 9 class files
551*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/406">#406</a>).</li>
552*7e63c127SSorin Basca</ul>
553*7e63c127SSorin Basca
554*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
555*7e63c127SSorin Basca<ul>
556*7e63c127SSorin Basca  <li>Don't suppress EOF errors in case of truncated execution data files
557*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/397">#397</a>).</li>
558*7e63c127SSorin Basca</ul>
559*7e63c127SSorin Basca
560*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
561*7e63c127SSorin Basca<ul>
562*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 5.1.</li>
563*7e63c127SSorin Basca  <li>Empty probe arrays are not written to execution data files any more. This
564*7e63c127SSorin Basca      reduces exec file size significantly for per-test data dumps.
565*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/387">#387</a>).</li>
566*7e63c127SSorin Basca  <li>More information about context is provided when unable to read input during
567*7e63c127SSorin Basca      analysis.
568*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/400">#400</a>).</li>
569*7e63c127SSorin Basca  <li>Require at least Maven 3.0 for build of JaCoCo.</li>
570*7e63c127SSorin Basca</ul>
571*7e63c127SSorin Basca
572*7e63c127SSorin Basca
573*7e63c127SSorin Basca<h2>Release 0.7.6 (2016/02/18)</h2>
574*7e63c127SSorin Basca
575*7e63c127SSorin Basca<h3>New Features</h3>
576*7e63c127SSorin Basca<ul>
577*7e63c127SSorin Basca  <li>New agent option <code>inclnolocationclasses</code> to support execution
578*7e63c127SSorin Basca      environments like Android where no source location is provided with classes
579*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/288">#288</a>).</li>
580*7e63c127SSorin Basca  <li>Improved error message in case of incompatible execution data files.
581*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/319">#319</a>).</li>
582*7e63c127SSorin Basca  <li>Command line agent options now supports comma in file names. Contributed
583*7e63c127SSorin Basca      by Jochen Berger.
584*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/358">#358</a>).</li>
585*7e63c127SSorin Basca</ul>
586*7e63c127SSorin Basca
587*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
588*7e63c127SSorin Basca<ul>
589*7e63c127SSorin Basca  <li>Fix <code>MBeanClient</code> example
590*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/333">#333</a>).</li>
591*7e63c127SSorin Basca  <li>Avoid <code>ConcurrentModificationException</code> during shutdown
592*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/364">#364</a>).</li>
593*7e63c127SSorin Basca</ul>
594*7e63c127SSorin Basca
595*7e63c127SSorin Basca<h3>API Changes</h3>
596*7e63c127SSorin Basca<ul>
597*7e63c127SSorin Basca  <li>In case of incompatible execution data formats read from another JaCoCo
598*7e63c127SSorin Basca  version <code>ExecutionDataReader.read()</code> now throws a
599*7e63c127SSorin Basca  <code>IncompatibleExecDataVersionException</code>.</li>
600*7e63c127SSorin Basca</ul>
601*7e63c127SSorin Basca
602*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
603*7e63c127SSorin Basca<ul>
604*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 5.0.4.</li>
605*7e63c127SSorin Basca</ul>
606*7e63c127SSorin Basca
607*7e63c127SSorin Basca
608*7e63c127SSorin Basca<h2>Release 0.7.5 (2015/05/24)</h2>
609*7e63c127SSorin Basca
610*7e63c127SSorin Basca<h3>New Features</h3>
611*7e63c127SSorin Basca<ul>
612*7e63c127SSorin Basca  <li>Better detection of coverage in code blocks with implicit exceptions.
613*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/310">#310</a>).</li>
614*7e63c127SSorin Basca  <li>Added lifecycle-mapping-metadata.xml for M2E
615*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/203">#203</a>).</li>
616*7e63c127SSorin Basca  <li>Allow locales with country and variant for Ant report task
617*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/289">#289</a>).</li>
618*7e63c127SSorin Basca</ul>
619*7e63c127SSorin Basca
620*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
621*7e63c127SSorin Basca<ul>
622*7e63c127SSorin Basca  <li>For the Ant tasks <code>coverage</code> and <code>agent</code> the
623*7e63c127SSorin Basca      <code>destfile</code> attribute is now passed as an absolute path also in
624*7e63c127SSorin Basca      the default case
625*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/301">#301</a>).</li>
626*7e63c127SSorin Basca</ul>
627*7e63c127SSorin Basca
628*7e63c127SSorin Basca<h3>API Changes</h3>
629*7e63c127SSorin Basca<ul>
630*7e63c127SSorin Basca  <li>The exec file version has been updated and is not compatible with previous
631*7e63c127SSorin Basca      versions.</li>
632*7e63c127SSorin Basca</ul>
633*7e63c127SSorin Basca
634*7e63c127SSorin Basca<h2>Release 0.7.4 (2015/02/26)</h2>
635*7e63c127SSorin Basca
636*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
637*7e63c127SSorin Basca<ul>
638*7e63c127SSorin Basca  <li>Restored exec file compatibility with version 0.7.2 by fixing missing
639*7e63c127SSorin Basca      probes in case of try/catch blocks which are jump targets.
640*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/286">#286</a>).</li>
641*7e63c127SSorin Basca</ul>
642*7e63c127SSorin Basca
643*7e63c127SSorin Basca
644*7e63c127SSorin Basca<h2>Release 0.7.3 (2015/02/19)</h2>
645*7e63c127SSorin Basca
646*7e63c127SSorin Basca<h3>New Features</h3>
647*7e63c127SSorin Basca<ul>
648*7e63c127SSorin Basca  <li>For offline instrumemtation agent configuration supports system properties
649*7e63c127SSorin Basca      replacements. Implementation based on pull request of GitHub user 'debugger'
650*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/262">#262</a>).</li>
651*7e63c127SSorin Basca  <li>Exclude dynamically generated classes from instrumentation for better
652*7e63c127SSorin Basca      interoperability with JMockit, analysis contributed by Rogério Liesenfeld
653*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/272">#272</a>).</li>
654*7e63c127SSorin Basca</ul>
655*7e63c127SSorin Basca
656*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
657*7e63c127SSorin Basca<ul>
658*7e63c127SSorin Basca  <li>Instrumented bytecode now compatible with Android ART runtime, analysis
659*7e63c127SSorin Basca      and fix contributed by Allen Hair
660*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/265">#265</a>).</li>
661*7e63c127SSorin Basca</ul>
662*7e63c127SSorin Basca
663*7e63c127SSorin Basca<h2>Release 0.7.2 (2014/09/12)</h2>
664*7e63c127SSorin Basca
665*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
666*7e63c127SSorin Basca<ul>
667*7e63c127SSorin Basca  <li>Do not ignore synthetic lambda methods to get code coverage for Java 8
668*7e63c127SSorin Basca      lambda expressions
669*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/232">#232</a>).</li>
670*7e63c127SSorin Basca</ul>
671*7e63c127SSorin Basca
672*7e63c127SSorin Basca<h3>New Features</h3>
673*7e63c127SSorin Basca<ul>
674*7e63c127SSorin Basca  <li>New configuration option for the JaCoCo agent
675*7e63c127SSorin Basca      <code>inclbootstrapclasses</code> to also instrument classes from the
676*7e63c127SSorin Basca      bootstrap class loader
677*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/49">#49</a>).</li>
678*7e63c127SSorin Basca  <li>Agent uses unique file names to dump class files
679*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/225">#225</a>).</li>
680*7e63c127SSorin Basca</ul>
681*7e63c127SSorin Basca
682*7e63c127SSorin Basca<h2>Release 0.7.1 (2014/05/08)</h2>
683*7e63c127SSorin Basca
684*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
685*7e63c127SSorin Basca<ul>
686*7e63c127SSorin Basca  <li>Fixed failure with default methods in Java 8 interfaces
687*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/201">#201</a>).</li>
688*7e63c127SSorin Basca  <li>Better interoperability with JMockit, analysis and fix contributed by Rogério
689*7e63c127SSorin Basca      Liesenfeld (GitHub <a href="https://github.com/jacoco/jacoco/issues/35">#35</a>
690*7e63c127SSorin Basca      and <a href="https://github.com/jacoco/jacoco/issues/54">#54</a>).</li>
691*7e63c127SSorin Basca</ul>
692*7e63c127SSorin Basca
693*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
694*7e63c127SSorin Basca<ul>
695*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 5.0.1
696*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/201">#201</a>).</li>
697*7e63c127SSorin Basca</ul>
698*7e63c127SSorin Basca
699*7e63c127SSorin Basca<h2>Release 0.7.0 (2014/03/18)</h2>
700*7e63c127SSorin Basca
701*7e63c127SSorin Basca<h3>New Features</h3>
702*7e63c127SSorin Basca<ul>
703*7e63c127SSorin Basca  <li>JaCoCo now supports Java 8
704*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/74">#74</a>).</li>
705*7e63c127SSorin Basca</ul>
706*7e63c127SSorin Basca
707*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
708*7e63c127SSorin Basca<ul>
709*7e63c127SSorin Basca  <li>JaCoCo now depends on ASM 5.0 using asm-debug-all instead of asm-all
710*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/199">#199</a>).</li>
711*7e63c127SSorin Basca</ul>
712*7e63c127SSorin Basca
713*7e63c127SSorin Basca<h2>Release 0.6.5 (2014/03/03)</h2>
714*7e63c127SSorin Basca
715*7e63c127SSorin Basca<h3>New Features</h3>
716*7e63c127SSorin Basca<ul>
717*7e63c127SSorin Basca  <li>Warnings are logged during report generation if different versions of
718*7e63c127SSorin Basca      classes are used than at runtime (GitHub <a href="https://github.com/jacoco/jacoco/issues/185">#185</a>).</li>
719*7e63c127SSorin Basca  <li>Signatures are removed from instrumented JAR files
720*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/186">#186</a>).</li>
721*7e63c127SSorin Basca</ul>
722*7e63c127SSorin Basca
723*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
724*7e63c127SSorin Basca<ul>
725*7e63c127SSorin Basca  <li>Skip jacoco instrumentation for mvn modules with package type ear (GitHub <a href="https://github.com/jacoco/jacoco/issues/169">#169</a>).</li>
726*7e63c127SSorin Basca  <li>Align skip conditions and messages for Maven goals and give reasons. This
727*7e63c127SSorin Basca      includes removal of the specific skip condition for packages e.g. POMs and
728*7e63c127SSorin Basca      instead checks existence of <tt>target/classes</tt> in appropriate goals
729*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/171">#171</a>).</li>
730*7e63c127SSorin Basca  <li>GitHub #44: (Regression) Agent Mojo should set empty property, if execution was skipped
731*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/192">#192</a>).</li>
732*7e63c127SSorin Basca</ul>
733*7e63c127SSorin Basca
734*7e63c127SSorin Basca<h3>API Changes</h3>
735*7e63c127SSorin Basca<ul>
736*7e63c127SSorin Basca  <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>
737*7e63c127SSorin Basca</ul>
738*7e63c127SSorin Basca
739*7e63c127SSorin Basca<h2>Release 0.6.4 (2013/12/10)</h2>
740*7e63c127SSorin Basca
741*7e63c127SSorin Basca<h3>New Features</h3>
742*7e63c127SSorin Basca<ul>
743*7e63c127SSorin Basca  <li>Support for Android <i>Strict Mode</i> (GitHub <a href="https://github.com/jacoco/jacoco/issues/113">#113</a>).</li>
744*7e63c127SSorin Basca  <li>New dump Mojo for Maven plug-in (GitHub <a href="https://github.com/jacoco/jacoco/issues/107">#107</a>).</li>
745*7e63c127SSorin Basca  <li>New merge Mojo for Maven plug-in, contributed by Mads Mohr Christensen
746*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/126">#126</a>).</li>
747*7e63c127SSorin Basca  <li>Additional list of source files for every package in HTML report
748*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/142">#142</a>).</li>
749*7e63c127SSorin Basca  <li>Additional report-integration and prepare-agent-integration goals for
750*7e63c127SSorin Basca      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>
751*7e63c127SSorin Basca</ul>
752*7e63c127SSorin Basca
753*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
754*7e63c127SSorin Basca<ul>
755*7e63c127SSorin Basca  <li>Multiple executions of Maven goal "prepare-agent" should not lead to
756*7e63c127SSorin Basca      incorrect configuration (GitHub <a href="https://github.com/jacoco/jacoco/issues/40">#40</a>).</li>
757*7e63c127SSorin Basca  <li>Avoid direct dependency on java.lang.management APIs to allow usage on
758*7e63c127SSorin Basca      Android (GitHub <a href="https://github.com/jacoco/jacoco/issues/150">#150</a>).</li>
759*7e63c127SSorin Basca  <li>All JaCoCo Maven goals are marked as thread-safe (GitHub <a href="https://github.com/jacoco/jacoco/issues/133">#133</a>).</li>
760*7e63c127SSorin Basca  <li>check and merge goal failures in jacoco-maven-plugin with Maven 2.2.1
761*7e63c127SSorin Basca      due to incompatible configuration (GitHub <a href="https://github.com/jacoco/jacoco/issues/129">#129</a>).</li>
762*7e63c127SSorin Basca</ul>
763*7e63c127SSorin Basca
764*7e63c127SSorin Basca<h3>API Changes</h3>
765*7e63c127SSorin Basca<ul>
766*7e63c127SSorin Basca  <li>New API package <code>org.jacoco.core.tools</code> for shared high-level
767*7e63c127SSorin Basca      tools. (GitHub <a href="https://github.com/jacoco/jacoco/issues/159">#159</a>).</li>
768*7e63c127SSorin Basca</ul>
769*7e63c127SSorin Basca
770*7e63c127SSorin Basca<h2>Release 0.6.3 (2013/06/03)</h2>
771*7e63c127SSorin Basca
772*7e63c127SSorin Basca<h3>New Features</h3>
773*7e63c127SSorin Basca<ul>
774*7e63c127SSorin Basca  <li>Support for archives in Pack200 format (GitHub <a href="https://github.com/jacoco/jacoco/issues/91">#91</a>).</li>
775*7e63c127SSorin Basca  <li>The coverage check has been reworked to allow checks on all counter values
776*7e63c127SSorin Basca      on all element types (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li>
777*7e63c127SSorin Basca  <li>Coverage checks are now also available in Ant (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li>
778*7e63c127SSorin Basca</ul>
779*7e63c127SSorin Basca
780*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
781*7e63c127SSorin Basca<ul>
782*7e63c127SSorin Basca  <li>Fixed inconsistent stackmap frames when instrumenting class files produced
783*7e63c127SSorin Basca      by certain tools like ProGuard (GitHub <a href="https://github.com/jacoco/jacoco/issues/85">#85</a>).</li>
784*7e63c127SSorin Basca</ul>
785*7e63c127SSorin Basca
786*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
787*7e63c127SSorin Basca<ul>
788*7e63c127SSorin Basca  <li>More context information when exceptions occur during analysis or
789*7e63c127SSorin Basca      instrumentation (GitHub <a href="https://github.com/jacoco/jacoco/issues/104">#104</a>).</li>
790*7e63c127SSorin Basca  <li>If analysis is performed on offline instrumented classes - which is an
791*7e63c127SSorin Basca      build configuration error - an exception is now thrown (GitHub <a href="https://github.com/jacoco/jacoco/issues/108">#108</a>).</li>
792*7e63c127SSorin Basca</ul>
793*7e63c127SSorin Basca
794*7e63c127SSorin Basca<h3>API Changes</h3>
795*7e63c127SSorin Basca<ul>
796*7e63c127SSorin Basca  <li>The configuration of the Maven check goal has been reworked to support
797*7e63c127SSorin Basca      checks on any element type (GitHub <a href="https://github.com/jacoco/jacoco/issues/106">#106</a>).</li>
798*7e63c127SSorin Basca  <li><code>Analyzer</code> and <code>Instrumenter</code> expect resource name
799*7e63c127SSorin Basca      as additional parameter for better error messages (GitHub <a href="https://github.com/jacoco/jacoco/issues/104">#104</a>).</li>
800*7e63c127SSorin Basca</ul>
801*7e63c127SSorin Basca
802*7e63c127SSorin Basca<h2>Release 0.6.2 (2013/02/03)</h2>
803*7e63c127SSorin Basca
804*7e63c127SSorin Basca<h3>New Features</h3>
805*7e63c127SSorin Basca<ul>
806*7e63c127SSorin Basca  <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>
807*7e63c127SSorin Basca  <li>JaCoCo agent exposes runtime API for direct integration with application
808*7e63c127SSorin Basca      under test (GitHub <a href="https://github.com/jacoco/jacoco/issues/61">#61</a>).</li>
809*7e63c127SSorin Basca  <li>Support for parallel test execution: Different agents can now safely write
810*7e63c127SSorin Basca      to the same <code>*.exec</code> file (GitHub <a href="https://github.com/jacoco/jacoco/issues/52">#52</a>).</li>
811*7e63c127SSorin Basca  <li>New output mode 'none' can be used when agent is only controlled via JMX
812*7e63c127SSorin Basca      or its new runtime API (GitHub <a href="https://github.com/jacoco/jacoco/issues/63">#63</a>).</li>
813*7e63c127SSorin Basca  <li>Better error message in case of invalid stackmap frames (GitHub <a href="https://github.com/jacoco/jacoco/issues/73">#73</a>).</li>
814*7e63c127SSorin Basca  <li>jacoco-maven-plugin: default phase for goal "report" - "verify"
815*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/72">#72</a>).</li>
816*7e63c127SSorin Basca</ul>
817*7e63c127SSorin Basca
818*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
819*7e63c127SSorin Basca<ul>
820*7e63c127SSorin Basca  <li>For every build the corresponding Git commit hash is included as
821*7e63c127SSorin Basca      <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>
822*7e63c127SSorin Basca  <li>Adjust saturation of red source highlighting in HTML reports to make
823*7e63c127SSorin Basca      JaCoCo reports more accessible to red/green blind users.</li>
824*7e63c127SSorin Basca</ul>
825*7e63c127SSorin Basca
826*7e63c127SSorin Basca<h3>API Changes</h3>
827*7e63c127SSorin Basca<ul>
828*7e63c127SSorin Basca  <li>The <code>output</code> mode <code>mbean</code> of the agent has been
829*7e63c127SSorin Basca      dropped in favor of the new boolean option <code>jmx</code>. This allows
830*7e63c127SSorin Basca      to combine JMX access with any other output mode (GitHub <a href="https://github.com/jacoco/jacoco/issues/62">#62</a>).</li>
831*7e63c127SSorin Basca</ul>
832*7e63c127SSorin Basca
833*7e63c127SSorin Basca<h2>Release 0.6.1 (2012/12/23)</h2>
834*7e63c127SSorin Basca
835*7e63c127SSorin Basca<h3>New Features</h3>
836*7e63c127SSorin Basca<ul>
837*7e63c127SSorin Basca  <li>Add a coverage check Mojo, contributed by Kyle Lieber (GitHub <a href="https://github.com/jacoco/jacoco/issues/6">#6</a>).</li>
838*7e63c127SSorin Basca</ul>
839*7e63c127SSorin Basca
840*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
841*7e63c127SSorin Basca<ul>
842*7e63c127SSorin Basca  <li>jacocoant.jar should not conflict with ASM 3.x (GitHub <a href="https://github.com/jacoco/jacoco/issues/39">#39</a>).</li>
843*7e63c127SSorin Basca  <li>Agent Mojo should set empty property, if execution was skipped
844*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/44">#44</a>).</li>
845*7e63c127SSorin Basca</ul>
846*7e63c127SSorin Basca
847*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
848*7e63c127SSorin Basca<ul>
849*7e63c127SSorin Basca  <li>Upgrade to ASM 4.1 (GitHub <a href="https://github.com/jacoco/jacoco/issues/37">#37</a>).</li>
850*7e63c127SSorin Basca  <li>Log location of merged execution data file in Ant <code>merge</code> task
851*7e63c127SSorin Basca      (GitHub <a href="https://github.com/jacoco/jacoco/issues/29">#29</a>).</li>
852*7e63c127SSorin Basca</ul>
853*7e63c127SSorin Basca
854*7e63c127SSorin Basca<h2>Release 0.6.0 (2012/10/06)</h2>
855*7e63c127SSorin Basca
856*7e63c127SSorin Basca<h3>New Features</h3>
857*7e63c127SSorin Basca<ul>
858*7e63c127SSorin Basca  <li>Full support for Java 7 including INVOKEDYNAMIC as JaCoCo is now based
859*7e63c127SSorin Basca      on ASM 4.0 (GitHub <a href="https://github.com/jacoco/jacoco/issues/5">#5</a>).</li>
860*7e63c127SSorin Basca</ul>
861*7e63c127SSorin Basca
862*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
863*7e63c127SSorin Basca<ul>
864*7e63c127SSorin Basca  <li>Maven plugin should skip creation of report if the execution data file is
865*7e63c127SSorin Basca      missing. This avoids appearance of stack traces in case when JVM was not
866*7e63c127SSorin Basca      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>
867*7e63c127SSorin Basca  <li>Maven plugin should fail if unable to read execution data file or create
868*7e63c127SSorin Basca      report (GitHub <a href="https://github.com/jacoco/jacoco/issues/19">#19</a>).</li>
869*7e63c127SSorin Basca</ul>
870*7e63c127SSorin Basca
871*7e63c127SSorin Basca<h3>API Changes</h3>
872*7e63c127SSorin Basca<ul>
873*7e63c127SSorin Basca  <li>Only colon as separator character supported in agent parameters. The
874*7e63c127SSorin Basca      deprecated pipe character is no longer supported.</li>
875*7e63c127SSorin Basca</ul>
876*7e63c127SSorin Basca
877*7e63c127SSorin Basca<h2>Release 0.5.10 (2012/08/31)</h2>
878*7e63c127SSorin Basca
879*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
880*7e63c127SSorin Basca<ul>
881*7e63c127SSorin Basca  <li>Correct stackmap frames for new <code>long[]</code> arrays (SF #3553210).</li>
882*7e63c127SSorin Basca  <li>Properly resolve the <code>fork</code> variable for tasks wrapped by the
883*7e63c127SSorin Basca      <code>coverage</code> Ant task (Trac #213).</li>
884*7e63c127SSorin Basca</ul>
885*7e63c127SSorin Basca
886*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
887*7e63c127SSorin Basca<ul>
888*7e63c127SSorin Basca  <li>Source tree has been migrated to Git and is now hosted on Github at
889*7e63c127SSorin Basca  <a href="https://github.com/jacoco/jacoco">https://github.com/jacoco/jacoco</a>.</li>
890*7e63c127SSorin Basca</ul>
891*7e63c127SSorin Basca
892*7e63c127SSorin Basca<h2>Release 0.5.9 (2012/07/30)</h2>
893*7e63c127SSorin Basca
894*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
895*7e63c127SSorin Basca<ul>
896*7e63c127SSorin Basca  <li>Don't produce invalid class files in case of unexpected stackmap frames
897*7e63c127SSorin Basca      (SF #3543758).</li>
898*7e63c127SSorin Basca</ul>
899*7e63c127SSorin Basca
900*7e63c127SSorin Basca<h2>Release 0.5.8 (2012/07/11)</h2>
901*7e63c127SSorin Basca
902*7e63c127SSorin Basca<h3>New Features</h3>
903*7e63c127SSorin Basca<ul>
904*7e63c127SSorin Basca  <li>Support for parallel Maven builds (Trac #191).</li>
905*7e63c127SSorin Basca  <li>New agent option <code>classdumpdir</code> to dump all class files seen
906*7e63c127SSorin Basca      by the JaCoCo agent to disk. This option is also available for Ant and
907*7e63c127SSorin Basca      Maven (Trac #208).</li>
908*7e63c127SSorin Basca</ul>
909*7e63c127SSorin Basca
910*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
911*7e63c127SSorin Basca<ul>
912*7e63c127SSorin Basca  <li>Allow instrumentation of classes with dead code (SF #3538112).</li>
913*7e63c127SSorin Basca  <li>Reworked instrumentation strategy to avoid verifier error "Uninitialized
914*7e63c127SSorin Basca      object exists on backward branch" with certain Java 7 class files
915*7e63c127SSorin Basca      (Trac #154).</li>
916*7e63c127SSorin Basca</ul>
917*7e63c127SSorin Basca
918*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
919*7e63c127SSorin Basca<ul>
920*7e63c127SSorin Basca  <li>Documentation now includes Maven example and Maven goal documentation
921*7e63c127SSorin Basca      (Trac #201, #202).</li>
922*7e63c127SSorin Basca</ul>
923*7e63c127SSorin Basca
924*7e63c127SSorin Basca<h2>Release 0.5.7 (2012/04/19)</h2>
925*7e63c127SSorin Basca
926*7e63c127SSorin Basca<h3>New Features</h3>
927*7e63c127SSorin Basca<ul>
928*7e63c127SSorin Basca  <li>Support for class redefinitions by other agents like JMockit (SF #3509409).</li>
929*7e63c127SSorin Basca  <li>Remove class file attributes with invalid code offsets caused by other
930*7e63c127SSorin Basca      byte code processing tools to avoid verifier errors (Trac #196).</li>
931*7e63c127SSorin Basca  <li>Improved logging for Ant tasks (SF #3518429).</li>
932*7e63c127SSorin Basca</ul>
933*7e63c127SSorin Basca
934*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
935*7e63c127SSorin Basca<ul>
936*7e63c127SSorin Basca  <li>In case of failures the agent should log the original exception.</li>
937*7e63c127SSorin Basca</ul>
938*7e63c127SSorin Basca
939*7e63c127SSorin Basca<h2>Release 0.5.6 (2012/01/23)</h2>
940*7e63c127SSorin Basca
941*7e63c127SSorin Basca<h3>New Features</h3>
942*7e63c127SSorin Basca<ul>
943*7e63c127SSorin Basca  <li>jacoco-maven-plugin can be used together with maven-site-plugin (Trac #181).</li>
944*7e63c127SSorin Basca  <li>The <code>report</code> Ant task now also supports directory resources to
945*7e63c127SSorin Basca      specify source folders. This allows reading source files from multiple
946*7e63c127SSorin Basca      directories. Contributed by Dominik Stadler (Trac #119).</li>
947*7e63c127SSorin Basca</ul>
948*7e63c127SSorin Basca
949*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
950*7e63c127SSorin Basca<ul>
951*7e63c127SSorin Basca  <li>Don't insert stackmap frames for class files before version 1.6.</li>
952*7e63c127SSorin Basca  <li>Regression, which was introduced in 0.5.4 - restored compatibility of jacoco-maven-plugin with Maven 2 (Trac #182).</li>
953*7e63c127SSorin Basca</ul>
954*7e63c127SSorin Basca
955*7e63c127SSorin Basca<h2>Release 0.5.5 (2011/12/15)</h2>
956*7e63c127SSorin Basca
957*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
958*7e63c127SSorin Basca<ul>
959*7e63c127SSorin Basca  <li>Correct default value for the <code>append</code> property of the
960*7e63c127SSorin Basca      <code>dump</code> Ant task is <code>true</code> (Trac #178).</li>
961*7e63c127SSorin Basca  <li>Try/catch blocks must not be counted as instructions (Trac #179).</li>
962*7e63c127SSorin Basca</ul>
963*7e63c127SSorin Basca
964*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
965*7e63c127SSorin Basca<ul>
966*7e63c127SSorin Basca  <li>Upgrade to ASM 3.3.1.</li>
967*7e63c127SSorin Basca</ul>
968*7e63c127SSorin Basca
969*7e63c127SSorin Basca<h2>Release 0.5.4 (2011/11/11)</h2>
970*7e63c127SSorin Basca
971*7e63c127SSorin Basca<h3>New Features</h3>
972*7e63c127SSorin Basca<ul>
973*7e63c127SSorin Basca  <li>Maven plug-in: respect <code>includes</code> and <code>excludes</code>
974*7e63c127SSorin Basca      properties in report Mojo (Trac #160).
975*7e63c127SSorin Basca      Also note that:
976*7e63c127SSorin Basca<pre class="source lang-xml">
977*7e63c127SSorin Basca&lt;configuration&gt;
978*7e63c127SSorin Basca  &lt;includes&gt;org.foo.*:org.bar.*&lt;/includes&gt;
979*7e63c127SSorin Basca  &lt;excludes&gt;com.foo.*:com.bar.*&lt;/excludes&gt;
980*7e63c127SSorin Basca&lt;/configuration&gt;
981*7e63c127SSorin Basca</pre>
982*7e63c127SSorin Basca      must be replaced on:
983*7e63c127SSorin Basca<pre class="source lang-xml">
984*7e63c127SSorin Basca&lt;configuration&gt;
985*7e63c127SSorin Basca  &lt;includes&gt;
986*7e63c127SSorin Basca    &lt;include>org.foo.*&lt;/include&gt;
987*7e63c127SSorin Basca    &lt;include>org.bar.*&lt;/include&gt;
988*7e63c127SSorin Basca  &lt;/includes&gt;
989*7e63c127SSorin Basca  &lt;excludes&gt;
990*7e63c127SSorin Basca    &lt;exclude&gt;com.foo.*&lt;/exclude&gt;
991*7e63c127SSorin Basca    &lt;exclude&gt;com.bar.*&lt;/exclude&gt;
992*7e63c127SSorin Basca  &lt;/excludes&gt;
993*7e63c127SSorin Basca&lt;/configuration&gt;
994*7e63c127SSorin Basca</pre>
995*7e63c127SSorin Basca  </li>
996*7e63c127SSorin Basca</ul>
997*7e63c127SSorin Basca
998*7e63c127SSorin Basca<h3>API Changes</h3>
999*7e63c127SSorin Basca<ul>
1000*7e63c127SSorin Basca  <li><code>Instrumenter</code> now only requires
1001*7e63c127SSorin Basca      <code>IExecutionDataAccessorGenerator</code> instead of
1002*7e63c127SSorin Basca      <code>IRuntime</code> (Trac #174).</li>
1003*7e63c127SSorin Basca  <li>Removed reference to internal implementation classes from
1004*7e63c127SSorin Basca      <code>CoverageBuilder</code> API.</li>
1005*7e63c127SSorin Basca</ul>
1006*7e63c127SSorin Basca
1007*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
1008*7e63c127SSorin Basca<ul>
1009*7e63c127SSorin Basca  <li>Release bundles from now on signed again.</li>
1010*7e63c127SSorin Basca  <li>Several documentation updates.</li>
1011*7e63c127SSorin Basca</ul>
1012*7e63c127SSorin Basca
1013*7e63c127SSorin Basca<h2>Release 0.5.3 (2011/07/06)</h2>
1014*7e63c127SSorin Basca
1015*7e63c127SSorin Basca<h3>New Features</h3>
1016*7e63c127SSorin Basca<ul>
1017*7e63c127SSorin Basca  <li>New Maven plug-in for JaCoCo agent setup and basic reporting (Trac #25).</li>
1018*7e63c127SSorin Basca  <li>Additional output mode implementation for JaCoCo agent based on JMX.</li>
1019*7e63c127SSorin Basca</ul>
1020*7e63c127SSorin Basca
1021*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1022*7e63c127SSorin Basca<ul>
1023*7e63c127SSorin Basca  <li>Fixed problem with reporting of nested group structures (Trac #157).</li>
1024*7e63c127SSorin Basca</ul>
1025*7e63c127SSorin Basca
1026*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
1027*7e63c127SSorin Basca<ul>
1028*7e63c127SSorin Basca  <li>JaCoCo build based on Maven (Trac #136).</li>
1029*7e63c127SSorin Basca  <li>JaCoCo published to Maven repository (Trac #149).</li>
1030*7e63c127SSorin Basca</ul>
1031*7e63c127SSorin Basca
1032*7e63c127SSorin Basca<h2>Release 0.5.2 (2011/05/19)</h2>
1033*7e63c127SSorin Basca
1034*7e63c127SSorin Basca<h3>New Features</h3>
1035*7e63c127SSorin Basca<ul>
1036*7e63c127SSorin Basca  <li>JaCoCo reports cyclomatic complexity numbers (Trac #129).</li>
1037*7e63c127SSorin Basca  <li>For HTML reports the tab width can be specified on the
1038*7e63c127SSorin Basca      <code>sourcefiles</code> attribute of the <code>report</code> Ant task
1039*7e63c127SSorin Basca      (Track #152).</li>
1040*7e63c127SSorin Basca</ul>
1041*7e63c127SSorin Basca
1042*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1043*7e63c127SSorin Basca<ul>
1044*7e63c127SSorin Basca  <li>Removed duplicate counters in the root node of XML reports (Trac #155).</li>
1045*7e63c127SSorin Basca  <li>Avoid <code>StackOverflowException</code> when analyzing methods with very
1046*7e63c127SSorin Basca      long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet
1047*7e63c127SSorin Basca      for reporting and analyzing this!</li>
1048*7e63c127SSorin Basca</ul>
1049*7e63c127SSorin Basca
1050*7e63c127SSorin Basca<h3>API Changes</h3>
1051*7e63c127SSorin Basca<ul>
1052*7e63c127SSorin Basca  <li><code>ICoverageNode</code> API has been extended for cyclomatic
1053*7e63c127SSorin Basca      complexity (Trac #129).</li>
1054*7e63c127SSorin Basca  <li>XML and CSV report includes new counter type <code>COMPLEXITY</code>
1055*7e63c127SSorin Basca      (Trac #129).</li>
1056*7e63c127SSorin Basca  <li>New method <code>getTabWidth()</code> in callback interface
1057*7e63c127SSorin Basca      <code>ISourceFileLocator</code> instead of
1058*7e63c127SSorin Basca      <code>HTMLReportFormatter.setTabWidth()</code> which has been removed.
1059*7e63c127SSorin Basca      (Trac #152).</li>
1060*7e63c127SSorin Basca</ul>
1061*7e63c127SSorin Basca
1062*7e63c127SSorin Basca<h2>Release 0.5.1 (2011/03/21)</h2>
1063*7e63c127SSorin Basca
1064*7e63c127SSorin Basca<h3>New Features</h3>
1065*7e63c127SSorin Basca<ul>
1066*7e63c127SSorin Basca  <li>Duplicate classes with identical identifiers are now ignored during
1067*7e63c127SSorin Basca      analysis.</li>
1068*7e63c127SSorin Basca  <li>Added support for TestNG to Ant task Coverage (Track #144).</li>
1069*7e63c127SSorin Basca</ul>
1070*7e63c127SSorin Basca
1071*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1072*7e63c127SSorin Basca<ul>
1073*7e63c127SSorin Basca  <li>Calculate correct stackmap frames for Java 1.6 branches (Trac #139).</li>
1074*7e63c127SSorin Basca  <li>Link source files also for classes in default package (Trac #151).</li>
1075*7e63c127SSorin Basca</ul>
1076*7e63c127SSorin Basca
1077*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
1078*7e63c127SSorin Basca<ul>
1079*7e63c127SSorin Basca  <li>API documentation cleanup (Track #140).</li>
1080*7e63c127SSorin Basca  <li>Removed obsolete examples from documentation (Trac #141).</li>
1081*7e63c127SSorin Basca  <li>Added reporting API example (Trac #146).</li>
1082*7e63c127SSorin Basca  <li>Reduced file size of HTML report source pages (Trac #148).</li>
1083*7e63c127SSorin Basca</ul>
1084*7e63c127SSorin Basca
1085*7e63c127SSorin Basca<h3>API Changes</h3>
1086*7e63c127SSorin Basca<ul>
1087*7e63c127SSorin Basca  <li>Simplified reporting API (Trac #53).</li>
1088*7e63c127SSorin Basca  <li>Use colon as separator character in agent parameters (Trac #143).</li>
1089*7e63c127SSorin Basca  <li>Now also empty files are accepted as <code>*.exec</code> files (Trac #150).</li>
1090*7e63c127SSorin Basca</ul>
1091*7e63c127SSorin Basca
1092*7e63c127SSorin Basca<h2>Release 0.5.0 (2011/01/19)</h2>
1093*7e63c127SSorin Basca
1094*7e63c127SSorin Basca<h3>New Features</h3>
1095*7e63c127SSorin Basca<ul>
1096*7e63c127SSorin Basca  <li>JaCoCo now reports branch coverage (Track #66).</li>
1097*7e63c127SSorin Basca</ul>
1098*7e63c127SSorin Basca
1099*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1100*7e63c127SSorin Basca<ul>
1101*7e63c127SSorin Basca  <li>Only process actual Java class files during analysis (SF #3106102).</li>
1102*7e63c127SSorin Basca  <li>Fix broken source links due to sort hash (Track #125).</li>
1103*7e63c127SSorin Basca  <li>Fixed invalid OSGi headers in MANIFEST.MF files (Track #127).</li>
1104*7e63c127SSorin Basca  <li>Try to avoid interference with Hibernate (SF #3134190).</li>
1105*7e63c127SSorin Basca  <li>Provide proper error message in case of duplicate class names in the same
1106*7e63c127SSorin Basca      group (SF #3110219).</li>
1107*7e63c127SSorin Basca  <li>Allow any number of probes in static interface initializers (SF #3161106).</li>
1108*7e63c127SSorin Basca</ul>
1109*7e63c127SSorin Basca
1110*7e63c127SSorin Basca<h3>API Changes</h3>
1111*7e63c127SSorin Basca<ul>
1112*7e63c127SSorin Basca  <li>All analysis specific APIs have been moved to package
1113*7e63c127SSorin Basca      <code>org.jacoco.core.analysis</code>.</li>
1114*7e63c127SSorin Basca  <li>The <code>IStructureVisitor</code> interface has been replaced by a
1115*7e63c127SSorin Basca      simplified version called <code>ICoverageVisitor</code> (Track #132).</li>
1116*7e63c127SSorin Basca  <li>All counter creation and update APIs now accept <i>missed items</i> and
1117*7e63c127SSorin Basca      <i>covered items</i> as parameters (Track #131).</li>
1118*7e63c127SSorin Basca  <li>Instructions are now counted on a per line basis. Therefore some
1119*7e63c127SSorin Basca      interfaces in the <code>org.jacoco.core.analysis</code> package have
1120*7e63c127SSorin Basca      changed as well as the <code>line</code> element in the XML report
1121*7e63c127SSorin Basca      (Track #130).</li>
1122*7e63c127SSorin Basca  <li>Several internal implementation classes have removed from the core APIs or
1123*7e63c127SSorin Basca      have been replaced by new interfaces (Track #133).</li>
1124*7e63c127SSorin Basca</ul>
1125*7e63c127SSorin Basca
1126*7e63c127SSorin Basca<h2>Release 0.4.1 (2010/10/07)</h2>
1127*7e63c127SSorin Basca
1128*7e63c127SSorin Basca<h3>New Features</h3>
1129*7e63c127SSorin Basca<ul>
1130*7e63c127SSorin Basca  <li>New attribute <code>line</code> for <code>method</code> elements in the
1131*7e63c127SSorin Basca      XML report containing the first source line number of the method.
1132*7e63c127SSorin Basca      (Track #120).</li>
1133*7e63c127SSorin Basca  <li>Optional <code>locale</code> attribute for number rendering HTML reports,
1134*7e63c127SSorin Basca      also available as an attribute of the <code>html</code> tag of the
1135*7e63c127SSorin Basca      <code>report</code> Ant task (Track #122).</li>
1136*7e63c127SSorin Basca  <li>Coverage tables in HTML report are now sortable (Track #98).</li>
1137*7e63c127SSorin Basca  <li>The <code>report</code> Ant task issues a warning if source files are
1138*7e63c127SSorin Basca      provided but class files do not contain debug information to collect line
1139*7e63c127SSorin Basca      numbers (SF #3024486).</li>
1140*7e63c127SSorin Basca</ul>
1141*7e63c127SSorin Basca
1142*7e63c127SSorin Basca<h3>Non-functional Changes</h3>
1143*7e63c127SSorin Basca<ul>
1144*7e63c127SSorin Basca  <li>Reduced memory footprint for coverage data by 30% (Track #106).</li>
1145*7e63c127SSorin Basca  <li>Moved to Eclipse 3.6.x as development environment (Trac #115).</li>
1146*7e63c127SSorin Basca  <li>All delivered bundles and JAR files are signed (Trac #118).</li>
1147*7e63c127SSorin Basca</ul>
1148*7e63c127SSorin Basca
1149*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1150*7e63c127SSorin Basca<ul>
1151*7e63c127SSorin Basca  <li>Better error message when multiple JaCoCo agents are specified
1152*7e63c127SSorin Basca      (Track #103).</li>
1153*7e63c127SSorin Basca  <li>Fixed potential NPE at shutdown when running agent in
1154*7e63c127SSorin Basca      <code>tcpserver</code> mode (Track #117).</li>
1155*7e63c127SSorin Basca  <li>Agent now fails at startup when execution data file can't be opened
1156*7e63c127SSorin Basca      (Track #121).</li>
1157*7e63c127SSorin Basca</ul>
1158*7e63c127SSorin Basca
1159*7e63c127SSorin Basca<h2>Release 0.4.0 (2010/06/04)</h2>
1160*7e63c127SSorin Basca
1161*7e63c127SSorin Basca<h3>New Features</h3>
1162*7e63c127SSorin Basca<ul>
1163*7e63c127SSorin Basca  <li>Execution data now includes session information: an arbitrary identifier,
1164*7e63c127SSorin Basca      the start time and dump time (Trac #88).</li>
1165*7e63c127SSorin Basca  <li>Added session information to XML report (Trac #92).</li>
1166*7e63c127SSorin Basca  <li>New "Sessions" page in the HTML report shows information about each
1167*7e63c127SSorin Basca      sessions wherein execution data has been collected for the report
1168*7e63c127SSorin Basca      (Trac #93). Additionally all classes with execution data available are
1169*7e63c127SSorin Basca      listed on this page (Trac #94).</li>
1170*7e63c127SSorin Basca  <li>The agent now supports remote dumps via TCP/IP connections (Trac #82).</li>
1171*7e63c127SSorin Basca  <li>New Ant task <code>dump</code> to remotely collect coverage data from
1172*7e63c127SSorin Basca      agents (Trac #100).</li>
1173*7e63c127SSorin Basca</ul>
1174*7e63c127SSorin Basca
1175*7e63c127SSorin Basca<h3>API Changes</h3>
1176*7e63c127SSorin Basca<ul>
1177*7e63c127SSorin Basca  <li>Execution data file header is written and read in any case (Trac #72).</li>
1178*7e63c127SSorin Basca  <li>Added <code>dumponexit</code> to agent options (Trac #82).</li>
1179*7e63c127SSorin Basca  <li>Added <code>sessionid</code> to agent options (Trac #88).</li>
1180*7e63c127SSorin Basca  <li>Added <code>output, address and port</code> to agent options (Trac #82).</li>
1181*7e63c127SSorin Basca  <li>Additional and modified methods in <code>IRuntime</code> to produce
1182*7e63c127SSorin Basca      session information (Trac #88).</li>
1183*7e63c127SSorin Basca  <li>Coverage element type <code>SESSION</code> removed (Trac #95).</li>
1184*7e63c127SSorin Basca  <li>Removed several internal APIs from package
1185*7e63c127SSorin Basca      <code>org.jacoco.core.instr</code> used for class instrumentation.</li>
1186*7e63c127SSorin Basca  <li>Renamed class <code>org.jacoco.report.csv.CsvFormatter</code> to
1187*7e63c127SSorin Basca      <code>CSVFormatter</code> (upper case) for consistency with other
1188*7e63c127SSorin Basca      formatters.</li>
1189*7e63c127SSorin Basca</ul>
1190*7e63c127SSorin Basca
1191*7e63c127SSorin Basca<h2>Release 0.3.3 (2010/04/19)</h2>
1192*7e63c127SSorin Basca
1193*7e63c127SSorin Basca<h3>New Features</h3>
1194*7e63c127SSorin Basca<ul>
1195*7e63c127SSorin Basca  <li>Support for different archives (jar, war, ear etc.) and nested archives
1196*7e63c127SSorin Basca      (Trac #78).</li>
1197*7e63c127SSorin Basca  <li>XML report with line level coverage information (requested for Sonar).</li>
1198*7e63c127SSorin Basca</ul>
1199*7e63c127SSorin Basca
1200*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1201*7e63c127SSorin Basca<ul>
1202*7e63c127SSorin Basca  <li>Correct stackmap frames for Java 1.6 class files. (Track #81).</li>
1203*7e63c127SSorin Basca  <li>Avoid usage of <code>LocalVariableSorter</code> due to ASM bug #314563
1204*7e63c127SSorin Basca      (Track #69).</li>
1205*7e63c127SSorin Basca  <li>Nested Java/JUnit Ant tasks not being executed when coverage task disabled. (Track #85).</li>
1206*7e63c127SSorin Basca</ul>
1207*7e63c127SSorin Basca
1208*7e63c127SSorin Basca<h2>Release 0.3.2 (2010/04/01)</h2>
1209*7e63c127SSorin Basca
1210*7e63c127SSorin Basca<h3>New Features</h3>
1211*7e63c127SSorin Basca<ul>
1212*7e63c127SSorin Basca  <li>New HTML report option to directly create a zip file containing the report
1213*7e63c127SSorin Basca      (Trac #12).</li>
1214*7e63c127SSorin Basca  <li>Code coverage for static initializers in interfaces (Trac #21).</li>
1215*7e63c127SSorin Basca  <li>Better error handling for <code>report</code> Ant task (Trac #71).</li>
1216*7e63c127SSorin Basca  <li>Classes without instructions are excluded from reports (Trac #73).</li>
1217*7e63c127SSorin Basca</ul>
1218*7e63c127SSorin Basca
1219*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1220*7e63c127SSorin Basca<ul>
1221*7e63c127SSorin Basca  <li>XML and CSV report output now also works for structures without groups
1222*7e63c127SSorin Basca      (Track #76).</li>
1223*7e63c127SSorin Basca</ul>
1224*7e63c127SSorin Basca
1225*7e63c127SSorin Basca<h3>API Changes</h3>
1226*7e63c127SSorin Basca<ul>
1227*7e63c127SSorin Basca  <li>Consistent usage of the term "Missed" instead of "NotCovered" in all APIs
1228*7e63c127SSorin Basca      (Trac #72).</li>
1229*7e63c127SSorin Basca  <li>To support "off-line" instrumentation scenarios it is not required any
1230*7e63c127SSorin Basca      more to register instrumented classes with the runtime (Trac #74).</li>
1231*7e63c127SSorin Basca</ul>
1232*7e63c127SSorin Basca
1233*7e63c127SSorin Basca<h2>Release 0.3.1 (2010/02/09)</h2>
1234*7e63c127SSorin Basca
1235*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1236*7e63c127SSorin Basca<ul>
1237*7e63c127SSorin Basca  <li>Ant tasks broken on Linux (Trac #68).</li>
1238*7e63c127SSorin Basca</ul>
1239*7e63c127SSorin Basca
1240*7e63c127SSorin Basca<h2>Release 0.3.0 (2010/02/02)</h2>
1241*7e63c127SSorin Basca
1242*7e63c127SSorin Basca<h3>New Features</h3>
1243*7e63c127SSorin Basca<ul>
1244*7e63c127SSorin Basca  <li>Report renders anonymous classes with type information (Trac #46).</li>
1245*7e63c127SSorin Basca  <li><code>enabled</code> property added to <code>agent</code> and
1246*7e63c127SSorin Basca      <code>coverage</code> Ant tasks (Trac #63).</li>
1247*7e63c127SSorin Basca  <li>Ant task <code>merge</code> added (Trac #52).</li>
1248*7e63c127SSorin Basca</ul>
1249*7e63c127SSorin Basca
1250*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1251*7e63c127SSorin Basca<ul>
1252*7e63c127SSorin Basca  <li>New <code>IRuntime</code> implementation enables JaCoCo usage for J2EE
1253*7e63c127SSorin Basca  application servers like Glassfish.</li>
1254*7e63c127SSorin Basca</ul>
1255*7e63c127SSorin Basca
1256*7e63c127SSorin Basca<h3>API Changes</h3>
1257*7e63c127SSorin Basca<ul>
1258*7e63c127SSorin Basca  <li>Agent option and Ant task parameter <code>file</code> changed to
1259*7e63c127SSorin Basca      <code>destfile</code> (Trac #59).</li>
1260*7e63c127SSorin Basca  <li>Agent option and Ant task parameter <code>merge</code> changed to
1261*7e63c127SSorin Basca      <code>append</code> (Trac #51).</li>
1262*7e63c127SSorin Basca</ul>
1263*7e63c127SSorin Basca
1264*7e63c127SSorin Basca<h2>Release 0.2.0 (2010/01/08)</h2>
1265*7e63c127SSorin Basca
1266*7e63c127SSorin Basca<h3>New Features</h3>
1267*7e63c127SSorin Basca
1268*7e63c127SSorin Basca<ul>
1269*7e63c127SSorin Basca  <li>Simplified probe data structure reduces memory usage (Trac #47).</li>
1270*7e63c127SSorin Basca  <li>Performance test becomes part of the build.</li>
1271*7e63c127SSorin Basca  <li>New bundle <code>org.jacoco.agent</code> that provides the Java agent
1272*7e63c127SSorin Basca      as a resource (Trac #50).</li>
1273*7e63c127SSorin Basca</ul>
1274*7e63c127SSorin Basca
1275*7e63c127SSorin Basca<h3>Fixed Bugs</h3>
1276*7e63c127SSorin Basca
1277*7e63c127SSorin Basca<ul>
1278*7e63c127SSorin Basca  <li><code>ArrayIndexOutOfBoundsException</code> due to inconsistent processing
1279*7e63c127SSorin Basca      while instrumentation and analysis (Trac #44).</li>
1280*7e63c127SSorin Basca</ul>
1281*7e63c127SSorin Basca
1282*7e63c127SSorin Basca<h2>Release 0.1.0 (2009/10/28)</h2>
1283*7e63c127SSorin Basca
1284*7e63c127SSorin Basca<p>
1285*7e63c127SSorin Basca  The very first JaCoCo release.
1286*7e63c127SSorin Basca</p>
1287*7e63c127SSorin Basca
1288*7e63c127SSorin Basca</div>
1289*7e63c127SSorin Basca<div class="footer">
1290*7e63c127SSorin Basca  <span class="right"><a href="${jacoco.home.url}">JaCoCo</a> ${qualified.bundle.version}</span>
1291*7e63c127SSorin Basca  <a href="license.html">Copyright</a> &copy; ${copyright.years} Mountainminds GmbH &amp; Co. KG and Contributors
1292*7e63c127SSorin Basca</div>
1293*7e63c127SSorin Basca
1294*7e63c127SSorin Basca</body>
1295*7e63c127SSorin Basca</html>
1296