<?xml version="1.0" encoding="ISO-8859-1" ?> | |
<!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=ISO-8859-1" /> | |
<link rel="stylesheet" href=".resources/doc.css" charset="ISO-8859-1" type="text/css" /> | |
<link rel="shortcut icon" href=".resources/report.gif" type="image/gif" /> | |
<title>JaCoCo - Mission</title> | |
</head> | |
<body> | |
<div class="breadcrumb"> | |
<a href="../index.html" class="el_report">JaCoCo</a> > | |
<a href="index.html" class="el_group">Documentation</a> > | |
<span class="el_source">Mission</span> | |
</div> | |
<div id="content"> | |
<h1>Mission</h1> | |
<p class="intro"> | |
JaCoCo should become the standard backend technology for code coverage | |
analysis in Java VM based environments. The focus is providing a lightweight, | |
flexible and well documented library for integration with various build and | |
development tools. | |
</p> | |
<p> | |
There are several open source coverage technologies for Java available. While | |
implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a> | |
the observation was that none of them are really designed for integration. | |
Most of them are specifically fit to a particular tool (Ant tasks, command line, IDE | |
plug-in) and do not offer a documented API that allows embedding in different | |
contexts. One of the best and widely used available open source tools is | |
<a href="http://emma.sourceforge.net/">EMMA</a>. While EclEmma is based on it | |
the EMMA library is not actively maintained any more by the original author. | |
Due to the lack of regression tests maintenance and feature additions will | |
become very difficult. | |
</p> | |
<p> | |
JaCoCo should become the standard backend technology for code coverage | |
analysis in Java VM based environments. The focus is providing a lightweight, | |
flexible and well documented library for integration with various build and | |
development tools. <a href="ant.html">Ant tasks</a> and a | |
<a href="maven.html">Maven plug-in</a> are provided as reference usage | |
scenarios. Other tools like a ready to use | |
<a href="http://www.eclipse.org/">Eclipse</a> plug-in (future version of | |
<a href="http://www.eclemma.org/">EclEmma</a>) might follow. | |
</p> | |
<h2>Product Definition</h2> | |
<h3>Features</h3> | |
<ul> | |
<li>Statement (C0) and branch (C1) coverage analysis.</li> | |
<li>Based on Java byte code and therefore works also without source files.</li> | |
<li>Simple integration through <a href="agent.html">Java agent</a> based | |
on-the-fly instrumentation. Other integration scenarios like custom class | |
loaders are possible through the API.</li> | |
<li>Framework agnostic: Smoothly integrates with Java VM based applications | |
like plain Java programs, OSGi frameworks, web containers or EJB servers.</li> | |
<li>Support for different | |
<a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM languages</a>.</li> | |
<li>Several report formats (HTML, XML, CSV).</li> | |
<li>Remote protocol to request execution data dumps from the coverage agent at | |
any point in time.</li> | |
<li>Several <a href="ant.html">Ant task</a> to collect and manage execution | |
data and create structured coverage reports.</li> | |
<li>Planned: Better reporting of Exception within blocks.</li> | |
</ul> | |
<h3>Non-Functional Characteristics</h3> | |
<ul> | |
<li>Simple usage and integration with existing build scripts and tools.</li> | |
<li>Good performance with minimal runtime overhead especially for large scale | |
projects.</li> | |
<li>Lightweight implementation with minimal dependencies on external libraries | |
and system resources.</li> | |
<li>Fully documented API (<a href="api/index.html">JavaDoc</a>) including | |
descriptions of the basic concepts.</li> | |
<li>Regression <a href="../test/index.html">tests</a> with full functional | |
test <a href="../coverage/index.html">coverage</a> based on | |
<a href="http://junit.org/">JUnit</a> test cases.</li> | |
</ul> | |
</div> | |
<div class="footer"> | |
<span class="right"><a href="@jacoco.home.url@">JaCoCo</a> @qualified.bundle.version@</span> | |
<a href="license.html">Copyright</a> © @copyright.years@ Mountainminds GmbH & Co. KG and Contributors | |
</div> | |
</body> | |
</html> |