<?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 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>
