<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia 
 | Rendered using Apache Maven Fluido Skin 1.3.1
-->
<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="20170517" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Base :: Configuration &#x2013; Configuration</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.1.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.1.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="integration.html"  title="Continuous Integration">Continuous Integration</a>
</li>
                                  <li>      <a href="dependencies.html"  title="Dependencies">Dependencies</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="distribution-management.html"  title="Distribution Management">Distribution Management</a>
</li>
                                  <li>      <a href="index.html"  title="About">About</a>
</li>
                                  <li>      <a href="issue-tracking.html"  title="Issue Tracking">Issue Tracking</a>
</li>
                                  <li>      <a href="license.html"  title="Project License">Project License</a>
</li>
                                  <li>      <a href="mail-lists.html"  title="Mailing Lists">Mailing Lists</a>
</li>
                                  <li>      <a href="plugin-management.html"  title="Plugin Management">Plugin Management</a>
</li>
                                  <li>      <a href="plugins.html"  title="Project Plugins">Project Plugins</a>
</li>
                                  <li>      <a href="team-list.html"  title="Project Team">Project Team</a>
</li>
                                  <li>      <a href="source-repository.html"  title="Source Repository">Source Repository</a>
</li>
                                  <li>      <a href="project-summary.html"  title="Project Summary">Project Summary</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="http://www.google.com/search" method="get"  class="navbar-search pull-right" >
    
  <input value="http://archiva.apache.org/ref/2.2.3" 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="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="../../" title="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../../" title="Archiva :: Modules">
        Archiva :: Modules</a>
                    <span class="divider">/</span>
      </li>
            <li class="">
                    <a href="../" title="Archiva :: Base">
        Archiva :: Base</a>
                    <span class="divider">/</span>
      </li>
                <li class="">
                    <a href="./" 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: 17 May 2017</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><a name="Configuration"></a>Configuration</h2>
      
<p>
    Configuration format for Archiva (Maven Repository Manager).
  </p>
      
<div class="source">
<pre>
&lt;<a href="#class_configuration">configuration</a>&gt;
  &lt;version/&gt;
  &lt;repositories&gt;
    &lt;<a href="#class_repository">repository</a>&gt;
      &lt;url/&gt;
      &lt;indexed/&gt;
      &lt;location/&gt;
      &lt;releases/&gt;
      &lt;blockRedeployments/&gt;
      &lt;snapshots/&gt;
      &lt;scanned/&gt;
      &lt;refreshCronExpression/&gt;
      &lt;retentionCount/&gt;
      &lt;daysOlder/&gt;
      &lt;deleteReleasedSnapshots/&gt;
      &lt;skipPackedIndexCreation/&gt;
      &lt;stageRepoNeeded/&gt;
      &lt;id/&gt;
      &lt;name/&gt;
      &lt;layout/&gt;
      &lt;indexDir/&gt;
      &lt;description/&gt;
    &lt;/repository&gt;
  &lt;/repositories&gt;
  &lt;repositoryGroups&gt;
    &lt;<a href="#class_repositoryGroup">repositoryGroup</a>&gt;
      &lt;id/&gt;
      &lt;mergedIndexPath/&gt;
      &lt;mergedIndexTtl/&gt;
      &lt;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;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;checkPath/&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;<a href="#class_fileLockConfiguration">fileLockConfiguration</a>&gt;
      &lt;skipLocking/&gt;
      &lt;lockingTimeout/&gt;
    &lt;/fileLockConfiguration&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>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>
          
<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_repository"></a>
      
<div class="section">
<h3><a name="repository"></a>repository</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><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>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><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>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_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 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>
        </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;2017
                        <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="http://www.ohloh.net/p/6670/widgets/project_basic_stats.js"></script>
    </div>
        </div>
    </footer>
        </body>
</html>