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