aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.doc/docroot/doc/changes.html
blob: 8369239004018e0c9c52e91b3f247b844c23ba7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <link rel="stylesheet" href=".resources/doc.css" charset="UTF-8" type="text/css" />
  <link rel="shortcut icon" href=".resources/report.gif" type="image/gif" />
  <title>JaCoCo - Change History</title>
</head>
<body>

<div class="breadcrumb">
  <a href="../index.html" class="el_report">JaCoCo</a> &gt;
  <a href="index.html" class="el_group">Documentation</a> &gt;
  <span class="el_source">Change History</span>
</div>
<div id="content">

<h1>Change History</h1>

<h2>Trunk Build @qualified.bundle.version@ (@build.date@)</h2>

<h2>Release 0.5.8 (2012/07/11)</h2>

<h3>New Features</h3>
<ul>
  <li>Support for parallel Maven builds (Trac #191).</li>
  <li>New agent option <code>classdumpdir</code> to dump all class files seen
      by the JaCoCo agent to disk. This option is also available for Ant and
      Maven (Trac #208).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Allow instrumentation of classes with dead code (SF #3538112).</li>
  <li>Reworked instrumentation strategy to avoid verifier error "Uninitialized
      object exists on backward branch" with certain Java 7 class files
      (Trac #154).</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>Documentation now includes Maven example and Maven goal documentation
      (Trac #201, #202).</li>
</ul>

<h2>Release 0.5.7 (2012/04/19)</h2>

<h3>New Features</h3>
<ul>
  <li>Support for class redefinitions by other agents like JMockit (SF #3509409).</li>
  <li>Remove class file attributes with invalid code offsets caused by other
      byte code processing tools to avoid verifier errors (Trac #196).</li>
  <li>Improved logging for Ant tasks (SF #3518429).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>In case of failures the agent should log the original exception.</li>
</ul>

<h2>Release 0.5.6 (2012/01/23)</h2>

<h3>New Features</h3>
<ul>
  <li>jacoco-maven-plugin can be used together with maven-site-plugin (Trac #181).</li>
  <li>The <code>report</code> Ant task now also supports directory resources to
      specify source folders. This allows reading source files from multiple
      directories. Contributed by Dominik Stadler (Trac #119).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Don't insert stackmap frames for class files before version 1.6.</li>
  <li>Regression, which was introduced in 0.5.4 - restored compatibility of jacoco-maven-plugin with Maven 2 (Trac #182).</li>
</ul>

<h2>Release 0.5.5 (2011/12/15)</h2>

<h3>Fixed Bugs</h3>
<ul>
  <li>Correct default value for the <code>append</code> property of the
      <code>dump</code> Ant task is <code>true</code> (Trac #178).</li>
  <li>Try/catch blocks must not be counted as instructions (Trac #179).</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>Upgrade to ASM 3.3.1.</li>
</ul>

<h2>Release 0.5.4 (2011/11/11)</h2>

<h3>New Features</h3>
<ul>
  <li>Maven plug-in: respect <code>includes</code> and <code>excludes</code>
      properties in report Mojo (Trac #160).
      Also note that:
<pre class="source lang-xml">
&lt;configuration&gt;
  &lt;includes&gt;org.foo.*:org.bar.*&lt;/includes&gt;
  &lt;excludes&gt;com.foo.*:com.bar.*&lt;/excludes&gt;
&lt;/configuration&gt;
</pre>
      must be replaced on:
<pre class="source lang-xml">
&lt;configuration&gt;
  &lt;includes&gt;
    &lt;include>org.foo.*&lt;/include&gt;
    &lt;include>org.bar.*&lt;/include&gt;
  &lt;/includes&gt;
  &lt;excludes&gt;
    &lt;exclude&gt;com.foo.*&lt;/exclude&gt;
    &lt;exclude&gt;com.bar.*&lt;/exclude&gt;
  &lt;/excludes&gt;
&lt;/configuration&gt;
</pre>
  </li>
</ul>

<h3>API Changes</h3>
<ul>
  <li><code>Instrumenter</code> now only requires
      <code>IExecutionDataAccessorGenerator</code> instead of
      <code>IRuntime</code> (Trac #174).</li>
  <li>Removed reference to internal implementation classes from
      <code>CoverageBuilder</code> API.</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>Release bundles from now on signed again.</li>
  <li>Several documentation updates.</li>
</ul>

<h2>Release 0.5.3 (2011/07/06)</h2>

<h3>New Features</h3>
<ul>
  <li>New Maven plug-in for JaCoCo agent setup and basic reporting (Trac #25).</li>
  <li>Additional output mode implementation for JaCoCo agent based on JMX.</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Fixed problem with reporting of nested group structures (Trac #157).</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>JaCoCo build based on Maven (Trac #136).</li>
  <li>JaCoCo published to Maven repository (Trac #149).</li>
</ul>

<h2>Release 0.5.2 (2011/05/19)</h2>

<h3>New Features</h3>
<ul>
  <li>JaCoCo reports cyclomatic complexity numbers (Trac #129).</li>
  <li>For HTML reports the tab width can be specified on the
      <code>sourcefiles</code> attribute of the <code>report</code> Ant task
      (Track #152).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Removed duplicate counters in the root node of XML reports (Trac #155).</li>
  <li>Avoid <code>StackOverflowException</code> when analyzing methods with very
      long instruction sequences (Trac #156). Many thanks to Jean-Eric Cuendet
      for reporting and analyzing this!</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li><code>ICoverageNode</code> API has been extended for cyclomatic
      complexity (Trac #129).</li>
  <li>XML and CSV report includes new counter type <code>COMPLEXITY</code>
      (Trac #129).</li>
  <li>New method <code>getTabWidth()</code> in callback interface 
      <code>ISourceFileLocator</code> instead of
      <code>HTMLReportFormatter.setTabWidth()</code> which has been removed.
      (Trac #152).</li>
</ul>

<h2>Release 0.5.1 (2011/03/21)</h2>

<h3>New Features</h3>
<ul>
  <li>Duplicate classes with identical identifiers are now ignored during
      analysis.</li>
  <li>Added support for TestNG to Ant task Coverage (Track #144).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Calculate correct stackmap frames for Java 1.6 branches (Trac #139).</li>
  <li>Link source files also for classes in default package (Trac #151).</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>API documentation cleanup (Track #140).</li>
  <li>Removed obsolete examples from documentation (Trac #141).</li>
  <li>Added reporting API example (Trac #146).</li>
  <li>Reduced file size of HTML report source pages (Trac #148).</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li>Simplified reporting API (Trac #53).</li>
  <li>Use colon as separator character in agent parameters (Trac #143).</li>
  <li>Now also empty files are accepted as <code>*.exec</code> files (Trac #150).</li>
</ul>

<h2>Release 0.5.0 (2011/01/19)</h2>

<h3>New Features</h3>
<ul>
  <li>JaCoCo now reports branch coverage (Track #66).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Only process actual Java class files during analysis (SF #3106102).</li>
  <li>Fix broken source links due to sort hash (Track #125).</li>
  <li>Fixed invalid OSGi headers in MANIFEST.MF files (Track #127).</li>
  <li>Try to avoid interference with Hibernate (SF #3134190).</li>
  <li>Provide proper error message in case of duplicate class names in the same
      group (SF #3110219).</li>
  <li>Allow any number of probes in static interface initializers (SF #3161106).</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li>All analysis specific APIs have been moved to package
      <code>org.jacoco.core.analysis</code>.</li>
  <li>The <code>IStructureVisitor</code> interface has been replaced by a
      simplified version called <code>ICoverageVisitor</code> (Track #132).</li>
  <li>All counter creation and update APIs now accept <i>missed items</i> and
      <i>covered items</i> as parameters (Track #131).</li>
  <li>Instructions are now counted on a per line basis. Therefore some
      interfaces in the <code>org.jacoco.core.analysis</code> package have
      changed as well as the <code>line</code> element in the XML report
      (Track #130).</li>
  <li>Several internal implementation classes have removed from the core APIs or
      have been replaced by new interfaces (Track #133).</li>
</ul>

<h2>Release 0.4.1 (2010/10/07)</h2>

<h3>New Features</h3>
<ul>
  <li>New attribute <code>line</code> for <code>method</code> elements in the
      XML report containing the first source line number of the method.
      (Track #120).</li>
  <li>Optional <code>locale</code> attribute for number rendering HTML reports,
      also available as an attribute of the <code>html</code> tag of the
      <code>report</code> Ant task (Track #122).</li>
  <li>Coverage tables in HTML report are now sortable (Track #98).</li>
  <li>The <code>report</code> Ant task issues a warning if source files are
      provided but class files do not contain debug information to collect line
      numbers (SF #3024486).</li>
</ul>

<h3>Non-functional Changes</h3>
<ul>
  <li>Reduced memory footprint for coverage data by 30% (Track #106).</li>
  <li>Moved to Eclipse 3.6.x as development environment (Trac #115).</li>
  <li>All delivered bundles and JAR files are signed (Trac #118).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Better error message when multiple JaCoCo agents are specified 
      (Track #103).</li>
  <li>Fixed potential NPE at shutdown when running agent in
      <code>tcpserver</code> mode (Track #117).</li>
  <li>Agent now fails at startup when execution data file can't be opened
      (Track #121).</li>
</ul>

<h2>Release 0.4.0 (2010/06/04)</h2>

<h3>New Features</h3>
<ul>
  <li>Execution data now includes session information: an arbitrary identifier,
      the start time and dump time (Trac #88).</li>
  <li>Added session information to XML report (Trac #92).</li>
  <li>New "Sessions" page in the HTML report shows information about each
      sessions wherein execution data has been collected for the report
      (Trac #93). Additionally all classes with execution data available are
      listed on this page (Trac #94).</li>
  <li>The agent now supports remote dumps via TCP/IP connections (Trac #82).</li>
  <li>New Ant task <code>dump</code> to remotely collect coverage data from
      agents (Trac #100).</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li>Execution data file header is written and read in any case (Trac #72).</li>
  <li>Added <code>dumponexit</code> to agent options (Trac #82).</li>
  <li>Added <code>sessionid</code> to agent options (Trac #88).</li>
  <li>Added <code>output, address and port</code> to agent options (Trac #82).</li>
  <li>Additional and modified methods in <code>IRuntime</code> to produce
      session information (Trac #88).</li>
  <li>Coverage element type <code>SESSION</code> removed (Trac #95).</li>
  <li>Removed several internal APIs from package 
      <code>org.jacoco.core.instr</code> used for class instrumentation.</li>
  <li>Renamed class <code>org.jacoco.report.csv.CsvFormatter</code> to
      <code>CSVFormatter</code> (upper case) for consistency with other
      formatters.</li>
</ul>

<h2>Release 0.3.3 (2010/04/19)</h2>

<h3>New Features</h3>
<ul>
  <li>Support for different archives (jar, war, ear etc.) and nested archives
      (Trac #78).</li>
  <li>XML report with line level coverage information (requested for Sonar).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>Correct stackmap frames for Java 1.6 class files. (Track #81).</li>
  <li>Avoid usage of <code>LocalVariableSorter</code> due to ASM bug #314563
      (Track #69).</li>
  <li>Nested Java/JUnit Ant tasks not being executed when coverage task disabled. (Track #85).</li>
</ul>

<h2>Release 0.3.2 (2010/04/01)</h2>

<h3>New Features</h3>
<ul>
  <li>New HTML report option to directly create a zip file containing the report
      (Trac #12).</li>
  <li>Code coverage for static initializers in interfaces (Trac #21).</li>
  <li>Better error handling for <code>report</code> Ant task (Trac #71).</li>
  <li>Classes without instructions are excluded from reports (Trac #73).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>XML and CSV report output now also works for structures without groups
      (Track #76).</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li>Consistent usage of the term "Missed" instead of "NotCovered" in all APIs
      (Trac #72).</li>
  <li>To support "off-line" instrumentation scenarios it is not required any
      more to register instrumented classes with the runtime (Trac #74).</li>
</ul>

<h2>Release 0.3.1 (2010/02/09)</h2>

<h3>Fixed Bugs</h3>
<ul>
  <li>Ant tasks broken on Linux (Trac #68).</li>
</ul>

<h2>Release 0.3.0 (2010/02/02)</h2>

<h3>New Features</h3>
<ul>
  <li>Report renders anonymous classes with type information (Trac #46).</li>
  <li><code>enabled</code> property added to <code>agent</code> and
      <code>coverage</code> Ant tasks (Trac #63).</li>
  <li>Ant task <code>merge</code> added (Trac #52).</li>
</ul>

<h3>Fixed Bugs</h3>
<ul>
  <li>New <code>IRuntime</code> implementation enables JaCoCo usage for J2EE
  application servers like Glassfish.</li>
</ul>

<h3>API Changes</h3>
<ul>
  <li>Agent option and Ant task parameter <code>file</code> changed to
      <code>destfile</code> (Trac #59).</li>
  <li>Agent option and Ant task parameter <code>merge</code> changed to
      <code>append</code> (Trac #51).</li>
</ul>

<h2>Release 0.2.0 (2010/01/08)</h2>

<h3>New Features</h3>

<ul>
  <li>Simplified probe data structure reduces memory usage (Trac #47).</li>
  <li>Performance test becomes part of the build.</li>
  <li>New bundle <code>org.jacoco.agent</code> that provides the Java agent
      as a resource (Trac #50).</li>
</ul>

<h3>Fixed Bugs</h3>

<ul>
  <li><code>ArrayIndexOutOfBoundsException</code> due to inconsistent processing
      while instrumentation and analysis (Trac #44).</li>
</ul>


<h2>Release 0.1.0 (2009/10/28)</h2>

<p>
  The very first JaCoCo release.
</p>

</div>
<div class="footer">
  <span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span>
  <a href="license.html">Copyright</a> &copy; @copyright.years@ Mountainminds GmbH &amp; Co. KG and Contributors
</div>

</body>
</html>