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