<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Apr 3, 2012 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>OpenCMIS Client Bindings Implementation - Generated Reports</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20120403" />
    <meta http-equiv="Content-Language" content="en" />
        
  </head>
  <body class="composite">
    <div id="banner">
                  <a href="../.." id="bannerLeft">
                                                <img src="../../images/chemistry-logo.png" alt="Apache Chemistry OpenCMIS" />
                </a>
                        <a href="http://www.apache.org/" id="bannerRight">
                                                <img src="../../images/apache-logo.gif" alt="The Apache Software Foundation" />
                </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
                
                <div class="xleft">
        <span id="publishDate">Last Published: 2012-04-03</span>
                      </div>
            <div class="xright">        
                
                 <span id="projectVersion">Version: 0.7.0</span>
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
                
                                <h5>Parent Project</h5>
                  <ul>
                  <li class="none">
                          <a href="../../index.html" title="Apache Chemistry OpenCMIS">Apache Chemistry OpenCMIS</a>
            </li>
          </ul>
                       <h5>Project Documentation</h5>
                  <ul>
                                                                                                                                                                                                                                      <li class="collapsed">
                          <a href="project-info.html" title="Project Information">Project Information</a>
                  </li>
                                                                                                            <li class="expanded">
            <strong>Project Reports</strong>
                  <ul>
                      <li class="none">
                          <a href="xref/index.html" title="Source Xref">Source Xref</a>
            </li>
                      <li class="none">
                          <a href="surefire-report.html" title="Surefire Report">Surefire Report</a>
            </li>
                      <li class="none">
                          <a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a>
            </li>
              </ul>
        </li>
          </ul>
                       <h5>Chemistry</h5>
                  <ul>
                  <li class="none">
                          <a href="http://chemistry.apache.org" class="externalLink" title="Main Website">Main Website</a>
            </li>
          </ul>
                                                                                                                   <a href="http://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="http://maven.apache.org/images/logos/maven-feather.png"    />
      </a>
                       
                
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>Generated Reports<a name="Generated_Reports"></a></h2><p>This document provides an overview of the various reports that are automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> . Each report is briefly described below.</p><div class="section"><h3>Overview<a name="Overview"></a></h3><table border="0" class="bodyTable"><tr class="a"><th>Document</th><th>Description</th></tr><tr class="b"><td><a href="xref/index.html">Source Xref</a></td><td>HTML based, cross-reference version of Java source code.</td></tr><tr class="a"><td><a href="surefire-report.html">Surefire Report</a></td><td>Report on the test results of the project.</td></tr><tr class="b"><td><a href="xref-test/index.html">Test Source Xref</a></td><td>HTML based, cross-reference version of Java test source code.</td></tr></table></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">Copyright &#169;                    2009-2012
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
