<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2013 Cloudera Inc.
~
~ 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>
  <groupId>org.kitesdk</groupId>
  <artifactId>kite-parent</artifactId>
  <version>1.1.0</version>
  <packaging>pom</packaging>

  <modules>
    <module>kite-hadoop-dependencies</module>
    <module>kite-hadoop-compatibility</module>
    <module>kite-hbase-dependencies</module>
    <module>kite-data</module>
    <module>kite-app-parent</module>
    <module>kite-maven-plugin</module>
    <module>kite-tools-parent</module>
    <module>kite-minicluster</module>
    <module>kite-morphlines</module>
  </modules>

  <name>Kite Development Kit</name>
  <description>
    Kite SDK is a set of libraries, tools, and docs to simplify the development
    of data-related systems.
  </description>

  <inceptionYear>2013</inceptionYear>
  <url>${url.project}</url>

  <developers>
    <developer>
      <id>tomwhite</id>
      <name>Tom White</name>
      <organization>Cloudera</organization>
    </developer>
    <developer>
      <id>esammer</id>
      <name>Eric Sammer</name>
      <organization>Cloudera</organization>
    </developer>
    <developer>
      <id>whoschek</id>
      <name>Wolfgang Hoschek</name>
      <organization>Cloudera</organization>
    </developer>
    <developer>
      <id>awarrington</id>
      <name>Adam Warrington</name>
      <organization>Cloudera</organization>
    </developer>
  </developers>
  
  <contributors> 
    <contributor> 
      <name>Prasanna Rajaperumal</name> 
      <organization>Cloudera</organization>
    </contributor> 
  </contributors> 

  <scm>
    <connection>scm:git:git://github.com/kite-sdk/kite.git</connection>
    <url>https://github.com/kite-sdk/kite</url>
    <developerConnection>scm:git:git@github.com:kite-sdk/kite.git
    </developerConnection>
    <tag>release-1.1.0</tag>
  </scm>

  <issueManagement>
    <system>JIRA</system>
    <url>${url.jira}</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>cdh-user@cloudera.org</name>
      <post>cdh-user@cloudera.org</post>
      <archive>http://groups.google.com/a/cloudera.org/group/cdh-user/?hl=en
      </archive>
      <subscribe>
        http://groups.google.com/a/cloudera.org/group/cdh-user/subscribe?hl=en
      </subscribe>
      <unsubscribe>
        http://groups.google.com/a/cloudera.org/group/cdh-user/subscribe?hl=en
      </unsubscribe>
    </mailingList>
  </mailingLists>
  <licenses>
    <license>
      <name>Apache Software License v2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- Java versions -->
    <javaVersion>1.7</javaVersion>
    <targetJavaVersion>1.6</targetJavaVersion>
    <Xdoclint /> <!-- set by the java8 profile to turn off doclint -->

    <!-- used by jdiff, semver rule -->
    <previous.project.version>1.0.0</previous.project.version>

    <cdh4.version>4.4.0</cdh4.version>
    <cdh5.version>5.4.2</cdh5.version>
    <cdh.version>${cdh4.version}</cdh.version>

    <!-- artifacts that depend on profiles -->
    <artifact.hadoop-deps>kite-hadoop-dependencies</artifact.hadoop-deps>
    <artifact.hadoop-test-deps>kite-hadoop-test-dependencies</artifact.hadoop-test-deps>
    <artifact.hbase-deps>kite-hbase-dependencies</artifact.hbase-deps>
    <artifact.hbase-test-deps>kite-hbase-test-dependencies</artifact.hbase-test-deps>

    <!-- Library versions -->
    <vers.avro>1.7.5</vers.avro>
    <vers.commons-codec>1.4</vers.commons-codec>
    <vers.commons-io>2.1</vers.commons-io>
    <vers.commons-logging>1.1.1</vers.commons-logging>
    <vers.commons-lang>2.5</vers.commons-lang>
    <vers.crunch-base>0.10.0</vers.crunch-base>
    <vers.crunch>${vers.crunch-base}-hadoop2</vers.crunch>
    <vers.crunch-cdh5>0.11.0-cdh${cdh5.version}</vers.crunch-cdh5>
    <vers.findbugs.jsr305>2.0.1</vers.findbugs.jsr305> <!-- don't update to 3.0.0 since that is JDK 1.7 or later -->
    <vers.flume>1.4.0</vers.flume>
    <vers.guava>11.0.2</vers.guava>
    <vers.hadoop1>1.2.1</vers.hadoop1>
    <vers.hadoop2>2.6.0</vers.hadoop2>
    <vers.hadoop-cdh4>2.0.0-cdh${cdh4.version}</vers.hadoop-cdh4>
    <vers.hadoop-mr1-cdh4>2.0.0-mr1-cdh${cdh4.version}</vers.hadoop-mr1-cdh4>
    <vers.hadoop-cdh5>2.6.0-cdh${cdh5.version}</vers.hadoop-cdh5>
    <vers.hbase1>0.94.6</vers.hbase1>
    <vers.hbase2>0.98.3-hadoop2</vers.hbase2>
    <vers.hbase-cdh4>0.94.6-cdh${cdh4.version}</vers.hbase-cdh4>
    <vers.hbase-cdh5>1.0.0-cdh${cdh5.version}</vers.hbase-cdh5>
    <vers.hive>0.13.0</vers.hive>
    <vers.hive-cdh5>1.1.0-cdh${cdh5.version}</vers.hive-cdh5>
    <vers.jetty>8.1.14.v20131031</vers.jetty>
    <vers.jexl>2.1.1</vers.jexl>
    <vers.compress>1.4.1</vers.compress>
    <vers.junit>4.10</vers.junit>
    <vers.log4j>1.2.16</vers.log4j>
    <vers.maven>2.0.6</vers.maven>
    <vers.mockito>1.9.5</vers.mockito>
    <vers.mojo-executor>1.5</vers.mojo-executor>
    <vers.oozie>3.3.2-cdh${cdh.version}</vers.oozie> <!-- OOZIE-1790 -->
    <vers.parquet>1.6.0</vers.parquet>
    <vers.plexus-utils>3.0</vers.plexus-utils>
    <vers.rat>0.9</vers.rat>
    <vers.slf4j>1.6.1</vers.slf4j>
    <vers.codahale.metrics>3.0.2</vers.codahale.metrics>
    <vers.typesafe.config>1.0.2</vers.typesafe.config>
    <vers.solr>4.10.3</vers.solr>
    <solr.expected.version>4.10.3</solr.expected.version> <!-- sanity check to verify we actually run against the expected version rather than some outdated version -->
    <vers.solr-cdh5>4.10.3</vers.solr-cdh5>
    <vers.tika>1.5</vers.tika>
    <vers.jackson>2.3.1</vers.jackson>
    <vers.opencsv>2.3</vers.opencsv>
    <vers.jodatime>2.3</vers.jodatime>
    <vers.jcommander>1.35</vers.jcommander>
    <vers.spark>1.0.0</vers.spark>
    <vers.hadoop-aws>2.6.0</vers.hadoop-aws>

    <!-- Plugin versions -->
    <vers.doxia-module-markdown>1.4</vers.doxia-module-markdown>
    <vers.doxia-module-confluence>1.4</vers.doxia-module-confluence>
    <vers.build-helper-maven-plugin>1.8</vers.build-helper-maven-plugin>
    <vers.findbugs-maven-plugin>3.0.0</vers.findbugs-maven-plugin>
    <vers.github-site-maven-plugin>0.10</vers.github-site-maven-plugin>
    <vers.maven-compiler-plugin>3.1</vers.maven-compiler-plugin>
    <vers.maven-enforcer-plugin>1.3.1</vers.maven-enforcer-plugin>
    <vers.semver-enforcer>0.9.18</vers.semver-enforcer>
    <vers.maven-javadoc-plugin>2.9.1</vers.maven-javadoc-plugin>
    <vers.maven-plugin-plugin>3.1</vers.maven-plugin-plugin>
    <vers.maven-project-info-reports-plugin>2.7</vers.maven-project-info-reports-plugin>
    <vers.maven-release-plugin>2.5.1</vers.maven-release-plugin>
    <vers.git-provider>1.8.1</vers.git-provider>
    <vers.maven-shade-plugin>2.3</vers.maven-shade-plugin>
    <vers.maven-site-plugin>3.3</vers.maven-site-plugin>
    <vers.maven-source-plugin>2.2.1</vers.maven-source-plugin>
    <vers.maven-surefire-plugin>2.14.1</vers.maven-surefire-plugin>
    <vers.maven-antrun-plugin>1.7</vers.maven-antrun-plugin>
    <vers.maven-jar-plugin>2.4</vers.maven-jar-plugin>
    <vers.maven-exec-plugin>1.2.1</vers.maven-exec-plugin>
    <vers.maven-assembly-plugin>2.4.1</vers.maven-assembly-plugin>

    <url.cloudera>http://www.cloudera.com</url.cloudera>
    <url.project>http://kitesdk.org/</url.project>
    <url.jira>http://issues.cloudera.com/browse/CDK</url.jira>

    <github.global.server>github</github.global.server>

    <!-- Until we add a mock, use S3 credentials from the environment -->
    <test.aws.access.key>${env.AWS_ACCESS_KEY_ID}</test.aws.access.key>
    <test.aws.s3.secret.key>${env.AWS_SECRET_ACCESS_KEY}</test.aws.s3.secret.key>
    <test.aws.s3.bucket>${env.S3_BUCKET}</test.aws.s3.bucket>
  </properties>

  <repositories>
    <repository>
      <id>com.cloudera.releases</id>
      <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>maven-twttr</id>
      <name>Twitter Public Maven Repo</name>
      <url>http://maven.twttr.com</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${vers.maven-enforcer-plugin}</version>
        <inherited>false</inherited>
        <configuration>
          <rules>
            <requireMavenVersion>
              <version>[3.0.0,)</version>
            </requireMavenVersion>
            <requireJavaVersion>
              <version>[${javaVersion}.0,${javaVersion}.1000}]</version>
            </requireJavaVersion>
          </rules>
        </configuration>
        <executions>
          <execution>
            <id>clean</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>pre-clean</phase>
          </execution>
          <execution>
            <id>default</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>validate</phase>
          </execution>
          <execution>
            <id>site</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>pre-site</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <version>${vers.maven-release-plugin}</version>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <goals>deploy</goals>
          <tagNameFormat>release-@{project.version}</tagNameFormat>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.scm</groupId>
            <artifactId>maven-scm-provider-gitexe</artifactId>
            <version>${vers.git-provider}</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>${vers.maven-site-plugin}</version>
        <dependencies>
           <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-module-confluence</artifactId>
              <version>${vers.doxia-module-confluence}</version>
           </dependency>
          <dependency>
            <groupId>lt.velykis.maven.skins</groupId>
            <artifactId>reflow-velocity-tools</artifactId>
            <version>1.0.0</version>
          </dependency>
          <!-- Reflow skin requires Velocity >= 1.7  -->
          <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
          </dependency>
        </dependencies>
        <configuration>
          <generateReports>true</generateReports>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
          <skipDeploy>true</skipDeploy> <!-- deploy using github plugin -->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${vers.maven-javadoc-plugin}</version>
        <inherited>false</inherited>
        <executions>
          <execution>
            <id>generate-jdiff-xml</id>
            <phase>site</phase>
            <goals>
              <goal>aggregate</goal>
            </goals>
            <configuration>
              <doclet>jdiff.JDiff</doclet>
              <docletPath>${project.basedir}/lib/jdiff.jar</docletPath>
              <additionalparam>
                -XDignore.symbol.file -apiname 'Kite SDK ${project.version}'
              </additionalparam>
              <useStandardDocletOptions>false</useStandardDocletOptions>
              <reportOutputDirectory>${project.reporting.outputDirectory}</reportOutputDirectory>
              <destDir>jdiff</destDir>
              <excludePackageNames>org.kitesdk.cli:org.kitesdk.compat:org.kitesdk.data.event,org.kitesdk.data.hbase:org.kitesdk.maven.plugins,org.kitesdk.minicluster.cli,org.kitesdk.morphline.shaded.*,*.spi,*.spi.*,*.impl,org.apache.*</excludePackageNames>
            </configuration>
          </execution>
          <execution>
            <id>generate-jdiff-site-report</id>
            <phase>site</phase>
            <goals>
              <goal>aggregate</goal>
            </goals>
            <configuration>
              <doclet>jdiff.JDiff</doclet>
              <docletPath>${project.basedir}/lib/jdiff.jar:${project.basedir}/lib/xerces.jar</docletPath>
              <additionalparam>
                -XDignore.symbol.file -oldapi 'Kite SDK ${previous.project.version}' -newapi 'Kite SDK ${project.version}' -oldapidir '${project.basedir}/src/jdiff' -newapidir '${project.reporting.outputDirectory}/jdiff' -javadocnew ../../apidocs/ -d ${project.reporting.outputDirectory}/jdiff
              </additionalparam>
              <useStandardDocletOptions>false</useStandardDocletOptions>
              <reportOutputDirectory>${project.reporting.outputDirectory}</reportOutputDirectory>
              <destDir>jdiff</destDir>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.sonatype.plugins</groupId>
        <artifactId>nexus-staging-maven-plugin</artifactId>
        <version>1.6.2</version>
        <extensions>true</extensions>
        <configuration>
          <serverId>ossrh</serverId>
          <nexusUrl>https://oss.sonatype.org/</nexusUrl>
          <autoReleaseAfterClose>false</autoReleaseAfterClose>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.github.github</groupId>
        <artifactId>site-maven-plugin</artifactId>
        <version>${vers.github-site-maven-plugin}</version>
        <executions>
          <execution>
            <goals>
              <goal>site</goal>
            </goals>
            <phase>site-deploy</phase>
            <configuration>
              <message>Creating site for ${project.artifactId}, ${project.version}</message>
              <path>docs/${project.version}</path>
              <!-- this does the trick to place every module in the correct subfolder -->
              <!-- https://github.com/github/maven-plugins/issues/22 -->
              <path>${project.distributionManagement.site.url}</path>
              <merge>true</merge>
              <dryRun>false</dryRun>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.avro</groupId>
          <artifactId>avro-maven-plugin</artifactId>
          <version>${vers.avro}</version>
          <configuration>
            <stringType>String</stringType>
            <createSetters>false</createSetters>
            <fieldVisibility>private</fieldVisibility>
          </configuration>
          <executions>
            <execution>
              <phase>generate-sources</phase>
              <goals>
                <goal>schema</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${vers.maven-compiler-plugin}</version>
          <configuration>
            <source>1.6</source>
            <target>${targetJavaVersion}</target>
            <compilerArgs>
              <arg>-Xlint:unchecked</arg>
            </compilerArgs>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${vers.maven-javadoc-plugin}</version>
          <configuration>
            <excludePackageNames>org.kitesdk.cli:org.kitesdk.compat:org.kitesdk.data.event,org.kitesdk.data.hbase:org.kitesdk.maven.plugins,org.kitesdk.minicluster.cli,org.kitesdk.morphline.shaded.*,*.spi,*.spi.*,*.impl,org.apache.*</excludePackageNames>
            <links>
              <link>http://avro.apache.org/docs/${vers.avro}/api/java/</link>
              <link>http://crunch.apache.org/apidocs/${vers.crunch-base}/</link>
              <link>http://hadoop.apache.org/docs/r${vers.hadoop2}/api/</link>
            </links>
            <additionalparam>${Xdoclint}</additionalparam>
            <maxmemory>1g</maxmemory>
          </configuration>
          <executions>
            <execution>
              <id>package.javadoc</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${vers.maven-plugin-plugin}</version>
          <configuration>
            <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
          </configuration>
          <executions>
            <execution>
              <id>generate-descriptor</id>
              <goals>
                <goal>descriptor</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${vers.maven-site-plugin}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-module-markdown</artifactId>
              <version>${vers.doxia-module-markdown}</version>
            </dependency>
            <dependency>
              <groupId>lt.velykis.maven.skins</groupId>
              <artifactId>reflow-velocity-tools</artifactId>
              <version>1.0.0</version>
            </dependency>
            <!-- Reflow skin requires Velocity >= 1.7  -->
            <dependency>
              <groupId>org.apache.velocity</groupId>
              <artifactId>velocity</artifactId>
              <version>1.7</version>
            </dependency>
          </dependencies>
          <configuration>
            <generateReports>false</generateReports>
            <inputEncoding>UTF-8</inputEncoding>
            <outputEncoding>UTF-8</outputEncoding>
            <skipDeploy>true</skipDeploy> <!-- deploy using github plugin -->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${vers.maven-source-plugin}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${vers.maven-surefire-plugin}</version>
          <configuration>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <!-- to debug class loading, add -verbose:class -->
            <!-- Downgrading to IPv4 due to these ZK issues-->
            <!-- https://issues.apache.org/jira/browse/ZOOKEEPER-1661-->
            <!-- https://issues.apache.org/jira/browse/ZOOKEEPER-1476-->
            <argLine>-Xmx512m -XX:MaxPermSize=128m -Djava.net.preferIPv4Stack=true</argLine> <!-- 512MB needed for HBase 2 -->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>${vers.rat}</version>
          <executions>
            <execution>
              <phase>test</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <excludes>
              <exclude>**/*.avro</exclude>
              <exclude>**/*.avsc</exclude>
              <exclude>**/*.avdl</exclude>
              <exclude>**/*.json</exclude> <!-- some test fixtures are json -->
              <exclude>**/*.iml</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/*.md</exclude>
              <exclude>**/*.md.vm</exclude>
              <exclude>**/*.txt</exclude>
              <exclude>**/.classpath</exclude>
              <exclude>**/.project</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/build/**</exclude>
              <exclude>**/metastore_db/**</exclude>
              <exclude>**/target/**</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <exclude>.git/**</exclude>
              <exclude>.gitignore</exclude>
              <exclude>.idea/**</exclude>
              <exclude>*/jdiff/*.xml</exclude>
              <exclude>**/scriptengine/java/**.java</exclude> <!-- BSD -->
              <exclude>**/morphline/saxon/ClassLoaderUtil.java</exclude> <!-- BSD -->
              <exclude>**/morphline/saxon/XMLStreamCopier.java</exclude> <!-- BSD -->
              <exclude>**/morphline/saxon/XMLInputFactoryCreator.java</exclude> <!-- BSD -->
              <exclude>**/src/test/resources/grok-dictionaries/**</exclude> <!-- ASL 2.0 -->
              <exclude>**/src/test/resources/test-documents/**</exclude> <!-- ASL 2.0 -->
              <exclude>**/src/site/**/*.confluence</exclude>
              <exclude>**/nbactions.xml</exclude> <!-- Netbeans configs, not checked in -->
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${vers.maven-antrun-plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${vers.maven-jar-plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${vers.findbugs-maven-plugin}</version>
          <configuration>
            <effort>Max</effort>
            <threshold>Low</threshold>
            <xmlOutput>true</xmlOutput>
          </configuration>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${vers.build-helper-maven-plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>${vers.maven-release-plugin}</version>
          <configuration>
            <goals>deploy</goals>
            <tagNameFormat>release-@{project.version}</tagNameFormat>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${vers.maven-shade-plugin}</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
              <configuration>
                <artifactSet>
                  <includes>
                    <include>com.google.guava:guava</include>
                  </includes>
                </artifactSet>
                <relocations>
                  <relocation>
                    <pattern>com.google.common</pattern>
                    <shadedPattern>org.kitesdk.shaded.com.google.common</shadedPattern>
                  </relocation>
                </relocations>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${vers.maven-project-info-reports-plugin}</version>
          <configuration>
            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${vers.maven-exec-plugin}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.9</version>
          <configuration>
            <downloadSources>true</downloadSources>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${vers.maven-assembly-plugin}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>${vers.maven-project-info-reports-plugin}</version>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
        <reportSets>
          <reportSet>
            <inherited>false</inherited>
            <reports>
              <report>index</report>
              <report>summary</report>
              <report>license</report>
              <report>project-team</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${vers.maven-javadoc-plugin}</version>
        <configuration>
          <excludePackageNames>org.kitesdk.cli:org.kitesdk.compat:org.kitesdk.data.event,org.kitesdk.data.hbase:org.kitesdk.maven.plugins,org.kitesdk.minicluster.cli,org.kitesdk.morphline.shaded.*,*.spi,*.spi.*,*.impl,org.apache.*</excludePackageNames>
          <groups>
            <group>
              <title>Data Core</title>
              <packages>org.kitesdk.data:org.kitesdk.data.filesystem:org.kitesdk.data.partition:org.kitesdk.data.spi</packages>
            </group>
            <group>
              <title>Data Crunch</title>
              <packages>org.kitesdk.data.crunch</packages>
            </group>
            <group>
              <title>Data Flume</title>
              <packages>org.kitesdk.data.flume</packages>
            </group>
            <group>
              <title>Data HCatalog</title>
              <packages>org.kitesdk.data.hcatalog</packages>
            </group>
            <group>
              <title>Data MapReduce</title>
              <packages>org.kitesdk.data.mapreduce</packages>
            </group>
            <group>
              <title>Minicluster</title>
              <packages>org.kitesdk.minicluster</packages>
            </group>
            <group>
              <title>Morphlines</title>
              <packages>org.kitesdk.morphline.*</packages>
            </group>
            <group>
              <title>Tools</title>
              <packages>org.kitesdk.tools</packages>
            </group>
          </groups>
          <links>
            <link>http://avro.apache.org/docs/${vers.avro}/api/java/</link>
            <link>http://crunch.apache.org/apidocs/${vers.crunch-base}/</link>
            <link>http://hadoop.apache.org/docs/r${vers.hadoop2}/api/</link>
          </links>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>aggregate</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>

  <dependencyManagement>
    <dependencies>
      <!-- Hadoop dependencies -->
      <dependency>
        <groupId>org.kitesdk</groupId>
        <artifactId>${artifact.hadoop-deps}</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.kitesdk</groupId>
        <artifactId>${artifact.hadoop-test-deps}</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.kitesdk</groupId>
        <artifactId>kite-hadoop-compatibility</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-aws</artifactId>
        <version>${vers.hadoop-aws}</version>
        <scope>provided</scope>
      </dependency>

      <!-- HBase dependencies -->
      <dependency>
        <groupId>org.kitesdk</groupId>
        <artifactId>${artifact.hbase-deps}</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>org.kitesdk</groupId>
        <artifactId>${artifact.hbase-test-deps}</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>test</scope>
      </dependency>

      <!-- Hive dependencies -->
      <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-exec</artifactId>
        <version>${vers.hive}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-serde</artifactId>
        <version>${vers.hive}</version>
        <exclusions>
          <exclusion>
            <!-- included in kite-hadoop-dependencies -->
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-mapred</artifactId>
          </exclusion>
          <exclusion>
            <!-- included in all modules -->
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- Crunch -->
      <dependency>
        <groupId>org.apache.crunch</groupId>
        <artifactId>crunch-core</artifactId>
        <version>${vers.crunch}</version>
        <scope>provided</scope>
      </dependency>

      <!-- Flume -->
      <dependency>
        <groupId>org.apache.flume</groupId>
        <artifactId>flume-ng-sdk</artifactId>
        <version>${vers.flume}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.flume</groupId>
        <artifactId>flume-ng-core</artifactId>
        <version>${vers.flume}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.flume</groupId>
        <artifactId>flume-ng-configuration</artifactId>
        <version>${vers.flume}</version>
      </dependency>

      <!-- Oozie -->
      <dependency>
        <groupId>org.apache.oozie</groupId>
        <artifactId>oozie-client</artifactId>
        <version>${vers.oozie}</version>
      </dependency>

      <!-- Spark -->
      <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>${vers.spark}</version>
      </dependency>

      <!-- Misc -->
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${vers.guava}</version>
      </dependency>
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>${vers.jodatime}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-jexl</artifactId>
        <version>${vers.jexl}</version>
      </dependency>

      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${vers.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${vers.slf4j}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${vers.log4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${vers.slf4j}</version>
      </dependency>

      <!-- Findbugs annotations -->
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>${vers.findbugs.jsr305}</version>
        <scope>provided</scope>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>${vers.findbugs.jsr305}</version>
        <scope>provided</scope>
      </dependency>

      <!-- Data formats -->
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${vers.avro}</version>
      </dependency>
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>parquet-hive-bundle</artifactId>
        <version>${vers.parquet}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>parquet-avro</artifactId>
        <version>${vers.parquet}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>net.sf.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>${vers.opencsv}</version>
      </dependency>


      <!-- Apache commons artifacts
           These entries may not be used directly, but can control the scope of
           a transitive dependency.
           -->
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${vers.commons-codec}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${vers.compress}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${vers.commons-io}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${vers.commons-logging}</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${vers.commons-lang}</version>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${vers.junit}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${vers.mockito}</version>
        <scope>test</scope>
      </dependency>

      <!-- Morphlines deps -->
      <dependency>
        <groupId>com.codahale.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${vers.codahale.metrics}</version>
      </dependency>
      <dependency>
        <groupId>com.codahale.metrics</groupId>
        <artifactId>metrics-healthchecks</artifactId>
        <version>${vers.codahale.metrics}</version>
      </dependency>
      <dependency>
        <groupId>com.codahale.metrics</groupId>
        <artifactId>metrics-servlets</artifactId>
        <version>${vers.codahale.metrics}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${vers.jetty}</version>
      </dependency>      
      <dependency>
        <groupId>com.typesafe</groupId>
        <artifactId>config</artifactId>
        <version>${vers.typesafe.config}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-test-framework</artifactId>
        <version>${vers.solr}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-cell</artifactId>
        <version>${vers.solr}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-core</artifactId>
        <version>${vers.solr}</version>
        <exclusions> <!-- unnecessary for client purposes -->
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-annotations</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-auth</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-xmp</artifactId>
        <version>${vers.tika}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-stax-api_1.0_spec</artifactId> <!-- needed by tika-parsers but already provided by JDK -->
          </exclusion>
          <exclusion>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId> <!-- used by com.drewnoakes:metadata-extractor:jar but replacing built-in XML parser with legacy xerces is scary and we don't need it -->
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>${vers.tika}</version>
      </dependency>
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>${vers.jcommander}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${vers.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${vers.jackson}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${vers.jackson}</version>
      </dependency>

      <!-- Maven plugin -->
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-project</artifactId>
        <version>${vers.maven}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${vers.maven}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId> <!-- use version from Hadoop -->
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>${vers.maven-plugin-plugin}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-utils</artifactId>
        <version>${vers.plexus-utils}</version>
      </dependency>
      <dependency>
        <groupId>org.twdata.maven</groupId>
        <artifactId>mojo-executor</artifactId>
        <version>${vers.mojo-executor}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <distributionManagement>
    <snapshotRepository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
    <repository>
      <id>ossrh</id>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <site>
      <id>kitesdk.website</id>
      <name>Kite SDK documentation</name>
      <url>docs/${project.version}</url>
    </site>
  </distributionManagement>

  <profiles>

    <profile>
      <id>check-binary-compat</id>
      <activation>
        <property>
          <name>check.compat</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-enforcer-plugin</artifactId>
              <version>${vers.maven-enforcer-plugin}</version>
              <dependencies>
                <dependency>
                  <groupId>org.semver</groupId>
                  <artifactId>enforcer-rule</artifactId>
                  <version>${vers.semver-enforcer}</version>
                </dependency>
              </dependencies>
              <executions>
                <execution>
                  <id>check</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>enforce</goal>
                  </goals>
                  <configuration>
                    <rules>
                      <requireBackwardCompatibility implementation="org.semver.enforcer.RequireBackwardCompatibility">
                        <!-- <compatibilityType>BACKWARD_COMPATIBLE_IMPLEMENTER</compatibilityType> -->
                        <compatibilityType>BACKWARD_COMPATIBLE_USER</compatibilityType>
                        <dumpDetails>true</dumpDetails>
                        <previousVersion>${previous.project.version}</previousVersion>
                        <excludes>
                          <exclude>org.kitesdk.data.spi.*</exclude>
                          <exclude>org.kitesdk.data.filesystem.*</exclude>
                          <exclude>org.kitesdk.data.hcatalog.*</exclude>
                          <exclude>org.kitesdk.data.hbase.*</exclude>
                        </excludes>
                      </requireBackwardCompatibility>
                    </rules>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.5</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>cdh4</id>
      <activation>
        <property>
          <name>hadoop.profile</name>
          <value>cdh4</value>
        </property>
      </activation>
      <properties>
        <!-- test cdh4 with the same jars that were produced for default profile -->
        <maven.main.skip>true</maven.main.skip>
        <artifact.hadoop-deps>kite-hadoop-cdh4-dependencies</artifact.hadoop-deps>
        <artifact.hadoop-test-deps>kite-hadoop-cdh4-test-dependencies</artifact.hadoop-test-deps>
        <artifact.hbase-deps>kite-hbase-cdh4-dependencies</artifact.hbase-deps>
        <artifact.hbase-test-deps>kite-hbase-cdh4-test-dependencies</artifact.hbase-test-deps>
        <cdh.version>${cdh4.version}</cdh.version>
        <vers.flume>1.4.0-cdh${cdh4.version}</vers.flume>
        <vers.hive>0.10.0-cdh${cdh4.version}</vers.hive>
        <vers.oozie>3.3.2-cdh${cdh4.version}</vers.oozie>
        <test.aws.access.key /> <!-- don't test S3 -->
      </properties>
    </profile>

    <profile>
      <id>cdh5</id>
      <activation>
        <property>
          <name>hadoop.profile</name>
          <value>cdh5</value>
        </property>
      </activation>
      <properties>
        <!-- test cdh5 with the same jars that were produced for default profile -->
        <maven.main.skip>true</maven.main.skip>
        <artifact.hadoop-deps>kite-hadoop-cdh5-dependencies</artifact.hadoop-deps>
        <artifact.hadoop-test-deps>kite-hadoop-cdh5-test-dependencies</artifact.hadoop-test-deps>
        <artifact.hbase-deps>kite-hbase-cdh5-dependencies</artifact.hbase-deps>
        <artifact.hbase-test-deps>kite-hbase-cdh5-test-dependencies</artifact.hbase-test-deps>
        <cdh.version>${cdh5.version}</cdh.version>
        <vers.crunch>${vers.crunch-cdh5}</vers.crunch>
        <vers.flume>1.5.0-cdh${cdh5.version}</vers.flume>
        <vers.hive>${vers.hive-cdh5}</vers.hive>
        <vers.oozie>4.1.0-cdh${cdh5.version}</vers.oozie>
        <vers.solr>${vers.solr-cdh5}</vers.solr>
        <solr.expected.version>${vers.solr-cdh5}</solr.expected.version> <!-- sanity check to verify we actually run against the expected version rather than some outdated version -->
        <vers.hadoop-aws>2.6.0-cdh${cdh5.version}</vers.hadoop-aws>
        <vers.spark>1.3.0-cdh${cdh5.version}</vers.spark>
      </properties>
    </profile>

    <profile>
      <id>jdk1.6</id>
      <activation>
        <jdk>1.6</jdk>
      </activation>
      <properties>
        <vers.findbugs-maven-plugin>2.5.2</vers.findbugs-maven-plugin>
      </properties>
    </profile>

    <profile>
      <id>jdk1.8+</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <properties>                  
        <!-- see http://stackoverflow.com/questions/15886209/maven-is-not-working-in-java-8-when-javadoc-tags-are-incomplete -->
        <Xdoclint>-Xdoclint:none</Xdoclint>
      </properties>
    </profile>

  </profiles>

</project>
