<!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="20211219" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Archiva Documentation &#x2013; Release Notes for Archiva 2.2.7</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="topBarDisabled">
          
                
                    
    
        <div class="container-fluid">
          <div id="banner">
        <div class="pull-left">
                                                  <a href="../../" 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="../../index.html" title="Apache Archiva">
        Apache Archiva</a>
                    <span class="divider">/</span>
      </li>
        <li class="active ">Release Notes for Archiva 2.2.7</li>
        
                
                    
                  <li id="publishDate" class="pull-right"><span class="divider">|</span> Last Published: 2021-12-19</li>
              <li id="projectVersion" class="pull-right">
                    Version: 2.2.7
        </li>
            
                            </ul>
      </div>

                  
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
                
                    
                <ul class="nav nav-list">
                    <li class="nav-header">Introduction</li>
                              
      <li>
  
                          <a href="quick-start.html" title="Quick Start">
          <i class="none"></i>
        Quick Start</a>
            </li>
                
      <li>
  
                          <a href="tour/index.html" title="Feature Tour">
          <i class="none"></i>
        Feature Tour</a>
            </li>
                
      <li class="active">
  
            <a href="#"><i class="none"></i>Release Notes</a>
          </li>
                
      <li>
  
                          <a href="../../download.html" title="Downloads">
          <i class="none"></i>
        Downloads</a>
            </li>
                              <li class="nav-header">Users Guide</li>
                              
      <li>
  
                          <a href="userguide/browsing.html" title="Browsing">
          <i class="none"></i>
        Browsing</a>
            </li>
                
      <li>
  
                          <a href="userguide/searching.html" title="Searching">
          <i class="none"></i>
        Searching</a>
            </li>
                
      <li>
  
                          <a href="userguide/delete-artifact.html" title="Deleting an Artifact">
          <i class="none"></i>
        Deleting an Artifact</a>
            </li>
                
      <li>
  
                          <a href="userguide/using-repository.html" title="Using as a repository">
          <i class="none"></i>
        Using as a repository</a>
            </li>
                
      <li>
  
                          <a href="userguide/deploy.html" title="Deploying to repository">
          <i class="none"></i>
        Deploying to repository</a>
            </li>
                
      <li>
  
                          <a href="userguide/virtual-repositories.html" title="Configuring Virtual Repositories">
          <i class="none"></i>
        Configuring Virtual Repositories</a>
            </li>
                
      <li>
  
                          <a href="userguide/rss.html" title="Rss Feeds in Archiva">
          <i class="none"></i>
        Rss Feeds in Archiva</a>
            </li>
                
      <li>
  
                          <a href="userguide/querying-artifacts.html" title="Querying Artifacts">
          <i class="none"></i>
        Querying Artifacts</a>
            </li>
                              <li class="nav-header">Administrators Guide</li>
                                                                                                                    
      <li>
  
                          <a href="adminguide/installing.html" title="Installing Archiva">
          <i class="icon-chevron-right"></i>
        Installing Archiva</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/databases.html" title="Databases">
          <i class="none"></i>
        Databases</a>
            </li>
                
      <li>
  
                          <a href="adminguide/repositories-content-storage.html" title="Repositories Content Storage">
          <i class="none"></i>
        Repositories Content Storage</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="adminguide/security.html" title="Security">
          <i class="icon-chevron-right"></i>
        Security</a>
                  </li>
                                                                                                                                                                                                                                                                                          
      <li>
  
                          <a href="adminguide/configuration.html" title="Archiva Configuration">
          <i class="icon-chevron-right"></i>
        Archiva Configuration</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/webservices/rest.html" title="REST Apis">
          <i class="none"></i>
        REST Apis</a>
            </li>
                
      <li>
  
                          <a href="adminguide/configuration-files.html" title="Configuration Files">
          <i class="none"></i>
        Configuration Files</a>
            </li>
                
      <li>
  
                          <a href="adminguide/system-status.html" title="System Status">
          <i class="none"></i>
        System Status</a>
            </li>
                                                                                                      
      <li>
  
                          <a href="adminguide/logging.html" title="Log Files">
          <i class="icon-chevron-right"></i>
        Log Files</a>
                  </li>
                
      <li>
  
                          <a href="adminguide/reports.html" title="Reports">
          <i class="none"></i>
        Reports</a>
            </li>
                              <li class="nav-header">Customising Archiva</li>
                              
      <li>
  
                          <a href="customising/writing-consumer.html" title="Writing a Consumer Plugin">
          <i class="none"></i>
        Writing a Consumer Plugin</a>
            </li>
                              <li class="nav-header">More Information</li>
                              
      <li>
  
                          <a href="http://cwiki.apache.org/confluence/display/ARCHIVA/Index" class="externalLink" title="Archiva Wiki">
          <i class="none"></i>
        Archiva Wiki</a>
            </li>
                              <li class="nav-header">ASF</li>
                              
      <li>
  
                          <a href="http://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How Apache Works">
          <i class="none"></i>
        How Apache Works</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/" class="externalLink" title="Foundation">
          <i class="none"></i>
        Foundation</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsoring Apache">
          <i class="none"></i>
        Sponsoring Apache</a>
            </li>
                
      <li>
  
                          <a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">
          <i class="none"></i>
        Thanks</a>
            </li>
                              <li class="nav-header">Project Documentation</li>
                                                                                                  
      <li>
  
                          <a href="project-info.html" title="Project Information">
          <i class="icon-chevron-right"></i>
        Project Information</a>
                  </li>
            </ul>
                
                    
                            <form id="search-form" action="http://www.google.com/search" method="get" >
    
  <input value="http://archiva.apache.org/docs/2.2.7/" 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>
          
          <hr />

           <div id="poweredBy">
                            <div class="clear"></div>
                            <div class="clear"></div>
               
        
        
        <div id="twitter">
    
    <a href="https://twitter.com/archiva" class="twitter-follow-button" data-show-count="false" data-align="left" data-size="medium" 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>

        </div>
                   <div class="clear"></div>
                            <div class="clear"></div>
                             <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>
                  </div>
          </div>
        </div>
        
                        
        <div id="bodyColumn"  class="span10" >
                                  
            <!-- Licensed to the Apache Software Foundation (ASF) under one --><!-- or more contributor license agreements.  See the NOTICE file --><!-- distributed with this work for additional information --><!-- regarding copyright ownership.  The ASF licenses this file --><!-- to you under the Apache License, Version 2.0 (the --><!-- "License"); you may not use this file except in compliance --><!-- with the License.  You may obtain a copy of the License at --><!--  --><!-- http://www.apache.org/licenses/LICENSE-2.0 --><!--  --><!-- Unless required by applicable law or agreed to in writing, --><!-- software distributed under the License is distributed on an --><!-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --><!-- KIND, either express or implied.  See the License for the --><!-- specific language governing permissions and limitations --><!-- under the License. --><div class="section">
<h2><a name="Release_Notes_for_Archiva_2.2.7"></a>Release Notes for Archiva 2.2.7</h2>
<p>The Apache Archiva team is pleased to announce the release of Archiva 2.2.7. Archiva is <a class="externalLink" href="https://archiva.apache.org/download.html"> available for download from the web site</a>.</p>
<p>Archiva is an application for managing one or more remote repositories, including administration, artifact handling, browsing and searching.</p>
<p>This is a security fix release. Users are advised to update their systems to the new version as soon as possible.</p>
<p>For further information see: <a class="externalLink" href="https://archiva.apache.org/security.html">https://archiva.apache.org/security.html</a></p>
<p>If you have any questions, please consult:</p>
<ul>
<li>the web site: <a class="externalLink" href="https://archiva.apache.org/">https://archiva.apache.org/</a></li>
<li>the archiva-user mailing list: <a class="externalLink" href="https://archiva.apache.org/mail-lists.html">https://archiva.apache.org/mail-lists.html</a></li></ul>
<div class="section">
<h3><a name="New_in_Archiva_2.2.7"></a>New in Archiva 2.2.7</h3>
<p>Apache Archiva 2.2.7 is a security fix release:</p>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<ul>
<li>[MRM-2021] There is a new flag 'literalVersion=true/false' for service archivaServices/searchService/artifact which allows to change the behaviour for v=LATEST search. </li></ul></div>
<div class="section">
<h4><a name="New_Feature"></a>New Feature</h4>
<ul>
<li>There are no new features in this release.</li></ul></div>
<div class="section">
<h4><a name="Improvements"></a>Improvements</h4>
<ul>
<li>There are no improvements</li></ul></div>
<div class="section">
<h4><a name="BugSecurity_Fix"></a>Bug/Security Fix</h4>
<ul>
<li>[MRM-2027] Update of the log4j2 version to 2.17.0</li>
<li>[MRM-2020] Fixed the behaviour of the startup script, if ARCHIVA_BASE is set (separating installation and data directory)</li>
<li>[MRM-2022] Fixed the handling of X-XSRF-TOKEN header in Javascript calls</li></ul></div></div></div>
<div class="section">
<h2><a name="Previous_Release_Notes"></a>Previous Release Notes</h2>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.6"></a>Release Notes for Archiva 2.2.6</h3>
<p>Apache Archiva 2.2.6 is a security fix release:</p>
<p>Released: 2021-12-15</p>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<ul>
<li>No API changes or known side effects.</li></ul></div>
<div class="section">
<h4><a name="New_Feature"></a>New Feature</h4>
<ul>
<li>There are no new features in this release.</li></ul></div>
<div class="section">
<h4><a name="Improvements"></a>Improvements</h4>
<ul>
<li>There are no improvements</li></ul></div>
<div class="section">
<h4><a name="BugSecurity_Fix"></a>Bug/Security Fix</h4>
<ul>
<li>Update of the log4j2 version to mitigate the log4j2 vulnerability (CVE-2021-44228)</li>
<li>Deactivated directory listings by the file servlet</li></ul></div></div>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.5"></a>Release Notes for Archiva 2.2.5</h3>
<p>Apache Archiva 2.2.5 is a bug fix release:</p>
<p>Released: 2020-06-19</p>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<ul>
<li>No API changes or known side effects.</li></ul></div>
<div class="section">
<h4><a name="New_Feature"></a>New Feature</h4>
<ul>
<li>There are no new features in this release.</li></ul></div>
<div class="section">
<h4><a name="Improvements"></a>Improvements</h4>
<ul>
<li>There are no improvements</li></ul></div>
<div class="section">
<h4><a name="Bug_Fix"></a>Bug Fix</h4>
<ul>
<li>[MRM-2008] Fix for group names with slashes</li>
<li>Better handling of LDAP filter </li></ul></div></div>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.4"></a>Release Notes for Archiva 2.2.4</h3>
<p>Apache Archiva 2.2.4 is a bug fix release:</p>
<ul>
<li>Fixes for handling of artifacts</li>
<li>Improved validation of REST calls</li></ul>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<p>No API changes or known side effects.</p>
<p>Released: 2019-04-30</p></div>
<div class="section">
<h4><a name="New_Feature"></a>New Feature</h4>
<ul>
<li>There are no new features in this release.</li></ul></div>
<div class="section">
<h4><a name="Improvements"></a>Improvements</h4>
<ul>
<li>Adding additional validation to REST service calls for artifact upload</li></ul></div>
<div class="section">
<h4><a name="Bug_Fix"></a>Bug Fix</h4>
<ul>
<li>[MRM-1972] Stored XSS in Web UI Organization Name</li>
<li>[MRM-1966] Repository-purge not working</li>
<li>[MRM-1958] Purge by retention count deletes files but leaves history on website.</li>
<li>[MRM-1929] Repository purge is not reflected in index</li></ul></div></div>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.3"></a>Release Notes for Archiva 2.2.3</h3>
<div class="section">
<h4><a name="New_in_Archiva_2.2.3"></a>New in Archiva 2.2.3</h4>
<p>Apache Archiva 2.2.3 is a bug fix release:</p>
<ul>
<li>Some fixes for the REST API were added to detect requests from unknown origin</li>
<li>Some bugfixes were added</li></ul></div>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<ul>
<li>The REST services are now checking for the origin of the requests by analysing Origin and Referer header of the HTTP requests and adding an validation token to the Header. This prevents requests from malicious sites if they are open in the same browser. If you use the REST services from other clients you may change the behaviour with the new configuration properties for the redback security (<tt>rest.csrffilter.*</tt>, <tt>rest.baseUrl</tt>). For more information see <a href="./adminguide/customising-security.html">Archiva Security Configuration</a> and the <a href="/redback/integration/rest.html">Redback REST documentation </a>.
<p><b>Note:</b> If your archiva installation is behind a reverse proxy or load balancer, it may be possible that the Archiva Web UI does not load after the upgrade. If this is the case you may access the WebUI via localhost or edit archiva.xml manually. In the &quot;Redback Runtime Configuration&quot; properties you have to enter the base URLs of your archiva installation to the <tt>rest.baseUrl</tt> field.</p></li>
<li>Archiva uses redback for authentication and authorization in version 2.6</li></ul></div>
<div class="section">
<h4><a name="Change_List"></a>Change List</h4>
<p>Released: <b>2017-05-13</b></p>
<div class="section">
<h5><a name="New_Feature"></a>New Feature</h5></div>
<div class="section">
<h5><a name="Improvement"></a>Improvement</h5>
<ul>
<li>[MRM-1925] - Make User-Agent header configurable for HTTP requests</li>
<li>[MRM-1861], [MRM-1924] - Increasing timeouts for repository check</li>
<li>[MRM-1937] - Prevent creating initial admin user with wrong name.</li>
<li>Adding origin header validation checks for REST requests</li></ul></div>
<div class="section">
<h5><a name="Bug_Fix"></a>Bug Fix</h5>
<ul>
<li>[MRM-1859] - Error upon viewing 'Artifacts' tab when browsing an artifact</li>
<li>[MRM-1874] - Login Dialog triggers multiple events (+messages)</li>
<li>[MRM-1908] - Logged on users can write any repository</li>
<li>[MRM-1909] - Remote repository check fails for https://repo.maven.apache.org/maven2</li>
<li>[MRM-1923] - Fixing bind issue with certain ldap servers, when user not found</li>
<li>[MRM-1926] - Invalid checksum files in Archiva repository after download from remote repository</li>
<li>[MRM-1928] - Bad redirect URL when using Archiva through HTTP reverse proxy</li>
<li>[MRM-1933] - No message body writer has been found for class org.apache.archiva.rest.services.ArchivaRestError</li>
<li>[MRM-1940] - Slashes appended to remote repo url</li></ul></div></div></div>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.1"></a>Release Notes for Archiva 2.2.1</h3>
<div class="section">
<h4><a name="New_in_Archiva_2.2.1"></a>New in Archiva 2.2.1</h4>
<p>Apache Archiva 2.2.1 is a bugs fix release:</p>
<p>NOTE: jdk 1.7 is now prerequisite with Apache Archiva 2.2.1</p></div>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<p>If using the Cassandra backend, the metadatafacet column 'key' has been renamed to 'facetKey' in 2.2.0 so you should copy the data to the new column manually. If upgrading from earlier versions of Archiva, the list of libraries in wrapper.conf has changed. If you have customized your copy of wrapper.conf, please update it for compatibility with the version distributed with the current release. As the database storage has been removed, you can remove the JNDI entry for jdbc/archiva.</p>
<p>Refer to the Upgrading Archiva guide for more information.</p></div>
<div class="section">
<h4><a name="List_of_Changes"></a>List of Changes</h4>
<div class="section">
<h5><a name="Improvement"></a>Improvement</h5>
<ul>
<li>[MRM-1201] - Artifact upload success message should mention the classifier</li>
<li>[MRM-1906] - Allowing filtering of LDAP groups</li></ul></div>
<div class="section">
<h5><a name="Bug_Fix"></a>Bug Fix</h5>
<ul>
<li>[MRM-1873] - archiva doesn't recognise ldap-group to ldap-users mapping</li>
<li>[MRM-1877] - Checksum files always recreated</li>
<li>[MRM-1879] - Bug in create-missing-checksum consumer</li>
<li>[MRM-1886] - View Artifact Content Action does not Work</li>
<li>[MRM-1887] - Syntax error in DOAP file release section; wrong bug- database URL</li>
<li>[MRM-1892] - Only One Page of Proxy Connector Rules Shown</li>
<li>[MRM-1893] - Please delete old releases from mirroring system</li>
<li>[MRM-1896] - Invalid link to license</li>
<li>[MRM-1914] - Maven cannot find dependency</li></ul></div></div></div>
<div class="section">
<h3><a name="Release_Notes_for_Archiva_2.2.0"></a>Release Notes for Archiva 2.2.0</h3>
<div class="section">
<h4><a name="New_in_Archiva_2.2.0"></a>New in Archiva 2.2.0</h4>
<p>Apache Archiva 2.2.0 is a bugs fix release:</p>
<p>NOTE: jdk 1.7 is now prerequisite with Apache Archiva 2.2.0</p></div>
<div class="section">
<h4><a name="Compatibility_Changes"></a>Compatibility Changes</h4>
<p>If using the Cassandra backend, the metadatafacet column 'key' has been renamed to 'facetKey' in 2.2.0 so you should copy the data to the new column manually. If upgrading from earlier versions of Archiva, the list of libraries in wrapper.conf has changed. If you have customized your copy of wrapper.conf, please update it for compatibility with the version distributed with the current release. As the database storage has been removed, you can remove the JNDI entry for jdbc/archiva. After upgrading from a previous version, you will have to run a full scan to populate the new JCR Repository. This will be done on first start of Archiva.</p>
<p>Refer to the Upgrading Archiva guide for more information.</p></div>
<div class="section">
<h4><a name="List_of_Changes_in_Archiva_2.2.0"></a>List of Changes in Archiva 2.2.0</h4>
<div class="section">
<h5><a name="New_Feature"></a>New Feature</h5>
<ul>
<li>[MRM-1867] - Adding a find jar by checksum functionality to the REST api</li></ul></div>
<div class="section">
<h5><a name="Improvement"></a>Improvement</h5>
<ul>
<li>[MRM-1390] - Generic metadata should be searcheable in Archiva search</li>
<li>[MRM-1844] - Allow LDAP groupOfNames</li></ul></div>
<div class="section">
<h5><a name="Bug_Fix"></a>Bug Fix</h5>
<ul>
<li>[MRM-770] - Archiva web client does not recognize classifier</li>
<li>[MRM-813] - Audit log is reporting &quot;Modify File (proxied)&quot; when no proxy connectors exist and the file has not changed</li>
<li>[MRM-837] - Cannot download SNAPSHOT version</li>
<li>[MRM-935] - Archiva doesn't supports artifact with <i>version</i>SNAPSHOT<i>/version</i></li>
<li>[MRM-1145] - RSS tests do not correctly check responses</li>
<li>[MRM-1311] - Logging in ArtifactMissingChecksumsConsumer does not appear in the logs even if configured properly</li>
<li>[MRM-1486] - ldap.config.mapper.attribute.user.filter using ldap not working correctly with commas.</li>
<li>[MRM-1767] - When selecting a specific repository to browse, I get an error that I don't have sufficient privileges.</li>
<li>[MRM-1807] - Archiva wrapper fail to start</li>
<li>[MRM-1810] - LDAP - groups config not available in Users Runtime Configuration - Properties</li>
<li>[MRM-1811] - Users - Manage section: pagination needs to change</li>
<li>[MRM-1846] - Regression in 2.0.1 : uniqueVersion false not supported</li>
<li>[MRM-1848] - download links for files mult-dot extensions incorrect in Browse view</li>
<li>[MRM-1851] - generic metadata GUI broken</li>
<li>[MRM-1860] - ClassNotFound exception with JBoss</li>
<li>[MRM-1863] - RepositoryGroup URL is not build using the Application URL</li>
<li>[MRM-1864] - Default configuration for central should now use SSL</li>
<li>[MRM-1871] - ConcurrentModificationException in DefaultRepositoryProxyConnectors</li>
<li>[MRM-1873] - archiva doesn't recognise ldap-group to ldap-users mapping</li></ul></div>
<div class="section">
<h5><a name="Task"></a>Task</h5>
<ul>
<li>[MRM-1359] - Remove Maven 1.x functionality</li>
<li>[MRM-1865] - remove isPermanent from Consumer API</li></ul></div></div></div></div>
<div class="section">
<h2><a name="History"></a>History</h2>
<p>Archiva was started in November 2005, building a simple framework on top of some existing repository conversion tools within the Maven project. Initial development focused on repository conversion, error reporting, and indexing. From January 2006 a web application was started to visualise the information and to start incorporating functionality from the unmaintained maven-proxy project.</p>
<p>Development continued through many stops and starts. Initial versions of Archiva were built from source by contributors, and the first alpha version was not released until April 2007. Some significant changes were made to improve performance and functionality in June 2007 and over the next 6 months and a series of alpha and beta releases, a concerted effort was made to release the 1.0 version.</p>
<p>Archiva became an Apache &quot;top level project&quot; in March 2008.</p></div>
                  </div>
            </div>
          </div>

    <hr/>

    <footer>
            <div class="container-fluid">
                      <div class="row-fluid">
                              <p >Copyright &copy;                    2006&#x2013;2021
                        <a href="http://www.apache.org/">The Apache Software Foundation</a>.
            All rights reserved.      
                    
      </p>
        </div>

                                                                  
<div class="row span12">Apache Archiva :: Documentation, Archiva :: Documentation, Apache, the Apache feather logo, and the Apache Archiva :: Documentation project logos are trademarks of The Apache Software Foundation.</div>
                                                          
<div class="row span12">
  <a href="http://archiva.apache.org/docs/2.2.7/privacy-policy.html">Privacy Policy</a>
</div>
                  
        
          
    
    
                
    <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>
