<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at 01 Dec 2013
 | Rendered using Apache Maven Fluido Skin 1.3.0
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20131201" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Base :: Configuration - 
    Configuration</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />

      
    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>

    
            </head>
        <body class="topBarEnabled">
          
                        
                    
                

    <div id="topbar" class="navbar navbar-fixed-top ">
      <div class="navbar-inner">
                                  <div class="container"><div class="nav-collapse">
            
                
                                <ul class="nav">
                          <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
        <ul class="dropdown-menu">
        
                      <li class="dropdown-submenu">
                                      <a href="project-info.html"  title="Project Information">Project Information</a>
              <ul class="dropdown-menu">
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</a>
</li>
                              </ul>
            </li>
                          </ul>
      </li>
                  </ul>
          
                      <form id="search-form" action="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/2.0.0-SNAPSHOT" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=search-form"></script>
          
                                                    
        
        
        <ul class="nav pull-right"><li>
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="right" data-size="large" data-show-screen-name="true" data-lang="en">Follow archiva</a>
    <script type="text/javascript">!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>

        </li></ul>
                
                   
                      </div>
          
        </div>
      </div>
    </div>
    
        <div class="container">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../../../index.html" id="bannerLeft">
                                                                                                <img src="../../../../images/archiva.png"  alt="Apache Archiva"/>
                </a>
                      </div>
        <div class="pull-right">                  <a href="http://www.apache.org/" id="bannerRight">
                                                                                        <img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Software Foundation"/>
                </a>
      </div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
                
                    
                              <li class="">
                    <a href="http://www.apache.org/" class="externalLink" title="Apache">
        Apache</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../../" title="Apache Archiva">
        Apache Archiva</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../../" title="Archiva :: Modules">
        Archiva :: Modules</a>
        </li>
      <li class="divider ">/</li>
            <li class="">
                    <a href="../" title="Archiva :: Base">
        Archiva :: Base</a>
        </li>
      <li class="divider ">/</li>
                <li class="">
                    <a href="./" title="Archiva Base :: Configuration">
        Archiva Base :: Configuration</a>
        </li>
      <li class="divider ">/</li>
        <li class="">
    Configuration</li>
        
                
                    
                  <li id="publishDate" class="pull-right">Last Published: 01 Dec 2013</li> 
            
                            </ul>
      </div>

      
                
        <div id="bodyColumn" >
                                  
            <!-- =================== DO NOT EDIT THIS FILE ==================== --><!-- Generated by Modello 1.7, --><!-- any modifications will be overwritten. --><!-- ============================================================== -->
  
    <div class="section">
<h2>Configuration<a name="Configuration"></a></h2>
      
<p>
    Configuration format for Archiva (Maven Repository Manager).
  </p>
      
<div class="source">
<pre>
&lt;<a href="#class_configuration">configuration</a>&gt;
  &lt;version/&gt;
  &lt;repositories&gt;
    &lt;<a href="#class_repository">repository</a>&gt;
      &lt;url/&gt;
      &lt;indexed/&gt;
      &lt;location/&gt;
      &lt;releases/&gt;
      &lt;blockRedeployments/&gt;
      &lt;snapshots/&gt;
      &lt;scanned/&gt;
      &lt;refreshCronExpression/&gt;
      &lt;retentionCount/&gt;
      &lt;daysOlder/&gt;
      &lt;deleteReleasedSnapshots/&gt;
      &lt;skipPackedIndexCreation/&gt;
      &lt;stageRepoNeeded/&gt;
      &lt;id/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;description/&gt;
    &lt;/repository&gt;
  &lt;/repositories&gt;
  &lt;repositoryGroups&gt;
    &lt;<a href="#class_repositoryGroup">repositoryGroup</a>&gt;
      &lt;id/&gt;
      &lt;mergedIndexPath/&gt;
      &lt;mergedIndexTtl/&gt;
      &lt;repositories/&gt;
    &lt;/repositoryGroup&gt;
  &lt;/repositoryGroups&gt;
  &lt;managedRepositories&gt;
    &lt;<a href="#class_managedRepository">managedRepository</a>&gt;
      &lt;location/&gt;
      &lt;releases/&gt;
      &lt;blockRedeployments/&gt;
      &lt;snapshots/&gt;
      &lt;scanned/&gt;
      &lt;refreshCronExpression/&gt;
      &lt;retentionCount/&gt;
      &lt;daysOlder/&gt;
      &lt;deleteReleasedSnapshots/&gt;
      &lt;skipPackedIndexCreation/&gt;
      &lt;stageRepoNeeded/&gt;
      &lt;id/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;description/&gt;
    &lt;/managedRepository&gt;
  &lt;/managedRepositories&gt;
  &lt;remoteRepositories&gt;
    &lt;<a href="#class_remoteRepository">remoteRepository</a>&gt;
      &lt;url/&gt;
      &lt;username/&gt;
      &lt;password/&gt;
      &lt;timeout/&gt;
      &lt;refreshCronExpression/&gt;
      &lt;downloadRemoteIndex/&gt;
      &lt;remoteIndexUrl/&gt;
      &lt;remoteDownloadNetworkProxyId/&gt;
      &lt;remoteDownloadTimeout/&gt;
      &lt;downloadRemoteIndexOnStartup/&gt;
      &lt;extraParameters/&gt;
      &lt;extraHeaders/&gt;
      &lt;id/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;description/&gt;
    &lt;/remoteRepository&gt;
  &lt;/remoteRepositories&gt;
  &lt;proxyConnectors&gt;
    &lt;<a href="#class_proxyConnector">proxyConnector</a>&gt;
      &lt;order/&gt;
      &lt;sourceRepoId/&gt;
      &lt;targetRepoId/&gt;
      &lt;proxyId/&gt;
      &lt;blackListPatterns/&gt;
      &lt;whiteListPatterns/&gt;
      &lt;policies/&gt;
      &lt;properties/&gt;
      &lt;disabled/&gt;
    &lt;/proxyConnector&gt;
  &lt;/proxyConnectors&gt;
  &lt;networkProxies&gt;
    &lt;<a href="#class_networkProxy">networkProxy</a>&gt;
      &lt;id/&gt;
      &lt;protocol/&gt;
      &lt;host/&gt;
      &lt;port/&gt;
      &lt;username/&gt;
      &lt;password/&gt;
      &lt;useNtlm/&gt;
    &lt;/networkProxy&gt;
  &lt;/networkProxies&gt;
  &lt;legacyArtifactPaths&gt;
    &lt;<a href="#class_legacyArtifactPath">legacyArtifactPath</a>&gt;
      &lt;path/&gt;
      &lt;artifact/&gt;
    &lt;/legacyArtifactPath&gt;
  &lt;/legacyArtifactPaths&gt;
  &lt;<a href="#class_repositoryScanning">repositoryScanning</a>&gt;
    &lt;fileTypes&gt;
      &lt;<a href="#class_fileType">fileType</a>&gt;
        &lt;id/&gt;
        &lt;patterns/&gt;
      &lt;/fileType&gt;
    &lt;/fileTypes&gt;
    &lt;knownContentConsumers/&gt;
    &lt;invalidContentConsumers/&gt;
  &lt;/repositoryScanning&gt;
  &lt;<a href="#class_webapp">webapp</a>&gt;
    &lt;<a href="#class_ui">ui</a>&gt;
      &lt;showFindArtifacts/&gt;
      &lt;appletFindEnabled/&gt;
      &lt;disableEasterEggs/&gt;
      &lt;applicationUrl/&gt;
      &lt;disableRegistration/&gt;
    &lt;/ui&gt;
  &lt;/webapp&gt;
  &lt;<a href="#class_organisationInfo">organisationInfo</a>&gt;
    &lt;name/&gt;
    &lt;url/&gt;
    &lt;logoLocation/&gt;
  &lt;/organisationInfo&gt;
  &lt;<a href="#class_networkConfiguration">networkConfiguration</a>&gt;
    &lt;maxTotal/&gt;
    &lt;maxTotalPerHost/&gt;
    &lt;usePooling/&gt;
  &lt;/networkConfiguration&gt;
  &lt;<a href="#class_redbackRuntimeConfiguration">redbackRuntimeConfiguration</a>&gt;
    &lt;migratedFromRedbackConfiguration/&gt;
    &lt;userManagerImpls/&gt;
    &lt;rbacManagerImpls/&gt;
    &lt;<a href="#class_ldapConfiguration">ldapConfiguration</a>&gt;
      &lt;hostName/&gt;
      &lt;port/&gt;
      &lt;ssl/&gt;
      &lt;baseDn/&gt;
      &lt;baseGroupsDn/&gt;
      &lt;contextFactory/&gt;
      &lt;bindDn/&gt;
      &lt;password/&gt;
      &lt;authenticationMethod/&gt;
      &lt;bindAuthenticatorEnabled/&gt;
      &lt;writable/&gt;
      &lt;useRoleNameAsGroup/&gt;
      &lt;extraProperties/&gt;
    &lt;/ldapConfiguration&gt;
    &lt;ldapGroupMappings&gt;
      &lt;<a href="#class_ldapGroupMapping">ldapGroupMapping</a>&gt;
        &lt;group/&gt;
        &lt;roleNames/&gt;
      &lt;/ldapGroupMapping&gt;
    &lt;/ldapGroupMappings&gt;
    &lt;configurationProperties/&gt;
    &lt;useUsersCache/&gt;
    &lt;<a href="#class_usersCacheConfiguration">usersCacheConfiguration</a>&gt;
      &lt;timeToIdleSeconds/&gt;
      &lt;timeToLiveSeconds/&gt;
      &lt;maxElementsInMemory/&gt;
      &lt;maxElementsOnDisk/&gt;
    &lt;/usersCacheConfiguration&gt;
  &lt;/redbackRuntimeConfiguration&gt;
  &lt;<a href="#class_archivaRuntimeConfiguration">archivaRuntimeConfiguration</a>&gt;
    &lt;<a href="#class_urlFailureCacheConfiguration">urlFailureCacheConfiguration</a>&gt;
      &lt;timeToIdleSeconds/&gt;
      &lt;timeToLiveSeconds/&gt;
      &lt;maxElementsInMemory/&gt;
      &lt;maxElementsOnDisk/&gt;
    &lt;/urlFailureCacheConfiguration&gt;
  &lt;/archivaRuntimeConfiguration&gt;
  &lt;proxyConnectorRuleConfigurations&gt;
    &lt;<a href="#class_proxyConnectorRuleConfiguration">proxyConnectorRuleConfiguration</a>&gt;
      &lt;ruleType/&gt;
      &lt;pattern/&gt;
      &lt;proxyConnectors&gt;
        &lt;<a href="#class_proxyConnector">proxyConnector</a>&gt;
          &lt;order/&gt;
          &lt;sourceRepoId/&gt;
          &lt;targetRepoId/&gt;
          &lt;proxyId/&gt;
          &lt;blackListPatterns/&gt;
          &lt;whiteListPatterns/&gt;
          &lt;policies/&gt;
          &lt;properties/&gt;
          &lt;disabled/&gt;
        &lt;/proxyConnector&gt;
      &lt;/proxyConnectors&gt;
    &lt;/proxyConnectorRuleConfiguration&gt;
  &lt;/proxyConnectorRuleConfigurations&gt;
&lt;/configuration&gt;
</pre></div>
      <a name="class_configuration"></a>
      
<div class="section">
<h3>configuration<a name="configuration"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>version</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>This is the version of the configuration format.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>repositories/<a href="#class_repository">repository</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;V1RepositoryConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
 @deprecated use managedRepositories or remoteRepositories instead.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>repositoryGroups/<a href="#class_repositoryGroup">repositoryGroup</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;RepositoryGroupConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> The list of repository groups.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>managedRepositories/<a href="#class_managedRepository">managedRepository</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;ManagedRepositoryConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> The list of repositories that this archiva instance uses.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>remoteRepositories/<a href="#class_remoteRepository">remoteRepository</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;RemoteRepositoryConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> The list of repositories that this archiva can retrieve from or publish to.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>proxyConnectors/<a href="#class_proxyConnector">proxyConnector</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;ProxyConnectorConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> The list of proxy connectors for this archiva instance.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>networkProxies/<a href="#class_networkProxy">networkProxy</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;NetworkProxyConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of network proxies to use for outgoing requests.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>legacyArtifactPaths/<a href="#class_legacyArtifactPath">legacyArtifactPath</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;LegacyArtifactPath&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of custom legacy path to artifact.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>
                <a href="#class_repositoryScanning">repositoryScanning</a>
              </tt>
            </td>
            
<td>
              <tt>RepositoryScanningConfiguration</tt>
            </td>
            
<td>
            The repository scanning configuration.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_webapp">webapp</a>
              </tt>
            </td>
            
<td>
              <tt>WebappConfiguration</tt>
            </td>
            
<td>
            The webapp configuration.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>
                <a href="#class_organisationInfo">organisationInfo</a>
              </tt>
            </td>
            
<td>
              <tt>OrganisationInformation</tt>
            </td>
            
<td>
            The organisation info.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_networkConfiguration">networkConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>NetworkConfiguration</tt>
            </td>
            
<td>
            The NetworkConfiguration .
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>
                <a href="#class_redbackRuntimeConfiguration">redbackRuntimeConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>RedbackRuntimeConfiguration</tt>
            </td>
            
<td>The RedbackRuntimeConfiguration.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_archivaRuntimeConfiguration">archivaRuntimeConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>ArchivaRuntimeConfiguration</tt>
            </td>
            
<td>The ArchivaRuntimeConfiguration.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>proxyConnectorRuleConfigurations/<a href="#class_proxyConnectorRuleConfiguration">proxyConnectorRuleConfiguration</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;ProxyConnectorRuleConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of ProxyConnectorRuleConfigurations.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_repository"></a>
      
<div class="section">
<h3>repository<a name="repository"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>url</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The URL for this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>indexed</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>No description.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>location</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The file system location for this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>releases</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository contains release versioned artifacts.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>blockRedeployments</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if re-deployment of artifacts already in the repository will be blocked.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>snapshots</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository contains snapshot versioned artifacts.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>scanned</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository should be scanned and processed.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>refreshCronExpression</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            When to run the refresh task.
            Default is every hour
          <br /><b>Default value is</b>: <tt>0 0 * * * ?</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>retentionCount</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The total count of the artifact to be retained for each snapshot.
          <br /><b>Default value is</b>: <tt>2</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>daysOlder</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The number of days old which will be the basis for removing a snapshot.
          <br /><b>Default value is</b>: <tt>100</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>deleteReleasedSnapshots</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            True if the released snapshots are to be removed from the repo during repository purge.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>skipPackedIndexCreation</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            True to not generate packed index (note you won't be able to export your index.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>stageRepoNeeded</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            Need a staging repository
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The repository identifier.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>name</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The descriptive name of the repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>layout</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The layout of the repository. Valid values are &quot;default&quot; and &quot;legacy&quot;.
          <br /><b>Default value is</b>: <tt>default</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>indexDir</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The directory for the indexes of this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>description</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The description of this repository.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_repositoryGroup"></a>
      
<div class="section">
<h3>repositoryGroup<a name="repositoryGroup"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The id of the repository group.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>mergedIndexPath</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The path of the merged index.<br /><b>Default value is</b>: <tt>/.indexer</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>mergedIndexTtl</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>The time to live of the merged index of the repository group.<br /><b>Default value is</b>: <tt>30</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>repositories/repository*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> The list of repository ids under the group.</td>
          </tr>
        </table>
      </div>
      <a name="class_managedRepository"></a>
      
<div class="section">
<h3>managedRepository<a name="managedRepository"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>location</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The file system location for this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>releases</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository contains release versioned artifacts.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>blockRedeployments</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if re-deployment of artifacts already in the repository will be blocked.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>snapshots</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository contains snapshot versioned artifacts.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>scanned</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>True if this repository should be scanned and processed.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>refreshCronExpression</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            When to run the refresh task.
            Default is every hour
          <br /><b>Default value is</b>: <tt>0 0 * * * ?</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>retentionCount</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The total count of the artifact to be retained for each snapshot.
          <br /><b>Default value is</b>: <tt>2</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>daysOlder</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The number of days old which will be the basis for removing a snapshot.
          <br /><b>Default value is</b>: <tt>100</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>deleteReleasedSnapshots</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            True if the released snapshots are to be removed from the repo during repository purge.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>skipPackedIndexCreation</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            True to not generate packed index (note you won't be able to export your index.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>stageRepoNeeded</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            Need a staging repository
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The repository identifier.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>name</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The descriptive name of the repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>layout</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The layout of the repository. Valid values are &quot;default&quot; and &quot;legacy&quot;.
          <br /><b>Default value is</b>: <tt>default</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>indexDir</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The directory for the indexes of this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>description</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The description of this repository.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_remoteRepository"></a>
      
<div class="section">
<h3>remoteRepository<a name="remoteRepository"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>url</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The URL for this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>username</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The Username for this repository.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>password</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The Password for this repository.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>timeout</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            Timeout in seconds for connections to this repository
          <br /><b>Default value is</b>: <tt>60</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>refreshCronExpression</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            When to run the refresh task.
            Default is every sunday at 8H00.
          <br /><b>Default value is</b>: <tt>0 0 08 ? * SUN</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>downloadRemoteIndex</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            Activate download of remote index if remoteIndexUrl is set too.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>remoteIndexUrl</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            Remote Index Url : if not starting with http will be relative to the remote repository url.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>remoteDownloadNetworkProxyId</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            Id of the networkProxy to use when downloading remote index.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>remoteDownloadTimeout</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            Timeout in seconds for download remote index. Default is more long than artifact download.
          <br /><b>Default value is</b>: <tt>300</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>downloadRemoteIndexOnStartup</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            Schedule download of remote index when archiva start
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>extraParameters/extraParameter*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> Additionnal request parameters to add to url when requesting remote repositories.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>extraHeaders/extraHeader*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> Additionnal http headers to add to url when requesting remote repositories.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The repository identifier.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>name</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The descriptive name of the repository.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>layout</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The layout of the repository. Valid values are &quot;default&quot; and &quot;legacy&quot;.
          <br /><b>Default value is</b>: <tt>default</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>indexDir</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The directory for the indexes of this repository.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>description</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The description of this repository.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_proxyConnector"></a>
      
<div class="section">
<h3>proxyConnector<a name="proxyConnector"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>order</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The order of the proxy connectors. (0 means no order specified)
          <br /><b>Default value is</b>: <tt>0</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>sourceRepoId</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The Repository Source for this connector.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>targetRepoId</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The Repository Target for this connector.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>proxyId</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The network proxy ID to use for this connector.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>blackListPatterns/blackListPattern*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of blacklisted patterns for this connector.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>whiteListPatterns/whiteListPattern*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of whitelisted patterns for this connector.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>policies/policy*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> Policy configuration for the connector.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>properties/property*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> Configuration for the connector.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>disabled</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            If the the repository proxy connector is disabled or not
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_networkProxy"></a>
      
<div class="section">
<h3>networkProxy<a name="networkProxy"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The ID for this proxy.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>protocol</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The network protocol to use with this proxy: &quot;http&quot;, &quot;socks-4&quot;
          <br /><b>Default value is</b>: <tt>http</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>host</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The proxy host.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>port</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The proxy port.
          <br /><b>Default value is</b>: <tt>8080</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>username</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The proxy user.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>password</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The proxy password.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>useNtlm</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>
            Use ntlm authentification.
          <br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_legacyArtifactPath"></a>
      
<div class="section">
<h3>legacyArtifactPath<a name="legacyArtifactPath"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>path</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The legacy path.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>artifact</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The artifact reference, as &quot; [groupId] : [artifactId] : [version] : [classifier] : [type] &quot;.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_repositoryScanning"></a>
      
<div class="section">
<h3>repositoryScanning<a name="repositoryScanning"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>fileTypes/<a href="#class_fileType">fileType</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;FileType&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The FileTypes for the repository scanning configuration.
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>knownContentConsumers/knownContentConsumer*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of active consumers IDs for known content.
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>invalidContentConsumers/invalidContentConsumer*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> 
            The list of active consumer IDs for invalid content.
          </td>
          </tr>
        </table>
      </div>
      <a name="class_fileType"></a>
      
<div class="section">
<h3>fileType<a name="fileType"></a></h3>
        
<p>The FileType object</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>id</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>No description.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>patterns/pattern*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> No description.</td>
          </tr>
        </table>
      </div>
      <a name="class_webapp"></a>
      
<div class="section">
<h3>webapp<a name="webapp"></a></h3>
        
<p>
        The webapp configuration settings.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>
                <a href="#class_ui">ui</a>
              </tt>
            </td>
            
<td>
              <tt>UserInterfaceOptions</tt>
            </td>
            
<td>options for altering the ui presentation</td>
          </tr>
        </table>
      </div>
      <a name="class_ui"></a>
      
<div class="section">
<h3>ui<a name="ui"></a></h3>
        
<p>
        The user interface configuration settings.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>showFindArtifacts</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>true if find artifacts should be enabled<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>appletFindEnabled</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>true if applet behavior for find artifacts should be enabled<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>disableEasterEggs</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>No description.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>applicationUrl</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>No description.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>disableRegistration</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>No description.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_organisationInfo"></a>
      
<div class="section">
<h3>organisationInfo<a name="organisationInfo"></a></h3>
        
<p>
        The organisation information settings.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>name</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>name of the organisation</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>url</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>name of the organisation</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>logoLocation</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>name of the organisation</td>
          </tr>
        </table>
      </div>
      <a name="class_networkConfiguration"></a>
      
<div class="section">
<h3>networkConfiguration<a name="networkConfiguration"></a></h3>
        
<p>
        The network configuration for external http request to repositories.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>maxTotal</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>maximum total external http connections.<br /><b>Default value is</b>: <tt>30</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>maxTotalPerHost</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>maximum total external http connections per host<br /><b>Default value is</b>: <tt>30</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>usePooling</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>use or not http connection pooling default true<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_redbackRuntimeConfiguration"></a>
      
<div class="section">
<h3>redbackRuntimeConfiguration<a name="redbackRuntimeConfiguration"></a></h3>
        
<p>
        The runtime configuration.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>migratedFromRedbackConfiguration</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>flag to know if redback configuration has been checked/migrated.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>userManagerImpls/userManagerImpl*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> The user manager impls to use.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>rbacManagerImpls/rbacManagerImpl*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> The RBAC Manager impls to use.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_ldapConfiguration">ldapConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>LdapConfiguration</tt>
            </td>
            
<td>the ldap configuration</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>ldapGroupMappings/<a href="#class_ldapGroupMapping">ldapGroupMapping</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;LdapGroupMapping&gt;</tt>
            </td>
            
<td><b>(Many)</b> LdapGroupMappings</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>configurationProperties/configurationProperty*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> extra properties for redback configuration. String/String</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>useUsersCache</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>flag to know if redback will use a cache to prevent searching users already found.<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_usersCacheConfiguration">usersCacheConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>CacheConfiguration</tt>
            </td>
            
<td>the users cache configuration</td>
          </tr>
        </table>
      </div>
      <a name="class_ldapConfiguration"></a>
      
<div class="section">
<h3>ldapConfiguration<a name="ldapConfiguration"></a></h3>
        
<p>
        The LDAP configuration.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>hostName</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP host.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>port</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>The LDAP port.<br /><b>Default value is</b>: <tt>0</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>ssl</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>ssl LDAP connection.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>baseDn</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP base dn.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>baseGroupsDn</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP base dn for groups (if empty baseDn is used).</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>contextFactory</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>contextFactory to use.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>bindDn</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP bind dn.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>password</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP password.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>authenticationMethod</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The LDAP authenticationMethod.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>bindAuthenticatorEnabled</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>The LDAP authenticator enabled.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>writable</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>LDAP writable.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>useRoleNameAsGroup</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>Will use role name as LDAP group.<br /><b>Default value is</b>: <tt>false</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>extraProperties/extraProperty*</tt>
            </td>
            
<td>
              <tt>Map</tt>
            </td>
            
<td><b>(Many)</b> Additionnal properties to use for ldap connection.</td>
          </tr>
        </table>
      </div>
      <a name="class_ldapGroupMapping"></a>
      
<div class="section">
<h3>ldapGroupMapping<a name="ldapGroupMapping"></a></h3>
        
<p>configuration of a LDAP group to Archiva roles</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>group</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>LDAP Group</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>roleNames/roleName*</tt>
            </td>
            
<td>
              <tt>List&lt;String&gt;</tt>
            </td>
            
<td><b>(Many)</b> Archiva roles.</td>
          </tr>
        </table>
      </div>
      <a name="class_usersCacheConfiguration"></a>
      
<div class="section">
<h3>usersCacheConfiguration<a name="usersCacheConfiguration"></a></h3>
        
<p>Cache configuration.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>timeToIdleSeconds</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>TimeToIdleSeconds<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>timeToLiveSeconds</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>TimeToLiveSeconds<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>maxElementsInMemory</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>max elements in memory<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>maxElementsOnDisk</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>max elements on disk<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_archivaRuntimeConfiguration"></a>
      
<div class="section">
<h3>archivaRuntimeConfiguration<a name="archivaRuntimeConfiguration"></a></h3>
        
<p>
        The runtime configuration.
      </p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>
                <a href="#class_urlFailureCacheConfiguration">urlFailureCacheConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>CacheConfiguration</tt>
            </td>
            
<td>the url failure cache configuration</td>
          </tr>
        </table>
      </div>
      <a name="class_urlFailureCacheConfiguration"></a>
      
<div class="section">
<h3>urlFailureCacheConfiguration<a name="urlFailureCacheConfiguration"></a></h3>
        
<p>Cache configuration.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>timeToIdleSeconds</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>TimeToIdleSeconds<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>timeToLiveSeconds</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>TimeToLiveSeconds<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>maxElementsInMemory</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>max elements in memory<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>maxElementsOnDisk</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>max elements on disk<br /><b>Default value is</b>: <tt>-1</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_proxyConnectorRuleConfiguration"></a>
      
<div class="section">
<h3>proxyConnectorRuleConfiguration<a name="proxyConnectorRuleConfiguration"></a></h3>
        
<p>No description.</p>
        
<table border="0" class="table table-striped">
          
<tr class="a">
            
<th>Element</th>
            
<th>Type</th>
            
<th>Description</th>
          </tr>
          
<tr class="b">
            
<td>
              <tt>ruleType</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The type if this rule: whiteList, blackList etc..
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>pattern</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The pattern for this rule: whiteList, blackList etc..
          </td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>proxyConnectors/<a href="#class_proxyConnector">proxyConnector</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;ProxyConnectorConfiguration&gt;</tt>
            </td>
            
<td><b>(Many)</b> Associated proxyConnectors configuration.</td>
          </tr>
        </table>
      </div>
    </div>
  

                  </div>
          </div>

    <hr/>

    <footer>
            <div class="container">
              <div class="row span12">Copyright &copy;                    2006-2013
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All Rights Reserved.      
                    
      </div>

        
                <p id="poweredBy" class="pull-right">
                          <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
              </p>
        
          
    
    
                
    <div id="ohloh" class="pull-right">
      <script type="text/javascript" src="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
  </body>
</html>