<?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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>8</version>
  </parent>

  <groupId>org.apache.bigtop</groupId>
  <artifactId>bigtop</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>

  <name>Bigtop</name>
  <description>The development of packaging and tests of the Apache Hadoop
    ecosystem
  </description>
  <url>http://bigtop.apache.org/</url>
  <inceptionYear>2011</inceptionYear>

  <properties>
    <hadoop.version>2.6.0</hadoop.version>
    <!--An awful hack for BIGTOP-1429-->
    <hbase.version>0.98.5-hadoop2</hbase.version>
    <pig.version>0.12.1</pig.version>
    <pig-smoke.version>0.12.1</pig-smoke.version>
    <sqoop.version>1.4.5</sqoop.version>
    <sqoop2.version>1.99.4</sqoop2.version>
    <zookeeper.version>3.4.5</zookeeper.version>
    <giraph.version>1.0.0</giraph.version>
    <solr.version>4.6.0</solr.version>
    <spark.version>1.3.1</spark.version>
    <kafka.version>0.8.1.1</kafka.version>
    <phoenix.version>4.3.1</phoenix.version>
    <spark-smoke.version>${project.version}</spark-smoke.version>

    <itest-common.version>${project.version}</itest-common.version>

    <groovy.version>2.1.8</groovy.version>
    <maven-compiler-plugin.version>3.1</maven-compiler-plugin.version>
    <groovy-eclipse-compiler.version>2.8.0-01</groovy-eclipse-compiler.version>
    <gmaven.version>1.0</gmaven.version>
    <ant.version>1.8.2</ant.version>
    <commons.logging.version>1.1</commons.logging.version>
    <junit.version>4.11</junit.version>
    <slf4j.version>1.6.6</slf4j.version>
    <log4j.version>1.2.14</log4j.version>
    <antlr.version>3.4</antlr.version>
    <cxf.version>2.5.0</cxf.version>

    <maven.build.timestamp.format>
      yyyy-MM-dd'T'HH:mm
    </maven.build.timestamp.format>
    <buildDate>${maven.build.timestamp}</buildDate>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy.maven.runtime</groupId>
        <artifactId>gmaven-runtime-1.6</artifactId>
        <version>${gmaven.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-launcher</artifactId>
        <version>${ant.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant-junit</artifactId>
        <version>${ant.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant</artifactId>
        <version>${ant.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons.logging.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr</artifactId>
        <version>${antlr.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxrs</artifactId>
        <version>${cxf.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.bigtop.itest</groupId>
        <artifactId>itest-common</artifactId>
        <version>${itest-common.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <type>test-jar</type>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-minicluster</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common-test</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs-test</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-common</artifactId>
        <version>${hbase.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-common</artifactId>
        <version>${hbase.version}</version>
        <type>test-jar</type>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>${hbase.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>${hbase.version}</version>
        <type>test-jar</type>
      </dependency>
      <dependency>
        <groupId>org.apache.pig</groupId>
        <artifactId>pig</artifactId>
        <version>${pig.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.pig</groupId>
        <artifactId>pigsmoke</artifactId>
        <version>${pig-smoke.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.giraph</groupId>
        <artifactId>giraph</artifactId>
        <version>${giraph.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>${solr.version}</version>
      </dependency>
      <!-- Sqoop -->
      <dependency>
        <groupId>org.apache.sqoop</groupId>
        <artifactId>sqoop</artifactId>
        <classifier>hadoop200</classifier>
        <version>${sqoop.version}</version>
      </dependency>
      <!-- Sqoop2 -->
      <dependency>
        <groupId>org.apache.sqoop</groupId>
        <artifactId>sqoop-core</artifactId>
        <version>${sqoop2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.sqoop</groupId>
        <artifactId>sqoop-client</artifactId>
        <version>${sqoop2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.sqoop</groupId>
        <artifactId>sqoop-common</artifactId>
        <version>${sqoop2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>${spark.version}</version>
      </dependency>
       <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka</artifactId>
        <version>${kafka.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-core</artifactId>
        <version>${phoenix.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-flume</artifactId>
        <version>${phoenix.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-pig</artifactId>
        <version>${phoenix.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>2.6</version>
      </extension>
    </extensions>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.7</version>
          <configuration>
            <excludes>
              <exclude>.git/**</exclude>
              <exclude>.idea/**</exclude>
              <exclude>**/.gitignore</exclude>
              <!-- Test data with rigid structure and/or binary -->
              <exclude>bigtop-tests/test-artifacts/**/resources/**</exclude>
              <exclude>bigtop-tests/smoke-tests/tachyon/datafile</exclude>
              <exclude>bigtop-tests/smoke-tests/hive/passwd.ql</exclude>
              <exclude>bigtop-tests/smoke-tests/kite/sandwiches.csv</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/build/**</exclude>
              <exclude>**/.gradle/**</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>.gradle</exclude>
              <exclude>output/**</exclude>
              <exclude>MAINTAINERS.txt</exclude>
              <exclude>buildSrc/build/**</exclude>
              <exclude>bigtop-bigpetstore/bigpetstore-data-generator/**/input_data/**</exclude>
              <exclude>bigtop-deploy/puppet/**/*.yaml</exclude>
              <exclude>bigtop-deploy/puppet/config/*/id_hdfsuser*</exclude>
              <!-- Debian package files that have a rigid structure (* matches package name) -->
              <exclude>bigtop-packages/src/deb/*/*.dirs</exclude>
              <exclude>bigtop-packages/src/deb/*/dirs</exclude>
              <exclude>bigtop-packages/src/deb/*/*.install</exclude>
              <exclude>bigtop-packages/src/deb/*/*.include</exclude>
              <exclude>bigtop-packages/src/deb/**/include-binaries</exclude>
              <exclude>bigtop-packages/src/deb/**/format</exclude>
              <exclude>bigtop-packages/src/deb/*/*.manpages</exclude>
              <exclude>bigtop-packages/src/deb/*/*.docs</exclude>
              <exclude>bigtop-packages/src/deb/*/docs</exclude>
              <exclude>bigtop-packages/src/deb/*/compat</exclude>
              <exclude>bigtop-packages/src/deb/*/source/format</exclude>
              <exclude>bigtop-packages/src/deb/*/*.lintian-overrides</exclude>
              <exclude>bigtop-packages/src/deb/*/shlibs.local</exclude>
              <exclude>bigtop-packages/src/**/*.diff</exclude>
              <exclude>bigtop-packages/src/common/*/*.json</exclude>
              <exclude>bigtop-packages/src/common/**/*.default</exclude>
              <exclude>bigtop-repos/apt/distributions</exclude>
              <!-- Miscelaneous individual files -->
              <exclude>src/site/resources/bigtop.rdf</exclude>
              <exclude>src/site/resources/images/bigtop-logo.ai</exclude>
                <!--Excluding a file with FreeBSD Documentation License-->
              <exclude>src/site/resources/css/freebsd_docbook.css</exclude>
              <exclude>test/MANIFEST.txt</exclude>
              <exclude>
                bigtop-deploy/puppet/modules/hadoop/templates/taskcontroller.cfg
              </exclude>
              <exclude>
                bigtop-deploy/puppet/modules/hadoop/templates/container-executor.cfg
              </exclude>
              <exclude>bigtop-deploy/puppet/README.md</exclude>
              <exclude>bigtop-deploy/puppet/config/site.csv.example</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pdf-plugin</artifactId>
          <version>1.2</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-module-confluence</artifactId>
              <version>1.1.3</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.3</version>
          <configuration>
            <skipDeploy>true</skipDeploy>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.5.5</version>
          <configuration>
            <descriptorRefs>
              <descriptorRef>project</descriptorRef>
            </descriptorRefs>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>1.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <!--Build the documentation. We build it twice. Once as a single page and then again as multipage. -->
      <plugin>
        <groupId>com.agilejava.docbkx</groupId>
        <artifactId>docbkx-maven-plugin</artifactId>
        <version>2.0.14</version>
        <inherited>false</inherited>
        <dependencies>
          <dependency>
            <groupId>org.docbook</groupId>
            <artifactId>docbook-xml</artifactId>
            <version>4.4</version>
            <scope>runtime</scope>
          </dependency>
        </dependencies>
        <configuration>
          <sourceDirectory>${basedir}/src/site/docbookx/</sourceDirectory>
          <targetDirectory>${basedir}/target/site/book/</targetDirectory>
          <htmlCustomization>${basedir}/src/site/docbookx/customization.xsl
          </htmlCustomization>
          <chunkerOutputEncoding>UTF-8</chunkerOutputEncoding>
          <sectionAutolabelMaxDepth>100</sectionAutolabelMaxDepth>
          <sectionAutolabel>true</sectionAutolabel>
          <sectionLabelIncludesComponentLabel>true
          </sectionLabelIncludesComponentLabel>
          <tocMaxDepth>2</tocMaxDepth>
          <insertXrefPageNumber>yes</insertXrefPageNumber>
          <xincludeSupported>true</xincludeSupported>
          <useIdAsFilename>true</useIdAsFilename>
        </configuration>
        <executions>
          <execution>
            <id>multipage</id>
            <goals>
              <goal>generate-html</goal>
            </goals>
            <phase>pre-site</phase>
            <configuration>
              <navigShowtitles>true</navigShowtitles>
              <chunkedOutput>true</chunkedOutput>
              <imgSrcPath>../../images/</imgSrcPath>
              <htmlStylesheet>../../css/freebsd_docbook.css</htmlStylesheet>
            </configuration>
          </execution>
          <execution>
            <id>doc</id>
            <goals>
              <goal>generate-pdf</goal>
            </goals>
            <phase>pre-site</phase>
            <configuration>
              <showXslMessages>true</showXslMessages>
              <imgSrcPath>${basedir}/src/site/resources/images/</imgSrcPath>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <executions>
          <execution>
            <id>stage-for-scm-publish</id>
            <phase>post-site</phase>
            <goals>
              <goal>stage</goal>
            </goals>
            <configuration>
              <skipDeploy>false</skipDeploy>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase>
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.7</version>
      </plugin>
    </plugins>
  </reporting>

  <issueManagement>
    <system>JIRA</system>
    <url>http://issues.apache.org/jira/browse/BIGTOP</url>
  </issueManagement>
  <mailingLists>
    <mailingList>
      <name>Users</name>
      <post>user@bigtop.apache.org</post>
      <subscribe>user-subscribe@bigtop.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@bigtop.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/bigtop-user/</archive>
    </mailingList>
    <mailingList>
      <name>Development</name>
      <post>dev@bigtop.apache.org</post>
      <subscribe>dev-subscribe@bigtop.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@bigtop.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/bigtop-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Commits</name>
      <post>commits@bigtop.apache.org</post>
      <subscribe>commits-subscribe@bigtop.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@bigtop.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/bigtop-commits/
      </archive>
    </mailingList>
  </mailingLists>
  <scm>
    <connection>scm:git:https://git-wip-us.apache.org/repos/asf/bigtop.git
    </connection>
    <url>https://git-wip-us.apache.org/repos/asf?p=bigtop.git</url>
  </scm>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>scm:svn:https://svn.apache.org/repos/infra/websites/staging/bigtop/trunk/content</url>
    </site>
  </distributionManagement>

  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
