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

    Copyright 2003-2004 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.
-->


<!-- $Rev$ $Date$ -->

<project>

    <pomVersion>3</pomVersion>

    <!-- ============== -->
    <!-- Identification -->
    <!-- ============== -->

    <name>Apache Geronimo</name>
    <id>geronimo</id>
    <groupId>geronimo</groupId>
    <package>org.apache.geronimo</package>

    <organization>
        <name>Apache Software Foundation</name>
        <url>http://geronimo.apache.org/</url>
        <logo>http://geronimo.apache.org/images/geronimo-logo.png</logo>
    </organization>

    <inceptionYear>2003</inceptionYear>
    <logo>http://incubator.apache.org/geronimo/images/geronimo.gif</logo>
    <description>Geronimo J2EE Application Server</description>
    <shortDescription>Geronimo J2EE Application Server</shortDescription>
    <url>http://geronimo.apache.org/</url>
    <issueTrackingUrl>http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10220</issueTrackingUrl>

    <siteAddress>geronimo.apache.org</siteAddress>
    <siteDirectory>/www/geronimo.apache.org</siteDirectory>
    <distributionDirectory>/www/geronimo.apache.org/builds</distributionDirectory>

    <repository>
        <connection>scm:subversion:http://svn.apache.org/repos/asf/geronimo/trunk</connection>
        <developerConnection>scm:subversion:https://svn.apache.org/repos/asf/geronimo/trunk</developerConnection>
        <url>http://svn.apache.org/viewcvs.cgi/geronimo/trunk/?root=Apache-SVN</url>
    </repository>

    <mailingLists>
        <mailingList>
          <name>Geronimo User List</name>
          <subscribe>user-subscribe@geronimo.apache.org</subscribe>
          <unsubscribe>user-unsubscribe@geronimo.apache.org</unsubscribe>
          <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listName=user@geronimo.apache.org</archive>
        </mailingList>

        <mailingList>
            <name>Geronimo Developer List</name>
            <subscribe>dev-subscribe@geronimo.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@geronimo.apache.org</unsubscribe>
            <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listName=dev@geronimo.apache.org</archive>
        </mailingList>

        <mailingList>
            <name>Geronimo Source Control List</name>
            <subscribe>scm-subscribe@geronimo.apache.org</subscribe>
            <unsubscribe>scm-unsubscribe@geronimo.apache.org</unsubscribe>
            <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listName=scm@geronimo.apache.org</archive>
        </mailingList>
    </mailingLists>


    <!-- ======== -->
    <!-- Versions -->
    <!-- ======== -->

    <currentVersion>${geronimo_version}</currentVersion>

    <versions>
        <version>
            <id>1.0</id>
            <name>1.0</name>
            <tag>v1_0_0</tag>
        </version>
        <version>
            <id>1.0-M5</id>
            <name>1.0-M5</name>
            <tag>HEAD</tag>
        </version>
        <version>
            <id>1.0-M4</id>
            <name>1.0-M4</name>
            <tag>v1_0_M4</tag>
        </version>
        <version>
            <id>1.0-M3</id>
            <name>1.0-M3</name>
            <tag>v1_0_M3</tag>
        </version>
        <version>
            <id>1.0-M2</id>
            <name>1.0-M2</name>
            <tag>v1_0_M2</tag>
        </version>
        <version>
            <id>1.0-M1</id>
            <name>1.0-M1</name>
            <tag>v1_0_M1</tag>
        </version>
    </versions>


    <!-- ========== -->
    <!-- Developers -->
    <!-- ========== -->

    <developers>
        <developer>
            <name>Jan Bartel</name>
            <id>janb</id>
            <email>janb@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>David Blevins</name>
            <id>dblevins</id>
            <email>dblevins@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Simone Bordet</name>
            <id>simon</id>
            <email>simon@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jeremy Boynes</name>
            <id>jboynes</id>
            <email>jboynes@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Alan D. Cabrera</name>
            <id>adc</id>
            <email>adc@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Remigio Chirino</name>
            <id>chirino</id>
            <email>chirino@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Gianny Damour</name>
            <id>gdamour</id>
            <email>gdamour@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jason Dillon</name>
            <id>jdilon</id>
            <email>jdilon@planet57.com</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jeff Genender</name>
            <id>jgenender</id>
            <email>jgenender@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jules Golsnell</name>
            <id>jules</id>
            <email>jules@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Matt Hogstrom</name>
            <id>hogstrom</id>
            <email>hogstrom@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jim Jagielski</name>
            <id>jim</id>
            <email>jim@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>David Jencks</name>
            <id>djencks</id>
            <email>djencks@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Jacek Laskowski</name>
            <id>jlaskowski</id>
            <email>jlaskowski@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Geir Magnusson Jr.</name>
            <id>geirm</id>
            <email>geirm@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Kevan Miller</name>
            <id>kevan</id>
            <email>kevan@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Richard Monson-Haefel</name>
            <id>rmonson</id>
            <email>rmonson@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Aaron Mulder</name>
            <id>ammulder</id>
            <email>ammulder@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Srinath Perera</name>
            <id>hemapani</id>
            <email>hemapani@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>John Sisson</name>
            <id>jsisson</id>
            <email>jsisson@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Bruce Snyder</name>
            <id>bsnyder</id>
            <email>bsnyder@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>James Strachan</name>
            <id>jstrachan</id>
            <email>jstrachan@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Dain Sundstrom</name>
            <id>dain</id>
            <email>dain@apache.org</email>
            <organization></organization>
        </developer>

        <developer>
            <name>Greg Wilkins</name>
            <id>gregw</id>
            <email>gregw@apache.org</email>
            <organization></organization>
        </developer>

    </developers>


    <!-- ============ -->
    <!-- Contributors -->
    <!-- ============ -->

    <contributors>
        <contributor>
            <name>Alex Blewitt</name>
            <email>Alex.Blewitt@ioshq.com</email>
        </contributor>
        <contributor>
            <name>Brendan W. McAdams</name>
            <email>bmcadams@sluggy.com</email>
        </contributor>
        <contributor>
            <name>Brent Worden</name>
            <email>brent@worden.org</email>
        </contributor>
        <contributor>
            <name>Davanum Srinivas</name>
            <email>dims@yahoo.com</email>
        </contributor>
        <contributor>
            <name>Ed Letifov</name>
            <email>e.letifov@chello.nl</email>
        </contributor>
        <contributor>
            <name>Kristian Koehler</name>
            <email>Kristian.Koehler@gmx.de</email>
        </contributor>
        <contributor>
            <name>Maas van den Berg</name>
            <email>email@dds.nl</email>
        </contributor>
        <contributor>
            <name>N. Alex Rupp</name>
            <email>alex@nrfx.com</email>
        </contributor>
        <contributor>
            <name>Siva</name>
            <email>siva@sivasundaram.com</email>
        </contributor>
    </contributors>

    <dependencies>
        <!-- Used for preprocessing our plans -->
        <dependency>
            <groupId>commons-jelly</groupId>
            <artifactId>commons-jelly-tags-velocity</artifactId>
            <version>${jelly_velocity_tags_version}</version>
        </dependency>
        <dependency>
            <groupId> velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>${velocity_version}</version>
        </dependency>

    </dependencies>

    <!-- =================== -->
    <!-- Build Specification -->
    <!-- =================== -->

    <build>
        <nagEmailAddress>dev@geronimo.apache.org</nagEmailAddress>
        <sourceDirectory>${basedir}/src/java</sourceDirectory>
        <unitTestSourceDirectory>${basedir}/src/test</unitTestSourceDirectory>

        <resources>
            <resource>
                <directory>${basedir}/src/java</directory>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/target/etc</directory>
                <includes>
                    <include>META-INF/geronimo-dependency.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}</directory>
                <includes>
                    <include>NOTICE.txt</include>
                </includes>
                <targetPath>META-INF</targetPath>
            </resource>
        </resources>

        <unitTest>
            <includes>
                <include>**/*Test.java</include>
            </includes>
            <excludes>
                <exclude>**/Abstract*.java</exclude>
            </excludes>
            <resources>
                <resource>
                    <directory>${basedir}/src</directory>
                    <includes>
                        <include>schema/**</include>
                    </includes>
                    <targetPath>META-INF</targetPath>
                </resource>
                <resource>
                    <directory>${basedir}/src/test-data</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
                <resource>
                    <directory>${basedir}/src/test-resources</directory>
                    <includes>
                        <include>**/*</include>
                    </includes>
                </resource>
            </resources>
        </unitTest>
    </build>


    <!-- ======= -->
    <!-- Reports -->
    <!-- ======= -->

    <reports>
        <report>maven-license-plugin</report>
        <report>maven-checkstyle-plugin</report>
        <report>maven-pmd-plugin</report>
        <!-- <report>maven-simian-plugin</report> -->
        <report>maven-jdepend-plugin</report>
        <report>maven-jxr-plugin</report>
        <report>maven-javadoc-plugin</report>
        <report>maven-junit-report-plugin</report>
        <report>maven-clover-plugin</report>
    </reports>

</project>
