<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>Archiva Base :: Indexer - Developer Activity Report</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 http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
                            <?xml version="1.0" encoding="UTF-8"?>
<script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script>
                                <?xml version="1.0" encoding="UTF-8"?>
<script type="text/javascript">var pageTracker = _gat._getTracker("UA-140879-5");
pageTracker._initData();
pageTracker._trackPageview();</script>
                    </head>
  <body class="composite">
    <div id="banner">
                  <a href="../../../" id="bannerLeft">
    
                                            <img src="../../../images/archiva.png" alt="" />
    
            </a>
                        <a href="http://www.apache.org/" id="bannerRight">
    
                                    <img src="http://www.apache.org/images/asf_logo_wide.png" alt="" />
    
            </a>
            <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
          
  

  
    
  
  
            <div class="xleft">
          
          <a href="http://www.apache.org/">Apache</a>
              &gt;
      
          <a href="../../../">Archiva</a>
              &gt;
      
          <a href="../../">Archiva :: Modules</a>
              &gt;
      
          Archiva Base :: Indexer
                </div>
            <div class="xright">      
  

  
    
  
  
            &nbsp;| Last Published: 27 May 2011
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>Design Documentation</h5>
        <ul>
              
    <li class="none">
              <a href="design.html">Indexing Design</a>
        </li>
          </ul>
          <h5>Project Documentation</h5>
        <ul>
              
                
              
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
            
      
              
        <li class="collapsed">
              <a href="project-info.html">Project Information</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
      
            
            
            
      
            
      
            
      
            
      
              
            <li class="expanded">
              <a href="project-reports.html">Project Reports</a>
                <ul>
                  
    <li class="none">
              <a href="changelog.html">changelog</a>
        </li>
                  
    <li class="none">
              <a href="checkstyle.html">Checkstyle</a>
        </li>
                  
    <li class="none">
              <a href="clirr-report.html">Clirr</a>
        </li>
                  
    <li class="none">
              <a href="cobertura/index.html">Cobertura Test Coverage</a>
        </li>
                  
    <li class="none">
              <a href="cpd.html">CPD Report</a>
        </li>
                  
    <li class="none">
              <strong>dev-activity</strong>
        </li>
                  
    <li class="none">
              <a href="file-activity.html">file-activity</a>
        </li>
                  
    <li class="none">
              <a href="surefire-report.html">Maven Surefire Report</a>
        </li>
                  
    <li class="none">
              <a href="pmd.html">PMD Report</a>
        </li>
                  
    <li class="none">
              <a href="taglist.html">Tag List</a>
        </li>
              </ul>
        </li>
          </ul>
                                       <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
          </a>
                       
  

  
    
  
  
        </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <div class="section"><h2>Developer Activity Report</h2><div class="section"><h3> 2011-04-27 to 2011-05-28</h3><p>Range: 2011-04-27 to 2011-05-28, Total commits:0, Total Number of Files Changed:0</p><table class="bodyTable"><tr class="a"><th>Developer</th><th>Total commits</th><th>Total Number of Files Changed</th></tr></table></div></div></table>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2006-2011
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
