<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    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.
-->
  <Project rdf:about="http://archiva.apache.org">
    <created>2012-04-14</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Archiva</name>
    <homepage rdf:resource="http://archiva.apache.org" />
    <asfext:pmc rdf:resource="http://archiva.apache.org" />
    <shortdesc>Apache Archiva software is an extensible repository management tool that helps taking care of your own personal or enterprise-wide build artifact repository.</shortdesc>
    <description>Archiva is the perfect companion for build tools such as Maven, Continuum, and ANT. Archiva offers several capabilities, amongst which remote repository proxying,
security access management, build artifact storage, delivery, browsing, indexing and usage reporting, extensible scanning functionality and many more!</description>
    <bug-database rdf:resource="http://jira.codehaus.org/browse/MRM" />
    <mailing-list rdf:resource="http://archiva.apache.org/mail-lists.html" />
    <download-page rdf:resource="http://archiva.apache.org/download.html" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/build-management" />
     <release>
      <Version>
        <name>Apache Archiva 2.x.x</name>
        <created>2014-09-04</created>
        <revision>2.1.1</revision>
        <file-release>http://www.us.apache.org/dist/archiva/2.1.1/binaries/apache-archiva-2.1.1-bin.zip</file-release>
        <file-release>http://www.us.apache.org/dist/archiva/2.1.1/binaries/apache-archiva-2.1.1.war</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache Archiva 1.3.x</name>
        <created>2014-07-01</created>
        <revision>1.3.9</revision>
        <file-release>http://www.us.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.1-bin.zip</file-release>
        <file-release>http://www.us.apache.org/dist/archiva/1.3.9/binaries/apache-archiva-1.3.9.war</file-release>
      </Version>
    </release>
    <!--<release>
      <Version>
        <name>Apache Archiva 1.4-M4</name>
        <created>2013-05-27</created>
        <revision>1.4-M4</revision>
        <file-release>http://www.us.apache.org/dist/archiva/1.4-M4/binaries/apache-archiva-1.4-M4-bin.zip</file-release>
        <file-release>http://www.us.apache.org/dist/archiva/1.4-M4/binaries/apache-archiva-1.4-M4.war</file-release>
      </Version>
    </release>-->
    <repository>
      <SVNRepository>
        <location rdf:resource="https://svn.apache.org/repos/asf/archiva/"/>
        <browse rdf:resource="https://svn.apache.org/viewvc/archiva/"/>
      </SVNRepository>
      <GitRepository>
        <location rdf:resource="https://git-wip-us.apache.org/repos/asf?p=archiva.git"/>
        <browse rdf:resource="https://git-wip-us.apache.org/repos/asf/archiva.git"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache Archiva PMC</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@archiva.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
