<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <!--
        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.
    -->
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>apache</artifactId>
        <groupId>org.apache</groupId>
        <version>18</version>
    </parent>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-master</artifactId>
    <version>3-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Velocity - Master POM</name>
    <description>Master POM for Velocity</description>
    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/VELOCITY</url>
    </issueManagement>
    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/velocity/maven/trunk/pom</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/velocity/maven/trunk/pom</developerConnection>
        <url>http://svn.apache.org/repos/asf/velocity/maven/trunk/pom</url>
    </scm>
    <developers>

        <developer>
            <name>Claude Brisson</name>
            <id>cbrisson</id>
            <url>http://claude.brisson.info</url>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Nathan Bubna</name>
            <id>nbubna</id>
            <email>nathan@esha.com</email>
            <organization>ESHA Research</organization>
            <roles>
                <role>Java developer</role>
                <role>PMC Chair</role>
            </roles>
        </developer>

        <developer>
            <name>Will Glass-Husain</name>
            <id>wglass</id>
            <email>wglass@forio.com</email>
            <organization>Forio Business Simulations</organization>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Marinó A. Jónsson</name>
            <id>marino</id>
            <email>marinoj@centrum.is</email>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Geir Magnusson Jr.</name>
            <id>geirm</id>
            <email>geirm@optonline.net</email>
            <organization>Independent (DVSL Maven)</organization>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Daniel Rall</name>
            <id>dlr</id>
            <email>dlr@finemaltcoding.com</email>
            <organization>CollabNet, Inc.</organization>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Henning P. Schmiedehausen</name>
            <id>henning</id>
            <organization>The Henning Schmiedehausen Organization</organization>
            <roles>
                <role>Java developer</role>
                <role>PMC Member</role>
            </roles>
            <timezone>-7</timezone>
        </developer>

        <developer>
            <name>Jon S. Stevens</name>
            <id>jons</id>
            <roles>
                <role>Emeritus</role>
            </roles>
        </developer>

        <developer>
            <name>Jason van Zyl</name>
            <id>jvanzyl</id>
            <roles>
                <role>Emeritus</role>
            </roles>
        </developer>

        <developer>
            <name>Christopher Schultz</name>
            <id>schultz</id>
            <roles>
                <role>Java developer</role>
            </roles>
            <timezone>-5</timezone>
        </developer>

        <developer>
            <name>Antonio Petrelli</name>
            <id>apetrelli</id>
            <roles>
                <role>Emeritus</role>
            </roles>
            <timezone>+1</timezone>
        </developer>

        <developer>
            <name>Sergiu Dumitriu</name>
            <id>sdumitriu</id>
            <url>http://purl.org/net/sergiu</url>
            <timezone>-4</timezone>
            <roles>
                <role>PMC Member</role>
            </roles>
        </developer>

        <developer>
            <name>Dishara Wijewardana</name>
            <id>dishara</id>
            <roles>
                <role>Java developer</role>
            </roles>
        </developer>
	
        <developer>
            <name>Mike Kienenberger</name>
            <id>mkienenb</id>
            <roles>
                <role>Java developer</role>
            </roles>
        </developer>

    </developers>

    <mailingLists>
        <mailingList>
            <name>general</name>
            <subscribe>general-subscribe@velocity.apache.org</subscribe>
            <unsubscribe>general-unsubscribe@velocity.apache.org</unsubscribe>
            <post>general@velocity.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/velocity-general/</archive>
        </mailingList>

        <mailingList>
            <name>user</name>
            <subscribe>user-subscribe@velocity.apache.org</subscribe>
            <unsubscribe>user-unsubscribe@velocity.apache.org</unsubscribe>
            <post>user@velocity.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/velocity-user/</archive>
            <otherArchives>
                <otherArchive>http://www.nabble.com/Velocity---User-f347.html</otherArchive>
                <otherArchive>http://www.mail-archive.com/user@velocity.apache.org/</otherArchive>
            </otherArchives>
        </mailingList>

        <mailingList>
            <name>dev</name>
            <subscribe>dev-subscribe@velocity.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@velocity.apache.org</unsubscribe>
            <post>dev@velocity.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/velocity-dev/</archive>
            <otherArchives>
                <otherArchive>http://www.nabble.com/Velocity---Dev-f346.html</otherArchive>
                <otherArchive>http://www.mail-archive.com/dev@velocity.apache.org/</otherArchive>
            </otherArchives>
        </mailingList>

        <mailingList>
            <name>commits</name>
            <subscribe>commits-subscribe@velocity.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@velocity.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/velocity-commits/</archive>
        </mailingList>
    </mailingLists>
</project>
