<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia at May 31, 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="20130531" />
    <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="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="dependency-info.html"  title="Dependency Information">Dependency Information</a>
</li>
                                  <li>      <a href="dependency-management.html"  title="Dependency Management">Dependency Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="dependency-convergence.html"  title="Dependency Convergence">Dependency Convergence</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</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="project-summary.html"  title="Project Summary">Project Summary</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</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/1.4-M4" 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: 31 May 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 class="prettyprint">
&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>