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

<!--
   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 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">
    <name>Tez</name>
    <description>Tez is an application framework which allows for a complex directed-acyclic-graph of tasks for processing data and is built atop Apache Hadoop YARN.</description>
    <url>http://tez.apache.org/</url>
    <modelVersion>4.0.0</modelVersion>

    <parent>
      <groupId>org.apache.tez</groupId>
      <artifactId>tez</artifactId>
      <version>0.10.1</version>
    </parent>
    <artifactId>tez-docs</artifactId>
    <packaging>pom</packaging>

    <licenses>
      <license>
        <name>Apache 2</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        <distribution>repo</distribution>
      </license>
    </licenses>

    <issueManagement>
        <system>Jira</system>
        <url>http://issues.apache.org/jira/browse/TEZ</url>
    </issueManagement>

    <mailingLists>
        <mailingList>
            <name>User list</name>
            <subscribe>mailto:user-subscribe@tez.apache.org
            </subscribe>
            <unsubscribe>mailto:user-unsubscribe@tez.apache.org
            </unsubscribe>
            <post>mailto:user@tez.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/tez-user/</archive>
        </mailingList>
        <mailingList>
            <name>Development list</name>
            <subscribe>mailto:dev-subscribe@tez.apache.org
            </subscribe>
            <unsubscribe>mailto:dev-unsubscribe@tez.apache.org
            </unsubscribe>
            <post>mailto:dev@tez.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/tez-dev/</archive>
        </mailingList>
        <mailingList>
            <name>Commit list</name>
            <subscribe>mailto:commits-subscribe@tez.apache.org
            </subscribe>
            <unsubscribe>mailto:commits-unsubscribe@tez.apache.org
            </unsubscribe>
            <post>mailto:commits@tez.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/tez-commits/</archive>
        </mailingList>
        <mailingList>
            <name>JIRA Issues list</name>
            <subscribe>mailto:issues-subscribe@tez.apache.org
            </subscribe>
            <unsubscribe>mailto:issues-unsubscribe@tez.apache.org
            </unsubscribe>
            <post>mailto:issues@tez.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/tez-issues/</archive>
        </mailingList>
    </mailingLists>

    <developers>
      <developer>
        <id>acmurthy</id>
        <name>Arun C. Murthy</name>
        <email>acmurthy@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>bikas</id>
        <name>Bikas Saha</name>
        <email>bikas@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>billgraham</id>
        <name>Bill Graham</name>
        <email>billgraham@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>bobby</id>
        <name>Robert Evans</name>
        <email>bobby@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>cdouglas</id>
        <name>Chris Douglas</name>
        <email>cdouglas@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>daryn</id>
        <name>Daryn Sharp</name>
        <email>daryn@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>ddas</id>
        <name>Devaraj Das</name>
        <email>ddas@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>gopalv</id>
        <name>Gopal Vijayaraghavan</name>
        <email>gopalv@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>gunther</id>
        <name>Gunther Hagleitner</name>
        <email>gunther@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>hashutosh</id>
        <name>Ashutosh Chauhan</name>
        <email>hashutosh@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>harishjp</id>
        <name>Harish JP</name>
        <email>harishjp@apache.org</email>
        <timezone>+5.5</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>hitesh</id>
        <name>Hitesh Shah</name>
        <email>hitesh@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>jeagles</id>
        <name>Jonathan Eagles</name>
        <email>jeagles@apache.org</email>
        <timezone>-6</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>jghoman</id>
        <name>Jakob Homan</name>
        <email>jghoman@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>jitendra</id>
        <name>Jitendra Pandey</name>
        <email>jitendra@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>jlowe</id>
        <name>Jason Lowe</name>
        <email>jlowe@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>julien</id>
        <name>Julien Le Dem</name>
        <email>julien@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>abstractdog</id>
        <name>Laszlo Bodor</name>
        <email>abstractdog@apache.org</email>
        <timezone>+1</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>kamrul</id>
        <name>Mohammad Kamrul Islam</name>
        <email>kamrul@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>kevinwilfong</id>
        <name>Kevin Wilfong</name>
        <email>kevinwilfong@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>kshukla</id>
        <name>Kuhu Shukla</name>
        <email>kshukla@apache.org</email>
        <timezone>-6</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>mattmann</id>
        <name>Chris Mattmann</name>
        <email>mattmann@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>mliddell</id>
        <name>Mike Liddell</name>
        <email>mliddell@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>mingma</id>
        <name>Ming Ma</name>
        <email>mingma@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>namit</id>
        <name>Namit Jain</name>
        <email>namit@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>nroberts</id>
        <name>Nathan Roberts</name>
        <email>nroberts@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>omalley</id>
        <name>Owen O’Malley</name>
        <email>omalley@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>prakash</id>
        <name>Prakash Ramachandran</name>
        <email>prakash@apache.org</email>
        <timezone>+5.5</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>     
      <developer>
        <id>rbalamohan</id>
        <name>Rajesh Balamohan</name>
        <email>rbalamohan@apache.org</email>
        <timezone>+5.5</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>rohini</id>
        <name>Rohini Palaniswamy</name>
        <email>rohini@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>sseth</id>
        <name>Siddharth Seth</name>
        <email>sseth@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>tassapola</id>
        <name>Tassapol Athiapinya</name>
        <email>tassapola@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>tgraves</id>
        <name>Thomas Graves</name>
        <email>tgraves@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>tomwhite</id>
        <name>Tom White</name>
        <email>tomwhite@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>vikram</id>
        <name>Vikram Dixit</name>
        <email>vikram@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>vinodkv</id>
        <name>Vinod Kumar Vavilapalli</name>
        <email>vinodkv@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>zhiyuany</id>
        <name>Zhiyuan Yang</name>
        <email>zhiyuany@apache.org</email>
        <timezone>-8</timezone>
        <roles>
          <role>Committer</role>
        </roles>
      </developer>
      <developer>
        <id>zjffdu</id>
        <name>Jeff Zhang</name>
        <email>zjffdu@apache.org</email>
        <timezone>+8</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
      <developer>
        <id>sree</id>
        <name>Sreenath Somarajapuram</name>
        <email>sree@apache.org</email>
        <timezone>+5.5</timezone>
        <roles>
          <role>PMC</role>
        </roles>
      </developer>
    </developers>

    <organization>
        <name>Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>

    <build>
      <resources>
        <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
        </resource>
      </resources>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <configuration>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <configuration>
            <outputDirectory>./target</outputDirectory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <configuration>
            <skip>true</skip>
          </configuration>
        </plugin>
      </plugins>
    </build>

    <reporting>
      <excludeDefaults>true</excludeDefaults>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <configuration>
            <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
          </configuration>
          <reportSets>
            <reportSet>
              <reports>
                <report>project-team</report>
                <report>mailing-list</report>
                <report>issue-tracking</report>
                <report>license</report>
              </reports>
            </reportSet>
          </reportSets>
        </plugin>
      </plugins>
    </reporting>

</project>
