<?xml version="1.0" encoding="UTF-8"?>
<!--
  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 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>14</version>
  </parent>
  <groupId>org.apache.hive</groupId>
  <artifactId>hive</artifactId>
  <version>0.14.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Hive</name>
  <url>http://hive.apache.org</url>
  <prerequisites>
    <maven>2.2.1</maven>
  </prerequisites>

  <modules>
    <module>accumulo-handler</module>
    <module>ant</module>
    <module>beeline</module>
    <module>cli</module>
    <module>common</module>
    <module>contrib</module>
    <module>hbase-handler</module>
    <module>hcatalog</module>
    <module>hwi</module>
    <module>jdbc</module>
    <module>metastore</module>
    <module>odbc</module>
    <module>ql</module>
    <module>serde</module>
    <module>service</module>
    <module>shims</module>
    <module>testutils</module>
    <module>packaging</module>
  </modules>

  <properties>
    <hive.version.shortname>0.14.0</hive.version.shortname>

    <!-- Build Properties -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
    <maven.repo.local>${settings.localRepository}</maven.repo.local>
    <hive.path.to.root>.</hive.path.to.root>
    <hive.jdbc.driver.classifier>standalone</hive.jdbc.driver.classifier>
    <checkstyle.conf.dir>${hive.path.to.root}/checkstyle</checkstyle.conf.dir>

    <!-- Test Properties -->
    <test.extra.path></test.extra.path>
    <test.hive.hadoop.classpath>${maven.test.classpath}</test.hive.hadoop.classpath>
    <test.log4j.scheme>file://</test.log4j.scheme>
    <test.tmp.dir>${project.build.directory}/tmp</test.tmp.dir>
    <test.tmp.dir.uri>file://${test.tmp.dir}</test.tmp.dir.uri>
    <test.warehouse.dir>${project.build.directory}/warehouse</test.warehouse.dir>
    <test.warehouse.scheme>pfile://</test.warehouse.scheme>

    <!-- Plugin and Plugin Dependency Versions -->
    <ant.contrib.version>1.0b3</ant.contrib.version>
    <datanucleus.maven.plugin.version>3.3.0-release</datanucleus.maven.plugin.version>
    <maven.antrun.plugin.version>1.7</maven.antrun.plugin.version>
    <maven.assembly.plugin.version>2.3</maven.assembly.plugin.version>
    <maven.checkstyle.plugin.version>2.12.1</maven.checkstyle.plugin.version>
    <maven.compiler.plugin.version>3.1</maven.compiler.plugin.version>
    <maven.enforcer.plugin.version>1.3.1</maven.enforcer.plugin.version>
    <maven.install.plugin.version>2.4</maven.install.plugin.version>
    <maven.jar.plugin.version>2.2</maven.jar.plugin.version>
    <maven.javadoc.plugin.version>2.4</maven.javadoc.plugin.version>
    <maven.shade.plugin.version>2.2</maven.shade.plugin.version>
    <maven.surefire.plugin.version>2.16</maven.surefire.plugin.version>
    <maven.war.plugin.version>2.4</maven.war.plugin.version>
    <maven.dependency.plugin.version>2.8</maven.dependency.plugin.version>
    <maven.eclipse.plugin.version>2.9</maven.eclipse.plugin.version>
    <maven.build-helper.plugin.version>1.8</maven.build-helper.plugin.version>

    <!-- Library Dependency Versions -->
    <accumulo.version>1.6.0</accumulo.version>
    <activemq.version>5.5.0</activemq.version>
    <ant.version>1.9.1</ant.version>
    <antlr.version>3.4</antlr.version>
    <avro.version>1.7.5</avro.version>
    <bonecp.version>0.8.0.RELEASE</bonecp.version>
    <datanucleus-api-jdo.version>3.2.6</datanucleus-api-jdo.version>
    <datanucleus-core.version>3.2.10</datanucleus-core.version>
    <datanucleus-rdbms.version>3.2.9</datanucleus-rdbms.version>
    <commons-cli.version>1.2</commons-cli.version>
    <commons-codec.version>1.4</commons-codec.version>
    <commons-compress.version>1.4.1</commons-compress.version>
    <commons-exec.version>1.1</commons-exec.version>
    <commons-httpclient.version>3.0.1</commons-httpclient.version>
    <commons-io.version>2.4</commons-io.version>
    <commons-lang.version>2.4</commons-lang.version>
    <commons-lang3.version>3.1</commons-lang3.version>
    <commons-logging.version>1.1.3</commons-logging.version>
    <commons-pool.version>1.5.4</commons-pool.version>
    <commons-dbcp.version>1.4</commons-dbcp.version>
    <derby.version>10.10.1.1</derby.version>
    <guava.version>11.0.2</guava.version>
    <groovy.version>2.1.6</groovy.version>
    <hadoop-20.version>0.20.2</hadoop-20.version>
    <hadoop-20S.version>1.2.1</hadoop-20S.version>
    <hadoop-23.version>2.4.0</hadoop-23.version>
    <hadoop.bin.path>${basedir}/${hive.path.to.root}/testutils/hadoop</hadoop.bin.path>
    <hbase.hadoop1.version>0.98.3-hadoop1</hbase.hadoop1.version>
    <hbase.hadoop2.version>0.98.3-hadoop2</hbase.hadoop2.version>
    <!-- httpcomponents are not always in version sync -->
    <httpcomponents.client.version>4.2.5</httpcomponents.client.version>
    <httpcomponents.core.version>4.2.5</httpcomponents.core.version>
    <jackson.version>1.9.2</jackson.version>
    <javaewah.version>0.3.2</javaewah.version>
    <javolution.version>5.5.1</javolution.version>
    <jdo-api.version>3.0.1</jdo-api.version>
    <jetty.version>7.6.0.v20120127</jetty.version>
    <jersey.version>1.14</jersey.version>
    <jline.version>0.9.94</jline.version>
    <jms.version>1.1</jms.version>
    <jodd.version>3.5.2</jodd.version>
    <json.version>20090211</json.version>
    <junit.version>4.10</junit.version>
    <kryo.version>2.22</kryo.version>
    <libfb303.version>0.9.0</libfb303.version>
    <libthrift.version>0.9.0</libthrift.version>
    <log4j.version>1.2.16</log4j.version>
    <mockito-all.version>1.9.5</mockito-all.version>
    <mina.version>2.0.0-M5</mina.version>
    <!--netty is not a direct dependency but due to a change
        in artifact name and given that zookeeper < 3.5
        requires netty < 3.6.0 we force hadoops version
      -->
    <netty.version>3.4.0.Final</netty.version>
    <parquet.version>1.5.0</parquet.version>
    <pig.version>0.12.0</pig.version>
    <protobuf.version>2.5.0</protobuf.version>
    <stax.version>1.0.1</stax.version>
    <slf4j.version>1.7.5</slf4j.version>
    <ST4.version>4.0.4</ST4.version>
    <tez.version>0.5.0</tez.version>
    <super-csv.version>2.2.0</super-csv.version>
    <tempus-fugit.version>1.1</tempus-fugit.version>
    <snappy.version>0.2</snappy.version>
    <wadl-resourcedoc-doclet.version>1.4</wadl-resourcedoc-doclet.version>
    <velocity.version>1.5</velocity.version>
    <xerces.version>2.9.1</xerces.version>
    <zookeeper.version>3.4.5</zookeeper.version>
    <jpam.version>1.1</jpam.version>
    <felix.version>2.4.0</felix.version>
  </properties>

  <repositories>
    <repository>
      <id>datanucleus</id>
      <name>datanucleus maven repository</name>
      <url>http://www.datanucleus.org/downloads/maven2</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>warn</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>glassfish-repository</id>
      <url>http://maven.glassfish.org/content/groups/glassfish</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>glassfish-repo-archive</id>
      <url>http://maven.glassfish.org/content/groups/glassfish</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
     <repository>
       <id>sonatype-snapshot</id>
       <url>https://oss.sonatype.org/content/repositories/snapshots</url>
       <releases>
         <enabled>false</enabled>
       </releases>
       <snapshots>
         <enabled>false</enabled>
       </snapshots>
     </repository>
  </repositories>

  <!-- Hadoop dependency management is done at the bottom under profiles -->
  <dependencyManagement>
    <dependencies>
      <!-- dependencies are always listed in sorted order by groupId, artifectId -->
      <dependency>
        <groupId>com.esotericsoftware.kryo</groupId>
        <artifactId>kryo</artifactId>
        <version>${kryo.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.tempus-fugit</groupId>
        <artifactId>tempus-fugit</artifactId>
        <version>${tempus-fugit.version}</version>
      </dependency>
      <dependency>
        <groupId>com.googlecode.javaewah</groupId>
        <artifactId>JavaEWAH</artifactId>
        <version>${javaewah.version}</version>
      </dependency>
      <dependency>
        <groupId>com.jolbox</groupId>
        <artifactId>bonecp</artifactId>
        <version>${bonecp.version}</version>
      </dependency>
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>parquet-hadoop-bundle</artifactId>
        <version>${parquet.version}</version>
      </dependency>
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>parquet-column</artifactId>
        <version>${parquet.version}</version>
        <classifier>tests</classifier>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey.contribs</groupId>
        <artifactId>wadl-resourcedoc-doclet</artifactId>
        <version>${wadl-resourcedoc-doclet.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>${commons-cli.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>${commons-httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commons-lang.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.jdo</groupId>
        <artifactId>jdo-api</artifactId>
        <version>${jdo-api.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>jms</artifactId>
        <version>${jms.version}</version>
      </dependency>
      <dependency>
        <groupId>javolution</groupId>
        <artifactId>javolution</artifactId>
        <version>${javolution.version}</version>
      </dependency>
      <dependency>
        <groupId>jline</groupId>
        <artifactId>jline</artifactId>
        <version>${jline.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>antlr-runtime</artifactId>
        <version>${antlr.version}</version>
      </dependency>
      <dependency>
        <groupId>org.antlr</groupId>
        <artifactId>ST4</artifactId>
        <version>${ST4.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.ant</groupId>
        <artifactId>ant</artifactId>
        <version>${ant.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons-compress.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-exec</artifactId>
        <version>${commons-exec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-core</artifactId>
        <version>${accumulo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-fate</artifactId>
        <version>${accumulo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-minicluster</artifactId>
        <version>${accumulo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-start</artifactId>
        <version>${accumulo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.accumulo</groupId>
        <artifactId>accumulo-trace</artifactId>
        <version>${accumulo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-core</artifactId>
        <version>${activemq.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>kahadb</artifactId>
        <version>${activemq.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro-mapred</artifactId>
        <classifier>hadoop2</classifier>
        <version>${avro.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>${derby.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpcomponents.client.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcomponents.core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>${velocity.version}</version>
      </dependency>
      <dependency>
        <groupId>stax</groupId>
        <artifactId>stax-api</artifactId>
        <version>${stax.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.pig</groupId>
        <artifactId>pig</artifactId>
        <version>${pig.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libfb303</artifactId>
        <version>${libfb303.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${libthrift.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-core-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-jaxrs</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-xc</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty.aggregate</groupId>
        <artifactId>jetty-all-server</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-api-jdo</artifactId>
        <version>${datanucleus-api-jdo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-core</artifactId>
        <version>${datanucleus-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.datanucleus</groupId>
        <artifactId>datanucleus-rdbms</artifactId>
        <version>${datanucleus-rdbms.version}</version>
      </dependency>
      <dependency>
        <groupId>org.iq80.snappy</groupId>
        <artifactId>snappy</artifactId>
        <version>${snappy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>${json.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito-all.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>${xerces.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!-- dependencies are always listed in sorted order by groupId, artifectId -->
    <!-- global dependencies -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <!-- plugins are always listed in sorted order by groupId, artifectId -->
        <plugin>
          <groupId>org.antlr</groupId>
          <artifactId>antlr3-maven-plugin</artifactId>
          <version>${antlr.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.plugin.version}</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven.antrun.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>ant-contrib</groupId>
              <artifactId>ant-contrib</artifactId>
              <version>${ant.contrib.version}</version>
              <exclusions>
                <exclusion>
                  <groupId>ant</groupId>
                  <artifactId>ant</artifactId>
                </exclusion>
              </exclusions>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven.assembly.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>${maven.eclipse.plugin.version}</version>
          <configuration>
            <downloadJavadocs>true</downloadJavadocs>
            <downloadSources>true</downloadSources>
            <workspaceActiveCodeStyleProfileName>Hive</workspaceActiveCodeStyleProfileName>
            <workspaceCodeStylesURL>${basedir}/dev-support/eclipse-styles.xml</workspaceCodeStylesURL>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven.checkstyle.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven.enforcer.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven.install.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${maven.shade.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven.jar.plugin.version}</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>${maven.war.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.datanucleus</groupId>
          <artifactId>datanucleus-maven-plugin</artifactId>
          <version>${datanucleus.maven.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.datanucleus</groupId>
              <artifactId>datanucleus-core</artifactId>
              <version>${datanucleus-core.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${felix.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven.dependency.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${maven.build-helper.plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <!-- plugins are always listed in sorted order by groupId, artifectId -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>define-classpath</id>
            <phase>process-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <exportAntProperties>true</exportAntProperties>
              <target>
                <property name="maven.test.classpath" refid="maven.test.classpath"/>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>setup-test-dirs</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <delete dir="${test.tmp.dir}" />
                <delete dir="${test.warehouse.dir}" />
                <mkdir dir="${test.tmp.dir}" />
                <mkdir dir="${test.warehouse.dir}" />
                <mkdir dir="${test.tmp.dir}/conf" />
                <!-- copies hive-site.xml so it can be modified -->
                <copy todir="${test.tmp.dir}/conf/">
                  <fileset dir="${basedir}/${hive.path.to.root}/data/conf/"/>
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <filesets>
            <fileset>
              <directory>./</directory>
              <includes>
                <include>datanucleus.log</include>
                <include>derby.log</include>
              </includes>
              <followSymlinks>false</followSymlinks>
            </fileset>
            <fileset>
              <directory>build</directory>
              <followSymlinks>false</followSymlinks>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>${checkstyle.conf.dir}/checkstyle.xml</configLocation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>**/TestSerDe.java</exclude>
            <exclude>**/TestHiveMetaStore.java</exclude>
            <exclude>**/ql/exec/vector/util/*.java</exclude>
            <exclude>**/ql/exec/vector/udf/legacy/*.java</exclude>
            <exclude>**/ql/exec/vector/udf/generic/*.java</exclude>
            <exclude>**/TestHiveServer2Concurrency.java</exclude>
            <exclude>**/TestHiveMetaStore.java</exclude>
          </excludes>
          <redirectTestOutputToFile>true</redirectTestOutputToFile>
          <reuseForks>false</reuseForks>
          <failIfNoTests>false</failIfNoTests>
          <argLine>-Xmx2048m -XX:MaxPermSize=512m</argLine>
          <additionalClasspathElements>
            <additionalClasspathElement>${test.tmp.dir}/conf</additionalClasspathElement>
            <additionalClasspathElement>${basedir}/${hive.path.to.root}/conf</additionalClasspathElement>
          </additionalClasspathElements>
          <environmentVariables>
            <TZ>US/Pacific</TZ>
            <LANG>en_US.UTF-8</LANG>
            <HADOOP_CLASSPATH>${test.tmp.dir}/conf:${basedir}/${hive.path.to.root}/conf</HADOOP_CLASSPATH>
            <HIVE_HADOOP_TEST_CLASSPATH>${test.hive.hadoop.classpath}</HIVE_HADOOP_TEST_CLASSPATH>
            <PATH>${env.PATH}${test.extra.path}</PATH>
          </environmentVariables>
          <systemPropertyVariables>
            <build.dir>${project.build.directory}</build.dir>
            <!-- required by zk test ClientBase -->
            <build.test.dir>${test.tmp.dir}</build.test.dir>
            <!-- required by a few tests to find the derby jar -->
            <derby.version>${derby.version}</derby.version>
            <derby.stream.error.file>${test.tmp.dir}/derby.log</derby.stream.error.file>
            <hadoop.bin.path>${hadoop.bin.path}</hadoop.bin.path>
            <!-- required by Hadoop's JobHistory -->
            <hadoop.log.dir>${test.tmp.dir}</hadoop.log.dir>
            <hive.root>${basedir}/${hive.path.to.root}/</hive.root>
            <hive.version>${project.version}</hive.version>
            <!-- required for hive-exec jar path and tests which reference a jar -->
            <maven.local.repository>${maven.repo.local}</maven.local.repository>
            <mapred.job.tracker>local</mapred.job.tracker>
            <log4j.configuration>${test.log4j.scheme}${test.tmp.dir}/conf/hive-log4j.properties</log4j.configuration>
            <log4j.debug>true</log4j.debug>
            <!-- don't diry up /tmp -->
            <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir>
            <!-- Hadoop's minidfs class uses this -->
            <test.build.data>${test.tmp.dir}</test.build.data>
            <!-- required by QTestUtil -->
            <test.data.files>${basedir}/${hive.path.to.root}/data/files</test.data.files>
            <test.data.dir>${basedir}/${hive.path.to.root}/data/files</test.data.dir>
            <test.tmp.dir>${test.tmp.dir}</test.tmp.dir>
            <test.tmp.dir.uri>${test.tmp.dir.uri}</test.tmp.dir.uri>
            <test.dfs.mkdir>${test.dfs.mkdir}</test.dfs.mkdir>
            <test.output.overwrite>${test.output.overwrite}</test.output.overwrite>
            <test.warehouse.dir>${test.warehouse.scheme}${test.warehouse.dir}</test.warehouse.dir>
            <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
            <!-- EnforceReadOnlyTables hook and QTestUtil -->
            <test.src.tables>src,src1,srcbucket,srcbucket2,src_json,src_thrift,src_sequencefile,srcpart,alltypesorc,src_hbase</test.src.tables>
            <java.security.krb5.conf>${test.tmp.dir}/conf/krb5.conf</java.security.krb5.conf>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
	<groupId>org.apache.rat</groupId>
	<artifactId>apache-rat-plugin</artifactId>
	<version>0.10</version>
	<configuration>
	  <excludes>
	    <exclude>data/**</exclude>
	    <exclude>conf/**</exclude>
	    <exclude>checkstyle/**</exclude>
	    <exclude>bin/**</exclude>
	    <exclude>itests/**</exclude>
	    <exclude>docs/**</exclude>
	    <exclude>**/*.txt</exclude>
	    <exclude>**/*.log</exclude>
	    <exclude>**/*.arcconfig</exclude>
	    <exclude>**/package-info.java</exclude>
	    <exclude>**/*.properties</exclude>
	    <exclude>**/*.q</exclude>
	    <exclude>**/*.q.out</exclude>
	    <exclude>**/*.xml</exclude>
	    <exclude>**/gen/**</exclude>
	    <exclude>**/scripts/**</exclude>
	    <exclude>**/resources/**</exclude>
	    <exclude>**/*.rc</exclude>
	    <exclude>**/*.rcfile</exclude>
	    <exclude>**/*.qv</exclude>
	    <exclude>**/*.out</exclude>
	    <exclude>**/RecordTestObj.java</exclude>
	    <exclude>**/*.m</exclude>
	    <exclude>**/gen-java/**</exclude>
	    <exclude>**/testdata/**</exclude>
	    <exclude>**/ptest2/*.md</exclude>
	  </excludes>
	</configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>thriftif</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>generate-thrift-sources</id>
                <phase>generate-sources</phase>
                <configuration>
                  <target>
                    <taskdef name="for" classname="net.sf.antcontrib.logic.ForTask"
                      classpathref="maven.plugin.classpath" />
                    <property name="thrift.args" value="-I ${thrift.home} --gen java:beans,hashcode --gen cpp --gen php --gen py --gen rb"/>
                    <property name="thrift.gen.dir" value="${basedir}/src/gen/thrift"/>
                    <delete dir="${thrift.gen.dir}"/>
                    <mkdir dir="${thrift.gen.dir}"/>
                    <for param="thrift.file">
                      <path>
                        <fileset dir="." includes="if/*.thrift,if/test/*.thrift" />
                      </path>
                      <sequential>
                        <echo message="Generating Thrift code for @{thrift.file}"/>
                        <exec executable="${thrift.home}/bin/thrift"  failonerror="true" dir=".">
                          <arg line="${thrift.args} -I ${basedir}/include -I ${basedir}/.. -o ${thrift.gen.dir} @{thrift.file} " />
                        </exec>
                      </sequential>
                    </for>
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-property</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireProperty>
                      <property>thrift.home</property>
                    </requireProperty>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>sources</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>javadoc</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- hadoop profiles in the root pom are only used for dependency management -->
    <profile>
      <id>hadoop-1</id>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>${hadoop-20S.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-test</artifactId>
            <version>${hadoop-20S.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-tools</artifactId>
            <version>${hadoop-20S.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <version>${hbase.hadoop1.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop-compat</artifactId>
            <version>${hbase.hadoop1.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop1-compat</artifactId>
            <version>${hbase.hadoop1.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>${hbase.hadoop1.version}</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
    </profile>
    <profile>
      <id>hadoop-2</id>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <version>${hbase.hadoop2.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop-compat</artifactId>
            <version>${hbase.hadoop2.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-hadoop2-compat</artifactId>
            <version>${hbase.hadoop2.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>${hbase.hadoop2.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minicluster</artifactId>
            <version>${hadoop-23.version}</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
    </profile>
    <profile>
      <!-- Windows-specific settings to allow unit tests to work -->
      <id>windows-test</id>
      <activation>
        <os>
          <family>Windows</family>
       </os>
      </activation>
      <build>
        <plugins>
          <!-- maven.test.classpath (used for HIVE_HADOOP_TEST_CLASSPATH) exceeds the 8K Windows -->
          <!-- command shell limit which causes tests which call hadoop command to fail.         -->
          <!-- Workaround is to copy all necessary jars to a single location to shorten the      -->
          <!-- the length of the environment variable.                                           -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
              <execution>
                <id>copy-dependencies</id>
                <phase>package</phase>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                  <outputDirectory>${project.build.directory}/deplibs/</outputDirectory>
                  <overWriteReleases>false</overWriteReleases>
                  <overWriteSnapshots>false</overWriteSnapshots>
                  <overWriteIfNewer>true</overWriteIfNewer>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <properties>
        <hadoop.bin.path>${basedir}/${hive.path.to.root}/testutils/hadoop.cmd</hadoop.bin.path>
        <test.extra.path>;${env.HADOOP_HOME}/bin</test.extra.path>
        <test.hive.hadoop.classpath>${project.build.directory}/deplibs/*</test.hive.hadoop.classpath>
        <test.tmp.dir.uri>file:///${test.tmp.dir}</test.tmp.dir.uri>
        <test.log4j.scheme>file:/</test.log4j.scheme>
      </properties>
    </profile>
  </profiles>
</project>
