Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 1 | <?xml version="1.0" encoding="ISO-8859-1" ?>
|
| 2 | <!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>
|
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
| 6 | <link rel="stylesheet" href=".resources/doc.css" charset="ISO-8859-1" type="text/css" />
|
Marc R. Hoffmann | d7d2f75 | 2010-05-06 21:12:31 +0000 | [diff] [blame] | 7 | <link rel="shortcut icon" href=".resources/report.gif" type="image/gif" />
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 8 | <title>JaCoCo - Mission</title>
|
| 9 | </head>
|
| 10 | <body>
|
| 11 |
|
| 12 | <div class="breadcrumb">
|
Marc R. Hoffmann | d7d2f75 | 2010-05-06 21:12:31 +0000 | [diff] [blame] | 13 | <a href="../index.html" class="el_report">JaCoCo</a> >
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 14 | <a href="index.html" class="el_group">Documentation</a> >
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 15 | <span class="el_source">Mission</span>
|
| 16 | </div>
|
Marc R. Hoffmann | 17be269 | 2010-02-02 05:44:47 +0000 | [diff] [blame] | 17 | <div id="content">
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 18 |
|
| 19 | <h1>Mission</h1>
|
| 20 |
|
| 21 | <p class="intro">
|
| 22 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 23 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 24 | and well documented library for integration with various build and development
|
| 25 | tools.
|
| 26 | </p>
|
| 27 |
|
| 28 | <p>
|
Radek Liba | ad5fbc9 | 2009-10-26 13:26:53 +0000 | [diff] [blame] | 29 | There are several open source coverage technologies for Java available. While
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 30 | implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a>
|
| 31 | the observation was that none of them are really designed for integration.
|
Radek Liba | ad5fbc9 | 2009-10-26 13:26:53 +0000 | [diff] [blame] | 32 | Most of them are specifically fit to a particular tool (Ant tasks, command line, IDE
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 33 | plug-in) and do not offer a documented API that allows embedding in different
|
| 34 | contexts. One of the best and widely used available open source tools is
|
| 35 | <a href="http://emma.sourceforge.net/">EMMA</a>. While EclEmma is based on it
|
| 36 | the EMMA library is not actively maintained any more by the original author.
|
| 37 | Due to the lack of regression tests maintenance and feature additions will
|
| 38 | become very difficult.
|
| 39 | </p>
|
| 40 |
|
| 41 | <p>
|
| 42 | JaCoCo should become the standard tool for instrumentation based code coverage
|
| 43 | in Java VM based environments. The focus is providing a lightweight, flexible
|
| 44 | and well documented library for integration with various build and development
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 45 | tools. <a href="ant.html">Ant tasks</a> are provided as reference usage
|
| 46 | scenarios. Other tools like a ready to use
|
| 47 | <a href="http://www.eclipse.org/">Eclipse</a> plug-in (future version of
|
| 48 | <a href="http://www.eclemma.org/">EclEmma</a>) or a
|
Marc R. Hoffmann | 45ff60e | 2009-10-09 09:28:30 +0000 | [diff] [blame] | 49 | <a href="http://maven.apache.org/">Maven</a> plug-in might follow.
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 50 | </p>
|
| 51 |
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 52 | <h2>Product Definition</h2>
|
| 53 |
|
| 54 | <h3>Features</h3>
|
| 55 | <ul>
|
| 56 | <li><i>Statement coverage</i> on Java byte code level, where instrumentation
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 57 | and recording happens on
|
| 58 | <a class="extern" href="http://en.wikipedia.org/wiki/Basic_block"><i>basic block</i></a>
|
| 59 | granularity. This is the same mechanism implemented by the
|
| 60 | <a class="extern" href="http://emma.sourceforge.net/">EMMA</a> library.</li>
|
| 61 | <li>Simple integration through <a href="agent.html">Java agent</a> based
|
| 62 | on-the-fly instrumentation. Other integration scenarios like custom class
|
| 63 | loaders are possible through the API.</li>
|
Marc R. Hoffmann | 0e115f8 | 2010-02-02 05:27:59 +0000 | [diff] [blame] | 64 | <li>Framework agnostic: Smoothly integrates with Java VM based applications
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 65 | like plain Java programs, OSGi frameworks, web containers or EJB servers.</li>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 66 | <li>Support for different
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 67 | <a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM languages</a>.</li>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 68 | <li>Several report formats (HTML, XML, CSV).</li>
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 69 | <li>Remote protocol to request execution data dumps from the coverage agent at
|
| 70 | any point in time.</li>
|
| 71 | <li>Several <a href="ant.html">Ant task</a> to collect and manage execution
|
| 72 | data and create structured coverage reports.</li>
|
Marc R. Hoffmann | 4748bbd | 2010-04-13 19:57:57 +0000 | [diff] [blame] | 73 | <li>Planned: Branch coverage based on basic block flow.</li>
|
| 74 | <li>Planned: Better reporting of Exception within blocks.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 75 | </ul>
|
| 76 |
|
| 77 | <h3>Non-Functional Characteristics</h3>
|
| 78 | <ul>
|
Marc R. Hoffmann | 3e8cb14 | 2009-10-20 19:24:18 +0000 | [diff] [blame] | 79 | <li>Simple usage and integration with existing build scripts and tools.</li>
|
| 80 | <li>Good performance with minimal runtime overhead especially for large scale
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 81 | projects.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 82 | <li>Lightweight implementation with minimal dependencies on external libraries
|
Marc R. Hoffmann | 7c77516 | 2010-05-27 16:43:34 +0000 | [diff] [blame^] | 83 | and system resources.</li>
|
| 84 | <li>Fully documented API (<a href="api/index.html">JavaDoc</a>) including
|
| 85 | descriptions of the basic concepts.</li>
|
| 86 | <li>Regression <a href="../test/index.html">tests</a> with full functional
|
| 87 | test <a href="../coverage/index.html">coverage</a> based on
|
| 88 | <a href="http://junit.org/">JUnit</a> test cases.</li>
|
Marc R. Hoffmann | b0b08c9 | 2009-08-11 17:36:49 +0000 | [diff] [blame] | 89 | </ul>
|
| 90 |
|
Marc R. Hoffmann | 17be269 | 2010-02-02 05:44:47 +0000 | [diff] [blame] | 91 | </div>
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 92 | <div class="footer">
|
Marc R. Hoffmann | b623ffb | 2010-05-06 19:48:08 +0000 | [diff] [blame] | 93 | <span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span>
|
Marc R. Hoffmann | df6ff96 | 2010-04-09 15:31:22 +0000 | [diff] [blame] | 94 | <a href="license.html">Copyright</a> © @copyright.years@ Mountainminds GmbH & Co. KG and Contributors
|
Marc R. Hoffmann | 1588849 | 2009-07-30 11:46:53 +0000 | [diff] [blame] | 95 | </div>
|
| 96 |
|
| 97 | </body>
|
| 98 | </html> |