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