<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">










<html>
  <head>
    <title>Archiva Documentation - Understanding Consumers in Apache Archiva</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="author" content="Maria Odea Ching" />
        <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="http://archiva.apache.org/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="../index.html">1.3.6</a>
                </div>
            <div class="xright">      
  

  
    
  
  
            &nbsp;| Last Published: 07 Jan 2013
            </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
           
  

  
    
  
  
                   <h5>Introduction</h5>
        <ul>
              
    <li class="none">
              <a href="../quick-start.html">Quick Start</a>
        </li>
              
    <li class="none">
              <a href="../tour/index.html">Feature Tour</a>
        </li>
              
    <li class="none">
              <a href="../release-notes.html">Release Notes</a>
        </li>
              
    <li class="none">
              <a href="http://archiva.apache.org/download.html">Downloads</a>
        </li>
          </ul>
          <h5>Users Guide</h5>
        <ul>
              
    <li class="none">
              <a href="../userguide/browsing.html">Browsing</a>
        </li>
              
    <li class="none">
              <a href="../userguide/searching.html">Searching</a>
        </li>
              
    <li class="none">
              <a href="../userguide/find-artifact.html">Identifying an Artifact</a>
        </li>
              
    <li class="none">
              <a href="../userguide/delete-artifact.html">Deleting an Artifact</a>
        </li>
              
    <li class="none">
              <a href="../userguide/using-repository.html">Using as a repository</a>
        </li>
              
    <li class="none">
              <a href="../userguide/deploy.html">Deploying to repository</a>
        </li>
              
    <li class="none">
              <a href="../userguide/virtual-repositories.html">Configuring Virtual Repositories</a>
        </li>
              
    <li class="none">
              <a href="../userguide/rss.html">Rss Feeds in Archiva</a>
        </li>
              
    <li class="none">
              <a href="../userguide/auditlog-report.html">Audit Log Report</a>
        </li>
          </ul>
          <h5>Administrators Guide</h5>
        <ul>
              
                
              
      
            
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/installing.html">Installing Archiva</a>
              </li>
              
    <li class="none">
              <a href="../adminguide/databases.html">Databases</a>
        </li>
              
                
              
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/security.html">Security</a>
              </li>
              
                
              
      
            
      
            
      
            
      
            
            
              
            <li class="expanded">
              <a href="../adminguide/configuration.html">Runtime Configuration</a>
                <ul>
                  
    <li class="none">
              <a href="../adminguide/repositories.html">Repositories</a>
        </li>
                  
    <li class="none">
              <a href="../adminguide/proxy-connectors.html">Proxy Connectors</a>
        </li>
                  
    <li class="none">
              <a href="../adminguide/network-proxies.html">Network Proxies</a>
        </li>
                  
    <li class="none">
              <a href="../adminguide/legacy.html">Legacy (Maven 1) Support</a>
        </li>
                  
    <li class="none">
              <strong>Consumers</strong>
        </li>
              </ul>
        </li>
              
    <li class="none">
              <a href="../adminguide/configuration-files.html">Configuration Files</a>
        </li>
              
                
              
      
            
      
            
      
              
        <li class="collapsed">
              <a href="../adminguide/logging.html">Log Files</a>
              </li>
              
    <li class="none">
              <a href="../adminguide/reports.html">Reports</a>
        </li>
              
    <li class="none">
              <a href="../adminguide/web-services.html">Web Services</a>
        </li>
          </ul>
          <h5>Customising Archiva</h5>
        <ul>
              
    <li class="none">
              <a href="../customising/writing-consumer.html">Writing a Consumer Plugin</a>
        </li>
          </ul>
          <h5>More Information</h5>
        <ul>
              
    <li class="none">
              <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index">Archiva Wiki</a>
        </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>Understanding Consumers in Apache Archiva</h2><p>Archiva makes use of the concept of consumers. Consumers are components which consumes or processes an artifact. There are 2 types of consumers in Archiva: repository content consumers and database consumers. </p><div class="section"><h3>Repository Content Consumers</h3><p>The repository content consumers consume or process artifacts during repository scanning. For every artifact found in the repository, each consumer processes them. There are 8 available repository content consumers which can be configured in the Repository Scanning page. These are:</p><ul><li><i>auto-remove</i> - Removes files in the repository being scanned if the file type matches any of the configured file types to be removed. </li><li><i>auto-rename</i> - Automatically renames common artifact mistakes. </li><li><i>create-missing-checksums</i> - Creates the md5 and sha1 checksum files of the artifact if there are none available in the repository. </li><li><i>index-content</i> - Adds the content of the artifact (specifically the pom) to the index, allowing the artifact to be searched in Archiva.</li><li><i>metadata-updater</i> - Updates artifact metadata files depending on the content of the repository. </li><li><i>repository-purge</i> - Removes old snapshots from the repository either by the number of days old or by the retention count.</li><li><i>update-db-artifact</i> - Adds the artifact (in the form of ArchivaArtifact) to the database.</li><li><i>validate-checksums</i> - Validates the checksum files of the artifact. </li></ul></div><div class="section"><h3>Database Consumers</h3><p>The database consumers, on the other hand, consume or process artifacts during database scanning. The database consumers are split up into two types: the unprocessed artifacts consumers and the artifact cleanup consumers.</p><ol type="1"><li>Unprocessed Artifacts Consumers<p>These are consumers for those artifacts already in the index that haven't been processed yet, meaning the details about the artifact are not yet processed and stored in the database. There are 6 unprocessed artifact consumers which can be configured in the Database page:</p><ul><li><i>validate-repository-metadata</i> - Verifies repository metadata files against database. </li><li><i>index-archive-toc</i> - Indexes the archiva table of contents for full text search. </li><li><i>index-artifact</i> - Indexes the artifact for the 'Find Artifact' functionality. </li><li><i>update-db-project</i> - Gets the details of the artifact from the pom and saves it into the database (as a project model) </li><li><i>index-public-methods</i> - Indexes the java public methods for full text search. This has been removed since 1.2. Public methods are indexed by the <tt>index-content</tt> consumer.</li><li><i>update-db-bytecode-stats</i> - Updates database with java bytecode stats. </li></ul></li></ol><ol type="1"><li>Artifact Cleanup Consumers <p>These are the consumers for cleaning up the database. There are 3 which can be configured in the Database page, and these are:</p><ul><li><i>not-present-remove-db-artifact</i> - Removes the artifact from the database if the artifact no longer exists in the file system. </li><li><i>not-present-remove-indexed</i> - Removes the artifact from the index if the artifact no longer exists in the file system. </li><li><i>not-present-remove-db-project</i> - Removes the project model of the artifact from the database if the artifact itself no longer exists in the file system.</li></ul></li></ol></div></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">&#169;  
          2006-2013
    
          The Apache Software Foundation
          
  

  
    
  
  
  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>