1*7e63c127SSorin Basca<?xml version="1.0" encoding="UTF-8" ?> 2*7e63c127SSorin Basca<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3*7e63c127SSorin Basca<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> 4*7e63c127SSorin Basca<head> 5*7e63c127SSorin Basca <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6*7e63c127SSorin Basca <link rel="stylesheet" href="resources/doc.css" charset="UTF-8" type="text/css" /> 7*7e63c127SSorin Basca <link rel="shortcut icon" href="resources/report.gif" type="image/gif" /> 8*7e63c127SSorin Basca <title>JaCoCo - Mission</title> 9*7e63c127SSorin Basca</head> 10*7e63c127SSorin Basca<body> 11*7e63c127SSorin Basca 12*7e63c127SSorin Basca<div class="breadcrumb"> 13*7e63c127SSorin Basca <a href="../index.html" class="el_report">JaCoCo</a> > 14*7e63c127SSorin Basca <a href="index.html" class="el_group">Documentation</a> > 15*7e63c127SSorin Basca <span class="el_source">Mission</span> 16*7e63c127SSorin Basca</div> 17*7e63c127SSorin Basca<div id="content"> 18*7e63c127SSorin Basca 19*7e63c127SSorin Basca<h1>Mission</h1> 20*7e63c127SSorin Basca 21*7e63c127SSorin Basca<p class="intro"> 22*7e63c127SSorin Basca JaCoCo should provide the standard technology for code coverage analysis in 23*7e63c127SSorin Basca Java VM based environments. The focus is providing a lightweight, flexible and 24*7e63c127SSorin Basca well documented library for integration with various build and development 25*7e63c127SSorin Basca tools. 26*7e63c127SSorin Basca</p> 27*7e63c127SSorin Basca 28*7e63c127SSorin Basca<p> 29*7e63c127SSorin Basca There are several open source coverage technologies for Java available. While 30*7e63c127SSorin Basca implementing the Eclipse plug-in <a href="http://www.eclemma.org/">EclEmma</a> 31*7e63c127SSorin Basca the observation was that none of them are really designed for integration. 32*7e63c127SSorin Basca Most of them are specifically fit to a particular tool (Ant tasks, command 33*7e63c127SSorin Basca line, IDE plug-in) and do not offer a documented API that allows embedding in 34*7e63c127SSorin Basca different contexts. Two of the best and widely used available open source 35*7e63c127SSorin Basca tools are <a href="http://emma.sourceforge.net/">EMMA</a> and 36*7e63c127SSorin Basca <a href="http://cobertura.sourceforge.net/">Cobertura</a>. Both tools are not 37*7e63c127SSorin Basca actively maintained by the original authors any more and do not support the 38*7e63c127SSorin Basca current Java versions. Due to the lack of regression tests maintenance and 39*7e63c127SSorin Basca feature additions is difficult. 40*7e63c127SSorin Basca</p> 41*7e63c127SSorin Basca 42*7e63c127SSorin Basca<p> 43*7e63c127SSorin Basca Therefore we started the JaCoCo project to provide a new standard technology 44*7e63c127SSorin Basca for code coverage analysis in Java VM based environments. The focus is 45*7e63c127SSorin Basca providing a lightweight, flexible and well documented library for integration 46*7e63c127SSorin Basca with various build and development tools. <a href="ant.html">Ant tasks</a>, a 47*7e63c127SSorin Basca <a href="maven.html">Maven plug-in</a> and the 48*7e63c127SSorin Basca <a href="http://www.eclemma.org/">EclEmma Eclipse plug-in</a> are provided as 49*7e63c127SSorin Basca reference usage scenarios. Also many other tool vendors and Open Source 50*7e63c127SSorin Basca projects have <a href="integrations.html">integrated</a> JaCoCo into their 51*7e63c127SSorin Basca tools. 52*7e63c127SSorin Basca</p> 53*7e63c127SSorin Basca 54*7e63c127SSorin Basca<h2>Product Definition</h2> 55*7e63c127SSorin Basca 56*7e63c127SSorin Basca<h3>Features</h3> 57*7e63c127SSorin Basca<ul> 58*7e63c127SSorin Basca <li>Coverage <a href="counters.html">analysis</a> of instructions (C0), 59*7e63c127SSorin Basca branches (C1), lines, methods, types and cyclomatic complexity.</li> 60*7e63c127SSorin Basca <li>Based on Java byte code and therefore works also without source files.</li> 61*7e63c127SSorin Basca <li>Simple integration through <a href="agent.html">Java agent</a> based 62*7e63c127SSorin Basca on-the-fly instrumentation. Other integration scenarios like custom class 63*7e63c127SSorin Basca loaders are possible through the API.</li> 64*7e63c127SSorin Basca <li>Framework agnostic: Smoothly integrates with Java VM based applications 65*7e63c127SSorin Basca like plain Java programs, OSGi frameworks, web containers or EJB servers.</li> 66*7e63c127SSorin Basca <li>Compatible with all released Java class file versions.</li> 67*7e63c127SSorin Basca <li>Support for different 68*7e63c127SSorin Basca <a href="http://en.wikipedia.org/wiki/List_of_JVM_languages">JVM languages</a>.</li> 69*7e63c127SSorin Basca <li>Several report formats (HTML, XML, CSV).</li> 70*7e63c127SSorin Basca <li>Remote protocol and JMX control to request execution data dumps from the 71*7e63c127SSorin Basca coverage agent at any point in time.</li> 72*7e63c127SSorin Basca <li><a href="ant.html">Ant tasks</a> to collect and manage execution 73*7e63c127SSorin Basca data and create structured coverage reports.</li> 74*7e63c127SSorin Basca <li><a href="maven.html">Maven plug-in</a> to collect coverage information 75*7e63c127SSorin Basca and create reports in Maven builds.</li> 76*7e63c127SSorin Basca</ul> 77*7e63c127SSorin Basca 78*7e63c127SSorin Basca<h3>Non-Functional Characteristics</h3> 79*7e63c127SSorin Basca<ul> 80*7e63c127SSorin Basca <li>Simple usage and integration with existing build scripts and tools.</li> 81*7e63c127SSorin Basca <li>Good performance with minimal runtime overhead especially for large scale 82*7e63c127SSorin Basca projects.</li> 83*7e63c127SSorin Basca <li>Lightweight implementation with minimal dependencies on external libraries 84*7e63c127SSorin Basca and system resources.</li> 85*7e63c127SSorin Basca <li>Comprehensive documentation.</li> 86*7e63c127SSorin Basca <li>Fully documented APIs (<a href="api/index.html">JavaDoc</a>) and 87*7e63c127SSorin Basca <a href="api.html">examples</a> for <a href="integrations.html">integration</a> 88*7e63c127SSorin Basca with other tools.</li> 89*7e63c127SSorin Basca <li>Regression <a href="../test/index.html">tests</a> with full functional 90*7e63c127SSorin Basca test <a href="../coverage/index.html">coverage</a> based on 91*7e63c127SSorin Basca <a href="http://junit.org/">JUnit</a> test cases.</li> 92*7e63c127SSorin Basca</ul> 93*7e63c127SSorin Basca 94*7e63c127SSorin Basca</div> 95*7e63c127SSorin Basca<div class="footer"> 96*7e63c127SSorin Basca <span class="right"><a href="${jacoco.home.url}">JaCoCo</a> ${qualified.bundle.version}</span> 97*7e63c127SSorin Basca <a href="license.html">Copyright</a> © ${copyright.years} Mountainminds GmbH & Co. KG and Contributors 98*7e63c127SSorin Basca</div> 99*7e63c127SSorin Basca 100*7e63c127SSorin Basca</body> 101*7e63c127SSorin Basca</html> 102