<!--
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.
-->
<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/">
  <Project rdf:about="http://Maven.rdf.apache.org/">
    <created>2001</created>
    <license rdf:resource="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
    <name>Apache Maven Doxia</name>
    <homepage rdf:resource="https://maven.apache.org/doxia/"/>
    <asfext:pmc rdf:resource="http://maven.apache.org/"/>
    <shortdesc>Doxia is a content generation framework, which supports many markup languages.</shortdesc>
    <description>Doxia is a content generation framework which aims to provide its users with powerful techniques for generating static and dynamic content: Doxia can be used in web-based publishing context to generate static sites, in addition to being incorporated into dynamic content generation systems like blogs, wikis and content management systems.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/DOXIA"/>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/DOXIASITETOOLS"/>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/DOXIATOOLS"/>
    <mailing-list rdf:resource="https://maven.apache.org/doxia/mail-lists.html"/>
    <download-page rdf:resource="https://maven.apache.org/doxia/download.html"/>
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/build-management"/>
    <release>
      <Version>
        <name>Doxia base</name>
        <created>2017-12-17</created>
        <revision>1.8</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-1.8-source-release.zip</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Doxia 1.7</name>
        <created>2016-02-06</created>
        <revision>1.7</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-1.7-source-release.zip</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Doxia Sitetools</name>
        <created>2018-04-22</created>
        <revision>1.8.1</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-sitetools-1.8.1-source-release.zip</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Doxia Sitetools 1.8</name>
        <created>2017-11-21</created>
        <revision>1.8</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-sitetools-1.8-source-release.zip</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Doxia Sitetools 1.7.5</name>
        <created>2017-09-26</created>
        <revision>1.7.5</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-sitetools-1.7.5-source-release.zip</file-release>
      </Version>
    </release>
    <release>
      <Version>
        <name>Doxia Sitetools 1.7.4</name>
        <created>2016-11-08</created>
        <revision>1.7.4</revision>
        <file-release>http://archive.apache.org/dist/maven/doxia/doxia-sitetools-1.7.4-source-release.zip</file-release>
      </Version>
    </release>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia.git"/>
      </GitRepository>
    </repository>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git"/>
      </GitRepository>
    </repository>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-converter.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-converter.git"/>
      </GitRepository>
    </repository>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-linkcheck.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf/maven-doxia-linkcheck.git"/>
      </GitRepository>
    </repository>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/maven/doxia/doxia-tools/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/maven/doxia/doxia-tools/trunk/"/>
      </SVNRepository>
    </repository>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/maven/doxia/site/trunk/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/maven/doxia/site/trunk/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache Maven PMC</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@maven.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
