<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.8.1 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<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 http-equiv="Content-Language" content="en" />
    <title>Archiva Base :: Configuration &#x2013; Configuration</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.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.6.min.js"></script>
      <!-- Google Analytics -->
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-140879-5']);
      _gaq.push(['_trackPageview']);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </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>
              </ul>
            </li>
            <li class="dropdown-submenu">
<a href="project-reports.html" title="Project Reports">Project Reports</a>
              <ul class="dropdown-menu">
                  <li><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
                  <li><a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a></li>
              </ul>
            </li>
        </ul>
      </li>
              </ul>
<form id="search-form" action="https://www.google.com/search" method="get"  class="navbar-search pull-right" >
      <input value="http://archiva.apache.org/ref/3.0.0-SNAPSHOT/archiva-base/archiva-configuration" name="sitesearch" type="hidden"/>
  <input class="search-query" name="q" id="query" type="text" />
</form>
<script type="text/javascript">asyncJs( 'https://cse.google.com/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="https://www.apache.org/images/asf_logo_wide_2016.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><span class="divider">/</span></li>
      <li class=""><a href="../../index.html" title="Apache Archiva">Apache Archiva</a><span class="divider">/</span></li>
      <li class=""><a href="../../index.html" title="Archiva :: Modules">Archiva :: Modules</a><span class="divider">/</span></li>
      <li class=""><a href="../index.html" title="Archiva :: Base">Archiva :: Base</a><span class="divider">/</span></li>
      <li class=""><a href="index.html" title="Archiva Base :: Configuration">Archiva Base :: Configuration</a><span class="divider">/</span></li>
    <li class="active ">Configuration</li>
        <li id="publishDate" class="pull-right">Last Published: 04 Nov 2018</li>
        </ul>
      </div>
        <div id="bodyColumn" >

  
    <div class="section">
<h2><a name="Configuration"></a>Configuration</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;metadataStore/&gt;
  &lt;repositoryGroups&gt;
    &lt;<a href="#class_repositoryGroup">repositoryGroup</a>&gt;
      &lt;id/&gt;
      &lt;mergedIndexPath/&gt;
      &lt;mergedIndexTtl/&gt;
      &lt;cronExpression/&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;retentionPeriod/&gt;
      &lt;deleteReleasedSnapshots/&gt;
      &lt;skipPackedIndexCreation/&gt;
      &lt;stageRepoNeeded/&gt;
      &lt;id/&gt;
      &lt;type/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;packedIndexDir/&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;checkPath/&gt;
      &lt;id/&gt;
      &lt;type/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;packedIndexDir/&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;<a href="#class_fileLockConfiguration">fileLockConfiguration</a>&gt;
      &lt;skipLocking/&gt;
      &lt;lockingTimeout/&gt;
    &lt;/fileLockConfiguration&gt;
    &lt;dataDirectory/&gt;
    &lt;repositoryBaseDirectory/&gt;
    &lt;remoteRepositoryBaseDirectory/&gt;
    &lt;defaultLanguage/&gt;
    &lt;languageRange/&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;<a href="#class_archivaDefaultConfiguration">archivaDefaultConfiguration</a>&gt;
    &lt;defaultCheckPaths&gt;
      &lt;<a href="#class_defaultCheckPath">defaultCheckPath</a>&gt;
        &lt;url/&gt;
        &lt;path/&gt;
      &lt;/defaultCheckPath&gt;
    &lt;/defaultCheckPaths&gt;
  &lt;/archivaDefaultConfiguration&gt;
&lt;/configuration&gt;
</pre></div>
      <a name="class_configuration"></a>
      
<div class="section">
<h3><a name="configuration"></a>configuration</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>metadataStore</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The type of the metadata storage. Allowed values: jcr, file, cassandra.<br /><b>Default value is</b>: <tt>jcr</tt>.</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>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_archivaDefaultConfiguration">archivaDefaultConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>ArchivaDefaultConfiguration</tt>
            </td>
            
<td>Archiva default settings.</td>
          </tr>
        </table>
      </div>
      <a name="class_repositoryGroup"></a>
      
<div class="section">
<h3><a name="repositoryGroup"></a>repositoryGroup</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>cronExpression</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
          When to run the index merging for this group.
          No default value.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
          
<tr class="b">
            
<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><a name="managedRepository"></a>managedRepository</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>retentionPeriod</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>
            The number of days after which snapshots will be removed.
          <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>type</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The repository type. Currently only MAVEN type is known.
          <br /><b>Default value is</b>: <tt>MAVEN</tt>.</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.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>packedIndexDir</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The directory for the packed indexes of this repository.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>description</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The description of this repository.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_remoteRepository"></a>
      
<div class="section">
<h3><a name="remoteRepository"></a>remoteRepository</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> Additional http headers to add to url when requesting remote repositories.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>checkPath</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The path to check the repository availability (relative to the repository URL). Some repositories do not allow browsing, so a certain artifact must be checked.</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>type</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The repository type. Currently only MAVEN type is known.
          <br /><b>Default value is</b>: <tt>MAVEN</tt>.</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.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>packedIndexDir</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The directory for the packed indexes of this repository.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>description</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The description of this repository.
          <br /><b>Default value is</b>: <tt></tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_proxyConnector"></a>
      
<div class="section">
<h3><a name="proxyConnector"></a>proxyConnector</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><a name="networkProxy"></a>networkProxy</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><a name="legacyArtifactPath"></a>legacyArtifactPath</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><a name="repositoryScanning"></a>repositoryScanning</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><a name="fileType"></a>fileType</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><a name="webapp"></a>webapp</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><a name="ui"></a>ui</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><a name="organisationInfo"></a>organisationInfo</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><a name="networkConfiguration"></a>networkConfiguration</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><a name="redbackRuntimeConfiguration"></a>redbackRuntimeConfiguration</h3>
        
<p>
        The redback 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><a name="ldapConfiguration"></a>ldapConfiguration</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> Additional properties to use for ldap connection.</td>
          </tr>
        </table>
      </div>
      <a name="class_ldapGroupMapping"></a>
      
<div class="section">
<h3><a name="ldapGroupMapping"></a>ldapGroupMapping</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><a name="usersCacheConfiguration"></a>usersCacheConfiguration</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><a name="archivaRuntimeConfiguration"></a>archivaRuntimeConfiguration</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>
          
<tr class="a">
            
<td>
              <tt>
                <a href="#class_fileLockConfiguration">fileLockConfiguration</a>
              </tt>
            </td>
            
<td>
              <tt>FileLockConfiguration</tt>
            </td>
            
<td>the FileLocking configuration</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>dataDirectory</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The base directory where the archiva data is stored. If not set, the appserver.base is used.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>repositoryBaseDirectory</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The base directory for local storage of repository data. If not set, it's ${dataDirectory}/repositories.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>remoteRepositoryBaseDirectory</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The base directory for local storage of remote repository data. If not set, it's ${dataDirectory}/remotes.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>defaultLanguage</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>The default language used for setting internationalized strings.<br /><b>Default value is</b>: <tt>en-US</tt>.</td>
          </tr>
          
<tr class="b">
            
<td>
              <tt>languageRange</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>Comma separated list of language patterns. Sorted by priority descending. Used for display of internationalized strings.<br /><b>Default value is</b>: <tt>en,fr,de</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_urlFailureCacheConfiguration"></a>
      
<div class="section">
<h3><a name="urlFailureCacheConfiguration"></a>urlFailureCacheConfiguration</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_fileLockConfiguration"></a>
      
<div class="section">
<h3><a name="fileLockConfiguration"></a>fileLockConfiguration</h3>
        
<p>File Locking 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>skipLocking</tt>
            </td>
            
<td>
              <tt>boolean</tt>
            </td>
            
<td>skipping the locking mechanism<br /><b>Default value is</b>: <tt>true</tt>.</td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>lockingTimeout</tt>
            </td>
            
<td>
              <tt>int</tt>
            </td>
            
<td>maximum time to wait to get the file lock (0 infinite)<br /><b>Default value is</b>: <tt>0</tt>.</td>
          </tr>
        </table>
      </div>
      <a name="class_proxyConnectorRuleConfiguration"></a>
      
<div class="section">
<h3><a name="proxyConnectorRuleConfiguration"></a>proxyConnectorRuleConfiguration</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>
      <a name="class_archivaDefaultConfiguration"></a>
      
<div class="section">
<h3><a name="archivaDefaultConfiguration"></a>archivaDefaultConfiguration</h3>
        
<p>
      Archiva default 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>defaultCheckPaths/<a href="#class_defaultCheckPath">defaultCheckPath</a>*</tt>
            </td>
            
<td>
              <tt>List&lt;RepositoryCheckPath&gt;</tt>
            </td>
            
<td><b>(Many)</b> The default check paths for certain remote repositories</td>
          </tr>
        </table>
      </div>
      <a name="class_defaultCheckPath"></a>
      
<div class="section">
<h3><a name="defaultCheckPath"></a>defaultCheckPath</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 which this path should be used
          </td>
          </tr>
          
<tr class="a">
            
<td>
              <tt>path</tt>
            </td>
            
<td>
              <tt>String</tt>
            </td>
            
<td>
            The path to use for checking the repository connection.
          </td>
          </tr>
        </table>
      </div>
    </div>
  

        </div>
    </div>
    <hr/>
    <footer>
      <div class="container">
        <div class="row">
            <p>Copyright &copy;2006&#x2013;2018
<a href="http://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </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="https://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
    </body>
</html>