<?xml version="1.0"?>
<rdf:RDF 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:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:doap="http://usefulinc.com/ns/doap#" xml:lang="en">
<!-- 
 * 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://commons.apache.org/dbutils/">
    <name>Apache Commons DbUtils</name>
    <homepage rdf:resource="http://commons.apache.org/dbutils/"/>
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/library"/>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20"/>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/DBUTILS"/>
    <download-page rdf:resource="http://commons.apache.org/dbutils/download_dbutils.cgi"/>
    <asfext:pmc rdf:resource="http://commons.apache.org/"/>
    <shortdesc xml:lang="en">Commons DbUtils</shortdesc>
    <description xml:lang="en">A package of Java utility classes for easing JDBC development</description>
    <repository>
      <SVNRepository>
        <browse rdf:resource="http://svn.apache.org/repos/asf/commons/proper/dbutils/trunk"/>
        <location rdf:resource="http://svn.apache.org/repos/asf/commons/proper/dbutils"/>
      </SVNRepository>
    </repository>
    <release>
      <!-- Dates for 1.1-1.3 taken from http://archive.apache.org/dist/commons/dbutils/binaries/ -->
      <Version>
        <name>commons-dbutils</name>
        <created>2013-06-03</created>
        <revision>1.6</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2012-07-20</created>
        <revision>1.5</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2011-10-23</created>
        <revision>1.4</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2009-11-11</created>
        <revision>1.3</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2009-04-26</created>
        <revision>1.2</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2006-12-02</created>
        <revision>1.1</revision>
      </Version>
      <Version>
        <name>commons-dbutils</name>
        <created>2003-11-11</created>
        <revision>1.0</revision>
      </Version>
    </release>
    <mailing-list rdf:resource="http://commons.apache.org/mail-lists.html"/>
  </Project>
</rdf:RDF>
