<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2005 The Apache Software Foundation

    Licensed 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>
    <pomVersion>3</pomVersion>
    <!-- ============== -->
    <!-- Identification -->
    <!-- ============== -->
    <name>Java Data Objects (JDO)</name>
    <organization>
        <name>Apache Software Foundation</name>
        <url>http://www.apache.org</url>
    </organization>
    <inceptionYear>2005</inceptionYear>
    <shortDescription>Java Data Objects (JDO)</shortDescription>
    <description>The Java Data Objects (JDO) API is a standard interface-based 
Java model abstraction of persistence, developed as Java Specification 
Requests (JSR 12 and 243) under the auspices of the Java Community Process.
    </description>
    <url>http://db.apache.org/jdo</url>
    <repository>
        <connection>scm:svn:http://svn.apache.org/repos/asf/db/jdo/trunk</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/db/jdo/trunk</developerConnection>
        <url>http://cvs.apache.org/viewcvs.cgi/db/jdo/trunk?root=Apache-SVN</url>
    </repository>


    <mailingLists>
        <mailingList>
            <name>JDO User List</name>
            <subscribe>jdo-user-subscribe@db.apache.org</subscribe>
            <unsubscribe>jdo-user-unsubscribe@db.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/db-jdo-user/</archive>

        </mailingList>
        <mailingList>
            <name>JDO Developer List</name>
            <subscribe>jdo-dev-subscribe@db.apache.org</subscribe>
            <unsubscribe>jdo-dev-unsubscribe@db.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/db-jdo-dev/</archive>
        </mailingList>
        <mailingList>
            <name>JDO Commits List</name>
            <subscribe>jdo-commits-subscribe@db.apache.org</subscribe>
            <unsubscribe>jdo-commits-unsubscribe@db.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/db-jdo-commits/</archive>
        </mailingList>
    </mailingLists>
    <!-- ========== -->
    <!-- Developers -->
    <!-- ========== -->
    <developers>
        <developer>
            <name>Craig Russell</name>
            <id>clr</id>
            <email>Craig.Russell@Sun.COM</email>
            <timezone>-8</timezone>
            <organization>Sun Microsystems</organization>
        </developer>
        <developer>
            <name>Michael Bouschen</name>
            <id>mbo</id>
            <email>mbo.tech@spree.de</email>
            <organization>Tech@Spree Engineering GmbH</organization>
            <timezone>1</timezone>
        </developer>
        <developer>
            <name>Michael Watzek</name>
            <id>brazil</id>
            <email>mwa.tech@spree.de</email>
            <organization>Tech@Spree Engineering GmbH</organization>
            <timezone>1</timezone>
        </developer>
        <developer>
            <name>Michelle Caisse</name>
            <id>mcaisse</id>
            <email>Michelle.Caisse@Sun.COM</email>
            <organization>Sun Microsystems</organization>
            <timezone>-8</timezone>
        </developer>
        <developer>
            <name>Matthew Adams</name>
            <id>madams</id>
            <email>matthew.adams@xcalia.com</email>
            <timezone>-8</timezone>
            <organization>Xcalia</organization>
        </developer>
        <developer>
            <name>Martin Zaun</name>
            <id>mzaun</id>
            <email>martin.zaun@Sun.COM</email>
            <timezone>-8</timezone>
            <organization>Sun Microsystems</organization>
        </developer>
        <developer>
            <name>Erik Bengtson</name>
            <id>ebengtson</id>
            <email>erik@jpox.org</email>
            <timezone>1</timezone>
            <organization>JPOX</organization>
        </developer>
        <developer>
            <name>Geir Magnusson, Jr.</name>
            <id>geirm</id>
            <email>geirm@apache.org</email>
            <timezone>-8</timezone>
            <organization>Apache.org</organization>
        </developer>
        <developer>
            <name>Brian McCallister</name>
            <id>brianm</id>
            <email>brianm@apache.org</email>
            <timezone>-8</timezone>
            <organization>Apache.org</organization>
        </developer>
    </developers>
</project>

