<?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="https://poi.apache.org">
    <created>2006-01-26</created>
    <license rdf:resource="https://spdx.org/licenses/Apache-2.0" />
    <name>Apache POI</name>
    <homepage rdf:resource="https://poi.apache.org" />
    <asfext:pmc rdf:resource="https://poi.apache.org" />
    <shortdesc>Java API To Access Microsoft Document File Formats</shortdesc>
    <description>APIs for manipulating various file formats based upon Open Office XML (ECMA-376) and Microsoft's OLE 2 Compound Document formats using pure Java. Apache POI is your Java Excel, Word and PowerPoint solution. We have a complete API for porting other OOXML and OLE 2 Compound Document formats and welcome others to participate.</description>
    <bug-database rdf:resource="https://issues.apache.org/bugzilla/buglist.cgi?product=POI" />
    <mailing-list rdf:resource="https://poi.apache.org/mailinglists.html" />
    <download-page rdf:resource="https://www.apache.org/dyn/closer.lua/poi/" />
    <programming-language>Java</programming-language>
    <category rdf:resource="https://projects.apache.org/category/content" />
    <category rdf:resource="https://projects.apache.org/category/library" />
    <release>
      <Version>
        <name>Apache POI 5.0.0</name>
        <created>2021-01-17</created>
        <revision>5.0.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 4.1.2</name>
        <created>2020-02-14</created>
        <revision>4.1.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 4.1.1</name>
        <created>2019-10-20</created>
        <revision>4.1.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 4.1.0</name>
        <created>2019-04-08</created>
        <revision>4.1.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 4.0.1</name>
        <created>2018-12-03</created>
        <revision>4.0.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 4.0.0</name>
        <created>2018-09-07</created>
        <revision>4.0.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.17</name>
        <created>2017-09-15</created>
        <revision>3.17</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.16</name>
        <created>2017-04-19</created>
        <revision>3.16</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.15</name>
        <created>2016-09-21</created>
        <revision>3.15</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.14</name>
        <created>2016-03-05</created>
        <revision>3.14</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.13</name>
        <created>2015-09-29</created>
        <revision>3.13</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.12</name>
        <created>2015-05-11</created>
        <revision>3.12</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.11</name>
        <created>2014-12-21</created>
        <revision>3.11</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.10.1</name>
        <created>2014-08-18</created>
        <revision>3.10.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.10</name>
        <created>2014-02-08</created>
        <revision>3.10</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.9</name>
        <created>2012-12-03</created>
        <revision>3.9</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.8</name>
        <created>2012-03-26</created>
        <revision>3.8</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.7</name>
        <created>2010-10-29</created>
        <revision>3.7</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.6</name>
        <created>2009-12-14</created>
        <revision>3.6</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.5</name>
        <created>2009-09-28</created>
        <revision>3.5</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Apache POI 3.2</name>
        <created>2008-10-19</created>
        <revision>3.2</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="https://svn.apache.org/repos/asf/poi/"/>
        <browse rdf:resource="https://svn.apache.org/viewvc/poi/"/>
      </SVNRepository>
    </repository>
   <maintainer>
      <foaf:Person>
        <foaf:name>POI Committers</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@poi.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
