blob: 28b94939dfa0aa572061789794f6439ed796e9fb [file] [log] [blame]
Marc R. Hoffmanne571f3f2012-05-13 12:18:02 +00001<?xml version="1.0" encoding="UTF-8" ?>
Evgeny Mandrikov82a92ca2012-01-15 20:25:48 +00002<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
4<head>
Marc R. Hoffmanne571f3f2012-05-13 12:18:02 +00005 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <link rel="stylesheet" href=".resources/doc.css" charset="UTF-8" type="text/css" />
Evgeny Mandrikov82a92ca2012-01-15 20:25:48 +00007 <link rel="shortcut icon" href=".resources/report.gif" type="image/gif" />
8 <title>JaCoCo - Change History</title>
9</head>
10<body>
11
12<div class="breadcrumb">
13 <a href="../index.html" class="el_report">JaCoCo</a> &gt;
14 <a href="index.html" class="el_group">Documentation</a> &gt;
15 <span class="el_source">Change History</span>
16</div>
17<div id="content">
18
19<h1>Change History</h1>
20
Evgeny Mandrikov13d966c2012-08-31 12:39:14 +060021<h2>Trunk Build @qualified.bundle.version@ (@build.date@)</h2>
22
Marc R. Hoffmannf22657e2012-09-20 21:45:49 +020023<h3>New Features</h3>
24<ul>
25 <li>Full support for Java 7 including INVOKEDYNAMIC as JaCoCo is now based
26 on ASM 4.0 (Issue #5).</li>
27</ul>
28
Abraham Lin47c3fbb2012-09-13 23:27:32 +060029<h3>Fixed Bugs</h3>
30<ul>
31 <li>Maven plugin should skip creation of report if the execution data file is
32 missing. This avoids appearance of stack traces in case when JVM was not forked,
33 e.g. if there are no tests to run (SF #3563431, GitHub #19).</li>
Evgeny Mandrikov0d5ab6f2012-09-14 00:04:50 +060034 <li>Maven plugin should fail if unable to read execution data file or create report
35 (GitHub #19).</li>
Abraham Lin47c3fbb2012-09-13 23:27:32 +060036</ul>
37
Evgeny Mandrikovd3dd13c2012-08-31 12:32:50 +060038<h2>Release 0.5.10 (2012/08/31)</h2>
Evgeny Mandrikov9e1a22e2012-07-30 07:35:07 +000039
Marc R. Hoffmannababcec2012-08-16 19:07:26 +000040<h3>Fixed Bugs</h3>
41<ul>
Marc R. Hoffmann632e70b2012-08-24 14:49:19 +000042 <li>Correct stackmap frames for new <code>long[]</code> arrays (SF #3553210).</li>
43 <li>Properly resolve the <code>fork</code> variable for tasks wrapped by the
44 <code>coverage</code> Ant task (Trac #213).</li>
Marc R. Hoffmannababcec2012-08-16 19:07:26 +000045</ul>
46
Marc R. Hoffmannbb80b762012-08-29 23:57:58 +020047<h3>Non-functional Changes</h3>
48<ul>
49 <li>Source tree has been migrated to Git and is now hosted on Github at
50 <a href="https://github.com/jacoco/jacoco">https://github.com/jacoco/jacoco</a>.</li>
51</ul>
52
Evgeny Mandrikov7fa63e72012-07-30 07:26:38 +000053<h2>Release 0.5.9 (2012/07/30)</h2>
Evgeny Mandrikov19e5caa2012-07-11 12:29:04 +000054
Marc R. Hoffmann049e6042012-07-21 19:02:27 +000055<h3>Fixed Bugs</h3>
56<ul>
57 <li>Don't produce invalid class files in case of unexpected stackmap frames
58 (SF #3543758).</li>
59</ul>
60
Evgeny Mandrikov5552b672012-07-11 12:23:15 +000061<h2>Release 0.5.8 (2012/07/11)</h2>
Marc R. Hoffmann871836b2012-05-12 12:28:13 +000062
Marc R. Hoffmanncf41fc12012-06-30 00:15:43 +000063<h3>New Features</h3>
64<ul>
65 <li>Support for parallel Maven builds (Trac #191).</li>
66 <li>New agent option <code>classdumpdir</code> to dump all class files seen
67 by the JaCoCo agent to disk. This option is also available for Ant and
68 Maven (Trac #208).</li>
69</ul>
70
Marc R. Hoffmann9308f8a2012-07-04 19:00:06 +000071<h3>Fixed Bugs</h3>
72<ul>
73 <li>Allow instrumentation of classes with dead code (SF #3538112).</li>
Marc R. Hoffmann65c17152012-07-09 10:37:23 +000074 <li>Reworked instrumentation strategy to avoid verifier error "Uninitialized
75 object exists on backward branch" with certain Java 7 class files
76 (Trac #154).</li>
Marc R. Hoffmann9308f8a2012-07-04 19:00:06 +000077</ul>
78
Marc R. Hoffmann78309272012-05-02 19:25:44 +000079<h3>Non-functional Changes</h3>
80<ul>
Marc R. Hoffmann871836b2012-05-12 12:28:13 +000081 <li>Documentation now includes Maven example and Maven goal documentation
82 (Trac #201, #202).</li>
Marc R. Hoffmann78309272012-05-02 19:25:44 +000083</ul>
84
Evgeny Mandrikov976a90f2012-04-19 03:40:42 +000085<h2>Release 0.5.7 (2012/04/19)</h2>
Evgeny Mandrikov022e3af2012-01-23 23:39:12 +000086
Marc R. Hoffmann2a363b82012-03-31 10:00:06 +000087<h3>New Features</h3>
88<ul>
89 <li>Support for class redefinitions by other agents like JMockit (SF #3509409).</li>
Marc R. Hoffmannc17f2b02012-04-07 09:05:00 +000090 <li>Remove class file attributes with invalid code offsets caused by other
Marc R. Hoffmannc32282c2012-04-18 21:04:59 +000091 byte code processing tools to avoid verifier errors (Trac #196).</li>
92 <li>Improved logging for Ant tasks (SF #3518429).</li>
Marc R. Hoffmann2a363b82012-03-31 10:00:06 +000093</ul>
94
Marc R. Hoffmannce117fd2012-03-29 12:55:41 +000095<h3>Fixed Bugs</h3>
96<ul>
97 <li>In case of failures the agent should log the original exception.</li>
98</ul>
99
Evgeny Mandrikov99487a12012-01-23 23:33:12 +0000100<h2>Release 0.5.6 (2012/01/23)</h2>
Evgeny Mandrikov82a92ca2012-01-15 20:25:48 +0000101
102<h3>New Features</h3>
103<ul>
104 <li>jacoco-maven-plugin can be used together with maven-site-plugin (Trac #181).</li>
Marc R. Hoffmann8b5d6a32012-01-18 20:24:45 +0000105 <li>The <code>report</code> Ant task now also supports directory resources to
106 specify source folders. This allows reading source files from multiple
107 directories. Contributed by Dominik Stadler (Trac #119).</li>
Evgeny Mandrikov82a92ca2012-01-15 20:25:48 +0000108</ul>
109
110<h3>Fixed Bugs</h3>
111<ul>
112 <li>Don't insert stackmap frames for class files before version 1.6.</li>
113 <li>Regression, which was introduced in 0.5.4 - restored compatibility of jacoco-maven-plugin with Maven 2 (Trac #182).</li>
114</ul>
115
116<h2>Release 0.5.5 (2011/12/15)</h2>
117
118<h3>Fixed Bugs</h3>
119<ul>
120 <li>Correct default value for the <code>append</code> property of the
121 <code>dump</code> Ant task is <code>true</code> (Trac #178).</li>
122 <li>Try/catch blocks must not be counted as instructions (Trac #179).</li>
123</ul>
124
125<h3>Non-functional Changes</h3>
126<ul>
127 <li>Upgrade to ASM 3.3.1.</li>
128</ul>
129
130<h2>Release 0.5.4 (2011/11/11)</h2>
131
132<h3>New Features</h3>
133<ul>
134 <li>Maven plug-in: respect <code>includes</code> and <code>excludes</code>
Evgeny Mandrikov8e7d6992011-11-11 20:26:38 +0000135 properties in report Mojo (Trac #160).
Evgeny Mandrikov8e7d6992011-11-11 20:26:38 +0000136 Also note that:
137<pre class="source lang-xml">
138&lt;configuration&gt;
139 &lt;includes&gt;org.foo.*:org.bar.*&lt;/includes&gt;
140 &lt;excludes&gt;com.foo.*:com.bar.*&lt;/excludes&gt;
141&lt;/configuration&gt;
142</pre>
143 must be replaced on:
144<pre class="source lang-xml">
145&lt;configuration&gt;
146 &lt;includes&gt;
147 &lt;include>org.foo.*&lt;/include&gt;
148 &lt;include>org.bar.*&lt;/include&gt;
149 &lt;/includes&gt;
150 &lt;excludes&gt;
151 &lt;exclude&gt;com.foo.*&lt;/exclude&gt;
152 &lt;exclude&gt;com.bar.*&lt;/exclude&gt;
153 &lt;/excludes&gt;
154&lt;/configuration&gt;
155</pre>
Evgeny Mandrikov82a92ca2012-01-15 20:25:48 +0000156 </li>
157</ul>
158
159<h3>API Changes</h3>
160<ul>
161 <li><code>Instrumenter</code> now only requires
162 <code>IExecutionDataAccessorGenerator</code> instead of
163 <code>IRuntime</code> (Trac #174).</li>
164 <li>Removed reference to internal implementation classes from
165 <code>CoverageBuilder</code> API.</li>
166</ul>
167
168<h3>Non-functional Changes</h3>
169<ul>
170 <li>Release bundles from now on signed again.</li>
171 <li>Several documentation updates.</li>
172</ul>
173
174<h2>Release 0.5.3 (2011/07/06)</h2>
175
176<h3>New Features</h3>
177<ul>
178 <li>New Maven plug-in for JaCoCo agent setup and basic reporting (Trac #25).</li>
179 <li>Additional output mode implementation for JaCoCo agent based on JMX.</li>
180</ul>
181
182<h3>Fixed Bugs</h3>
183<ul>
184 <li>Fixed problem with reporting of nested group structures (Trac #157).</li>
185</ul>
186
187<h3>Non-functional Changes</h3>
188<ul>
189 <li>JaCoCo build based on Maven (Trac #136).</li>
190 <li>JaCoCo published to Maven repository (Trac #149).</li>
191</ul>
192
193<h2>Release 0.5.2 (2011/05/19)</h2>
194
195<h3>New Features</h3>
196<ul>
197 <li>JaCoCo reports cyclomatic complexity numbers (Trac #129).</li>
198 <li>For HTML reports the tab width can be specified on the
199 <code>sourcefiles</code> attribute of the <code>report</code> Ant task
200 (Track #152).</li>
201</ul>
202
203<h3>Fixed Bugs</h3>
204<ul>
205 <li>Removed duplicate counters in the root node of XML reports (Trac #155).</li>
206 <li>Avoid <code>StackOverflowException</code> when analyzing methods with very
207 long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet
208 for reporting and analyzing this!</li>
209</ul>
210
211<h3>API Changes</h3>
212<ul>
213 <li><code>ICoverageNode</code> API has been extended for cyclomatic
214 complexity (Trac #129).</li>
215 <li>XML and CSV report includes new counter type <code>COMPLEXITY</code>
216 (Trac #129).</li>
217 <li>New method <code>getTabWidth()</code> in callback interface
218 <code>ISourceFileLocator</code> instead of
219 <code>HTMLReportFormatter.setTabWidth()</code> which has been removed.
220 (Trac #152).</li>
221</ul>
222
223<h2>Release 0.5.1 (2011/03/21)</h2>
224
225<h3>New Features</h3>
226<ul>
227 <li>Duplicate classes with identical identifiers are now ignored during
228 analysis.</li>
229 <li>Added support for TestNG to Ant task Coverage (Track #144).</li>
230</ul>
231
232<h3>Fixed Bugs</h3>
233<ul>
234 <li>Calculate correct stackmap frames for Java 1.6 branches (Trac #139).</li>
235 <li>Link source files also for classes in default package (Trac #151).</li>
236</ul>
237
238<h3>Non-functional Changes</h3>
239<ul>
240 <li>API documentation cleanup (Track #140).</li>
241 <li>Removed obsolete examples from documentation (Trac #141).</li>
242 <li>Added reporting API example (Trac #146).</li>
243 <li>Reduced file size of HTML report source pages (Trac #148).</li>
244</ul>
245
246<h3>API Changes</h3>
247<ul>
248 <li>Simplified reporting API (Trac #53).</li>
249 <li>Use colon as separator character in agent parameters (Trac #143).</li>
250 <li>Now also empty files are accepted as <code>*.exec</code> files (Trac #150).</li>
251</ul>
252
253<h2>Release 0.5.0 (2011/01/19)</h2>
254
255<h3>New Features</h3>
256<ul>
257 <li>JaCoCo now reports branch coverage (Track #66).</li>
258</ul>
259
260<h3>Fixed Bugs</h3>
261<ul>
262 <li>Only process actual Java class files during analysis (SF #3106102).</li>
263 <li>Fix broken source links due to sort hash (Track #125).</li>
264 <li>Fixed invalid OSGi headers in MANIFEST.MF files (Track #127).</li>
265 <li>Try to avoid interference with Hibernate (SF #3134190).</li>
266 <li>Provide proper error message in case of duplicate class names in the same
267 group (SF #3110219).</li>
268 <li>Allow any number of probes in static interface initializers (SF #3161106).</li>
269</ul>
270
271<h3>API Changes</h3>
272<ul>
273 <li>All analysis specific APIs have been moved to package
274 <code>org.jacoco.core.analysis</code>.</li>
275 <li>The <code>IStructureVisitor</code> interface has been replaced by a
276 simplified version called <code>ICoverageVisitor</code> (Track #132).</li>
277 <li>All counter creation and update APIs now accept <i>missed items</i> and
278 <i>covered items</i> as parameters (Track #131).</li>
279 <li>Instructions are now counted on a per line basis. Therefore some
280 interfaces in the <code>org.jacoco.core.analysis</code> package have
281 changed as well as the <code>line</code> element in the XML report
282 (Track #130).</li>
283 <li>Several internal implementation classes have removed from the core APIs or
284 have been replaced by new interfaces (Track #133).</li>
285</ul>
286
287<h2>Release 0.4.1 (2010/10/07)</h2>
288
289<h3>New Features</h3>
290<ul>
291 <li>New attribute <code>line</code> for <code>method</code> elements in the
292 XML report containing the first source line number of the method.
293 (Track #120).</li>
294 <li>Optional <code>locale</code> attribute for number rendering HTML reports,
295 also available as an attribute of the <code>html</code> tag of the
296 <code>report</code> Ant task (Track #122).</li>
297 <li>Coverage tables in HTML report are now sortable (Track #98).</li>
298 <li>The <code>report</code> Ant task issues a warning if source files are
299 provided but class files do not contain debug information to collect line
300 numbers (SF #3024486).</li>
301</ul>
302
303<h3>Non-functional Changes</h3>
304<ul>
305 <li>Reduced memory footprint for coverage data by 30% (Track #106).</li>
306 <li>Moved to Eclipse 3.6.x as development environment (Trac #115).</li>
307 <li>All delivered bundles and JAR files are signed (Trac #118).</li>
308</ul>
309
310<h3>Fixed Bugs</h3>
311<ul>
312 <li>Better error message when multiple JaCoCo agents are specified
313 (Track #103).</li>
314 <li>Fixed potential NPE at shutdown when running agent in
315 <code>tcpserver</code> mode (Track #117).</li>
316 <li>Agent now fails at startup when execution data file can't be opened
317 (Track #121).</li>
318</ul>
319
320<h2>Release 0.4.0 (2010/06/04)</h2>
321
322<h3>New Features</h3>
323<ul>
324 <li>Execution data now includes session information: an arbitrary identifier,
325 the start time and dump time (Trac #88).</li>
326 <li>Added session information to XML report (Trac #92).</li>
327 <li>New "Sessions" page in the HTML report shows information about each
328 sessions wherein execution data has been collected for the report
329 (Trac #93). Additionally all classes with execution data available are
330 listed on this page (Trac #94).</li>
331 <li>The agent now supports remote dumps via TCP/IP connections (Trac #82).</li>
332 <li>New Ant task <code>dump</code> to remotely collect coverage data from
333 agents (Trac #100).</li>
334</ul>
335
336<h3>API Changes</h3>
337<ul>
338 <li>Execution data file header is written and read in any case (Trac #72).</li>
339 <li>Added <code>dumponexit</code> to agent options (Trac #82).</li>
340 <li>Added <code>sessionid</code> to agent options (Trac #88).</li>
341 <li>Added <code>output, address and port</code> to agent options (Trac #82).</li>
342 <li>Additional and modified methods in <code>IRuntime</code> to produce
343 session information (Trac #88).</li>
344 <li>Coverage element type <code>SESSION</code> removed (Trac #95).</li>
345 <li>Removed several internal APIs from package
346 <code>org.jacoco.core.instr</code> used for class instrumentation.</li>
347 <li>Renamed class <code>org.jacoco.report.csv.CsvFormatter</code> to
348 <code>CSVFormatter</code> (upper case) for consistency with other
349 formatters.</li>
350</ul>
351
352<h2>Release 0.3.3 (2010/04/19)</h2>
353
354<h3>New Features</h3>
355<ul>
356 <li>Support for different archives (jar, war, ear etc.) and nested archives
357 (Trac #78).</li>
358 <li>XML report with line level coverage information (requested for Sonar).</li>
359</ul>
360
361<h3>Fixed Bugs</h3>
362<ul>
363 <li>Correct stackmap frames for Java 1.6 class files. (Track #81).</li>
364 <li>Avoid usage of <code>LocalVariableSorter</code> due to ASM bug #314563
365 (Track #69).</li>
366 <li>Nested Java/JUnit Ant tasks not being executed when coverage task disabled. (Track #85).</li>
367</ul>
368
369<h2>Release 0.3.2 (2010/04/01)</h2>
370
371<h3>New Features</h3>
372<ul>
373 <li>New HTML report option to directly create a zip file containing the report
374 (Trac #12).</li>
375 <li>Code coverage for static initializers in interfaces (Trac #21).</li>
376 <li>Better error handling for <code>report</code> Ant task (Trac #71).</li>
377 <li>Classes without instructions are excluded from reports (Trac #73).</li>
378</ul>
379
380<h3>Fixed Bugs</h3>
381<ul>
382 <li>XML and CSV report output now also works for structures without groups
383 (Track #76).</li>
384</ul>
385
386<h3>API Changes</h3>
387<ul>
388 <li>Consistent usage of the term "Missed" instead of "NotCovered" in all APIs
389 (Trac #72).</li>
390 <li>To support "off-line" instrumentation scenarios it is not required any
391 more to register instrumented classes with the runtime (Trac #74).</li>
392</ul>
393
394<h2>Release 0.3.1 (2010/02/09)</h2>
395
396<h3>Fixed Bugs</h3>
397<ul>
398 <li>Ant tasks broken on Linux (Trac #68).</li>
399</ul>
400
401<h2>Release 0.3.0 (2010/02/02)</h2>
402
403<h3>New Features</h3>
404<ul>
405 <li>Report renders anonymous classes with type information (Trac #46).</li>
406 <li><code>enabled</code> property added to <code>agent</code> and
407 <code>coverage</code> Ant tasks (Trac #63).</li>
408 <li>Ant task <code>merge</code> added (Trac #52).</li>
409</ul>
410
411<h3>Fixed Bugs</h3>
412<ul>
413 <li>New <code>IRuntime</code> implementation enables JaCoCo usage for J2EE
414 application servers like Glassfish.</li>
415</ul>
416
417<h3>API Changes</h3>
418<ul>
419 <li>Agent option and Ant task parameter <code>file</code> changed to
420 <code>destfile</code> (Trac #59).</li>
421 <li>Agent option and Ant task parameter <code>merge</code> changed to
422 <code>append</code> (Trac #51).</li>
423</ul>
424
425<h2>Release 0.2.0 (2010/01/08)</h2>
426
427<h3>New Features</h3>
428
429<ul>
430 <li>Simplified probe data structure reduces memory usage (Trac #47).</li>
431 <li>Performance test becomes part of the build.</li>
432 <li>New bundle <code>org.jacoco.agent</code> that provides the Java agent
433 as a resource (Trac #50).</li>
434</ul>
435
436<h3>Fixed Bugs</h3>
437
438<ul>
439 <li><code>ArrayIndexOutOfBoundsException</code> due to inconsistent processing
440 while instrumentation and analysis (Trac #44).</li>
441</ul>
442
443
444<h2>Release 0.1.0 (2009/10/28)</h2>
445
446<p>
447 The very first JaCoCo release.
448</p>
449
450</div>
451<div class="footer">
452 <span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span>
453 <a href="license.html">Copyright</a> &copy; @copyright.years@ Mountainminds GmbH &amp; Co. KG and Contributors
454</div>
455
456</body>
457</html>