<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<!--
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


  ON MVN COMPILE NOT WORKING

  If you wondering why 'mvn compile' does not work building HBase
  (in particular, if you are doing it for the first time), instead do
  'mvn package'.  If you are interested in the full story, see
  https://issues.apache.org/jira/browse/HBASE-6795.

-->
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>18</version>
    <relativePath/>
    <!-- no parent resolution -->
  </parent>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase</artifactId>
  <packaging>pom</packaging>
  <version>HBASE-22466-1.5.0</version>
  <name>Apache HBase</name>
  <description>
    Apache HBase is the Hadoop database. Use it when you need
    random, realtime read/write access to your Big Data.
    This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters
    of commodity hardware.
  </description>
  <url>https://hbase.apache.org</url>
  <inceptionYear>2007</inceptionYear>
  <!-- Set here so we can consistently use the correct name, even on branches with
       an ASF parent pom older than v15. Also uses the url from v18.
    -->
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <modules>
    <module>hbase-resource-bundle</module>
    <module>hbase-server</module>
    <module>hbase-thrift</module>
    <module>hbase-rest</module>
    <module>hbase-shell</module>
    <module>hbase-protocol</module>
    <module>hbase-client</module>
    <module>hbase-hadoop-compat</module>
    <module>hbase-common</module>
    <module>hbase-procedure</module>
    <module>hbase-it</module>
    <module>hbase-examples</module>
    <module>hbase-prefix-tree</module>
    <module>hbase-assembly</module>
    <module>hbase-testing-util</module>
    <module>hbase-annotations</module>
    <module>hbase-checkstyle</module>
    <module>hbase-external-blockcache</module>
    <module>hbase-shaded</module>
    <module>hbase-archetypes</module>
    <module>hbase-metrics-api</module>
    <module>hbase-metrics</module>
  </modules>
  <!--Add apache snapshots in case we want to use unreleased versions of plugins:
      e.g. surefire 2.18-SNAPSHOT-->
  <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots</id>
      <url>https://repository.apache.org/snapshots/</url>
    </pluginRepository>
  </pluginRepositories>
  <scm>
    <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase.git</developerConnection>
    <url>https://gitbox.apache.org/repos/asf?p=hbase.git</url>
  </scm>
  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/HBASE</url>
  </issueManagement>
  <ciManagement>
    <system>hudson</system>
    <url>https://hudson.zones.apache.org/hudson/view/HBase/job/HBase-TRUNK/</url>
  </ciManagement>
  <mailingLists>
    <mailingList>
      <name>User List</name>
      <subscribe>user-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe>
      <post>user@hbase.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/hbase-user/</archive>
      <otherArchives>
        <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
        <otherArchive>https://search-hadoop.com/?q=&amp;fc_project=HBase</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Developer List</name>
      <subscribe>dev-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe>
      <post>dev@hbase.apache.org</post>
      <archive>https://mail-archives.apache.org/mod_mbox/hbase-dev/</archive>
      <otherArchives>
        <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
        <otherArchive>https://search-hadoop.com/?q=&amp;fc_project=HBase</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Commits List</name>
      <subscribe>commits-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
      <archive>https://mail-archives.apache.org/mod_mbox/hbase-commits/</archive>
    </mailingList>
    <mailingList>
      <name>Issues List</name>
      <subscribe>issues-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe>
      <archive>https://mail-archives.apache.org/mod_mbox/hbase-issues/</archive>
    </mailingList>
    <mailingList>
      <name>Builds List</name>
      <subscribe>builds-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe>
      <archive>https://mail-archives.apache.org/mod_mbox/hbase-builds/</archive>
    </mailingList>
  </mailingLists>
  <developers>
    <developer>
      <id>acube123</id>
      <name>Amitanand S. Aiyer</name>
      <email>acube123@apache.org</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>apurtell</id>
      <name>Andrew Purtell</name>
      <email>apurtell@apache.org</email>
      <timezone>-8</timezone>
      <organization>Intel</organization>
      <organizationUrl>https://www.intel.com</organizationUrl>
    </developer>
    <developer>
      <id>anoopsamjohn</id>
      <name>Anoop Sam John</name>
      <email>anoopsamjohn@apache.org</email>
      <timezone>+5</timezone>
      <organization>Intel</organization>
      <organizationUrl>https://www.intel.com</organizationUrl>
    </developer>
    <developer>
      <id>ddas</id>
      <name>Devaraj Das</name>
      <email>ddas@apache.org</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>dmeil</id>
      <name>Doug Meil</name>
      <email>dmeil@apache.org</email>
      <timezone>-5</timezone>
      <organization>Explorys</organization>
      <organizationUrl>https://www.explorys.com</organizationUrl>
    </developer>
    <developer>
      <id>enis</id>
      <name>Enis Soztutar</name>
      <email>enis@apache.org</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>fenghh</id>
      <name>Honghua Feng</name>
      <email>fenghh@apache.org</email>
      <timezone>+8</timezone>
      <organization>Xiaomi</organization>
      <organizationUrl>https://www.xiaomi.com</organizationUrl>
    </developer>
    <developer>
      <id>garyh</id>
      <name>Gary Helmling</name>
      <email>garyh@apache.org</email>
      <timezone>-8</timezone>
      <organization>Continuuity</organization>
      <organizationUrl>https://www.continuuity.com</organizationUrl>
    </developer>
    <developer>
      <id>gchanan</id>
      <name>Gregory Chanan</name>
      <email>gchanan@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>jdcryans</id>
      <name>Jean-Daniel Cryans</name>
      <email>jdcryans@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>jeffreyz</id>
      <name>Jeffrey Zhong</name>
      <email>jeffreyz@apache.org</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>jyates</id>
      <name>Jesse Yates</name>
      <email>jyates@apache.org</email>
      <timezone>-8</timezone>
      <organization>Salesforce.com</organization>
      <organizationUrl>https://www.salesforce.com/</organizationUrl>
    </developer>
    <developer>
      <id>jgray</id>
      <name>Jonathan Gray</name>
      <email>jgray@fb.com</email>
      <timezone>-8</timezone>
      <organization>Continuuity</organization>
      <organizationUrl>https://www.continuuity.com</organizationUrl>
    </developer>
    <developer>
      <id>jmhsieh</id>
      <name>Jonathan Hsieh</name>
      <email>jmhsieh@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>jxiang</id>
      <name>Jimmy Xiang</name>
      <email>jxiang@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>kannan</id>
      <name>Kannan Muthukkaruppan</name>
      <email>kannan@fb.com</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>karthik</id>
      <name>Karthik Ranganathan</name>
      <email>kranganathan@fb.com</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>larsgeorge</id>
      <name>Lars George</name>
      <email>larsgeorge@apache.org</email>
      <timezone>+1</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com/</organizationUrl>
    </developer>
    <developer>
      <id>larsh</id>
      <name>Lars Hofhansl</name>
      <email>larsh@apache.org</email>
      <timezone>-8</timezone>
      <organization>Salesforce.com</organization>
      <organizationUrl>https://www.salesforce.com/</organizationUrl>
    </developer>
    <developer>
      <id>liangxie</id>
      <name>Liang Xie</name>
      <email>liangxie@apache.org</email>
      <timezone>+8</timezone>
      <organization>Xiaomi</organization>
      <organizationUrl>https://www.xiaomi.com/</organizationUrl>
    </developer>
    <developer>
      <id>mbautin</id>
      <name>Mikhail Bautin</name>
      <email>mbautin@apache.org</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>ndimiduk</id>
      <name>Nick Dimiduk</name>
      <email>ndimiduk@apache.org</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>nspiegelberg</id>
      <name>Nicolas Spiegelberg</name>
      <email>nspiegelberg@fb.com</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>rawson</id>
      <name>Ryan Rawson</name>
      <email>rawson@apache.org</email>
      <timezone>-8</timezone>
      <organization>DrawnToScale</organization>
      <organizationUrl>https://drawntoscale.com/</organizationUrl>
    </developer>
    <developer>
      <id>sershe</id>
      <name>Sergey Shelukhin</name>
      <email>sershe@apache.org</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>stack</id>
      <name>Michael Stack</name>
      <email>stack@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com/</organizationUrl>
    </developer>
    <developer>
      <id>tedyu</id>
      <name>Ted Yu</name>
      <email>yuzhihong@gmail.com</email>
      <timezone>-8</timezone>
      <organization>Hortonworks</organization>
      <organizationUrl>https://www.hortonworks.com</organizationUrl>
    </developer>
    <developer>
      <id>todd</id>
      <name>Todd Lipcon</name>
      <email>todd@apache.org</email>
      <timezone>-8</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>rajeshbabu</id>
      <name>Rajeshbabu Chintaguntla</name>
      <email>rajeshbabu@apache.org</email>
      <timezone>+5</timezone>
      <organization>Huawei</organization>
      <organizationUrl>https://www.huawei.com</organizationUrl>
    </developer>
    <developer>
      <id>ramkrishna</id>
      <name>Ramkrishna S Vasudevan</name>
      <email>ramkrishna@apache.org</email>
      <timezone>+5</timezone>
      <organization>Intel</organization>
      <organizationUrl>https://www.intel.in</organizationUrl>
    </developer>
    <developer>
      <id>liyin</id>
      <name>Liyin Tang</name>
      <email>liyin.tang@fb.com</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>nkeywal</id>
      <name>Nicolas Liochon</name>
      <email>nkeywal@apache.org</email>
      <timezone>+1</timezone>
      <organization>Scaled Risk</organization>
      <organizationUrl>https://www.scaledrisk.com</organizationUrl>
    </developer>
    <developer>
      <id>eclark</id>
      <name>Elliott Clark</name>
      <email>eclark@apache.org</email>
      <timezone>-8</timezone>
      <organization>Facebook</organization>
      <organizationUrl>https://www.facebook.com</organizationUrl>
    </developer>
    <developer>
      <id>mbertozzi</id>
      <name>Matteo Bertozzi</name>
      <email>mbertozzi@apache.org</email>
      <timezone>0</timezone>
      <organization>Cloudera</organization>
      <organizationUrl>https://www.cloudera.com</organizationUrl>
    </developer>
    <developer>
      <id>zjushch</id>
      <name>Chunhui Shen</name>
      <email>zjushch@apache.org</email>
      <timezone>+8</timezone>
      <organization>Taobao</organization>
      <organizationUrl>https://www.taobao.com</organizationUrl>
    </developer>
  </developers>
  <repositories>
    <repository>
      <id>apache release</id>
      <url>https://repository.apache.org/content/repositories/releases/</url>
    </repository>
    <repository>
      <id>repository.jboss.org</id>
      <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven.dependency.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
           <version>${javadoc.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.5</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.4.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <!--You need this profile. It'll sign your artifacts.
                I'm not sure if this config. actually works though.
                I've been specifying -Papache-release on the command-line
             -->
            <releaseProfiles>apache-release</releaseProfiles>
            <!--This stops our running tests for each stage of maven release.
                But it builds the test jar.  From SUREFIRE-172.
              -->
            <arguments>-Dmaven.test.skip.exec ${arguments}</arguments>
            <goals>${goals}</goals>
            <pomFileName>pom.xml</pomFileName>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.version}</version>
          <configuration>
            <source>${compileSource}</source>
            <target>${compileSource}</target>
            <showWarnings>true</showWarnings>
            <showDeprecation>false</showDeprecation>
            <compilerArgument>-Xlint:-options</compilerArgument>
          </configuration>
        </plugin>
        <!-- Test oriented plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
          <dependencies>
            <!-- by default surefire selects dynamically the connector to the unit tests
              tool. We want to use always the same as the different connectors can have different
              bugs and behaviour. -->
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>${surefire.provider}</artifactId>
              <version>${surefire.version}</version>
            </dependency>
          </dependencies>
          <!-- Generic testing configuration for all packages -->
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <skip>${surefire.skipFirstPart}</skip>
            <forkCount>${surefire.firstPartForkCount}</forkCount>
            <reuseForks>false</reuseForks>
            <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
            <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
            <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
            <systemPropertyVariables>
              <test.build.classes>${test.build.classes}</test.build.classes>
            </systemPropertyVariables>

            <excludes>
	      <!-- users can add -D option to skip particular test classes
		   ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java
	      -->
	      <exclude>${test.exclude.pattern}</exclude>
	    </excludes>
          </configuration>
          <executions>
            <execution>
              <id>secondPartTestsExecution</id>
              <phase>test</phase>
              <goals>
                <goal>test</goal>
              </goals>
              <configuration>
                <skip>${surefire.skipSecondPart}</skip>
                <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
                <reuseForks>false</reuseForks>
                <forkCount>${surefire.secondPartForkCount}</forkCount>
                <groups>${surefire.secondPartGroups}</groups>
                <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${surefire.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <configuration>
            <filesets>
              <fileset>
                <!--dfs tests have build dir hardcoded. Clean it as part of
               clean target-->
                <directory>build</directory>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>1.3</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs.maven.version}</version>
          <!--NOTE: Findbugs 3.0.4 requires jdk7-->
          <configuration>
            <excludeFilterFile>${project.basedir}/../dev-support/findbugs-exclude.xml</excludeFilterFile>
            <findbugsXmlOutput>true</findbugsXmlOutput>
            <xmlOutput>true</xmlOutput>
            <effort>Max</effort>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.9.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven.antrun.version}</version>
        </plugin>
        <plugin>
          <groupId>org.jamon</groupId>
          <artifactId>jamon-maven-plugin</artifactId>
          <version>${jamon.plugin.version}</version>
        </plugin>
        <!-- Make a jar and put the sources in the jar.
        In the parent pom, so submodules will do the right thing. -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>prepare-package</phase>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!-- General configuration for submodules who want to build a test jar -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <executions>
            <execution>
              <phase>prepare-package</phase>
              <goals>
                  <!--This goal will install a -test.jar when we do install
                      See https://maven.apache.org/guides/mini/guide-attached-tests.html
                   -->
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <excludes>
              <exclude>hbase-site.xml</exclude>
              <exclude>hdfs-site.xml</exclude>
              <exclude>log4j.properties</exclude>
              <exclude>mapred-queues.xml</exclude>
              <exclude>mapred-site.xml</exclude>
              <exclude>zoo.cfg</exclude>
            </excludes>
          </configuration>
        </plugin>
        <!-- General config for eclipse classpath/settings -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.9</version>
        </plugin>
        <!--This plugin's configuration is used to store Eclipse m2e settings
            only. It has no influence on the Maven build itself. m2e does not
            provide any safeguards against rogue maven plugins that leak
            classloaders, modify random files inside workspace or throw nasty
            exceptions to fail the build.
            Top level doesn't do any specific configuration currently - left
            to modules to decide what they want to bind, sans those plugins
            defined in this pom. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <versionRange>[0.6.2.201302030002,)</versionRange>
                    <goals>
                      <goal>prepare-agent</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <versionRange>[1.0.1,)</versionRange>
                    <goals>
                      <goal>enforce</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <versionRange>[1.5,)</versionRange>
                    <goals>
                      <goal>process</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                  <pluginExecution>
                    <pluginExecutionFilter>
                      <groupId>org.codehaus.mojo</groupId>
                      <artifactId>buildnumber-maven-plugin</artifactId>
                      <versionRange>[1.3,)</versionRange>
                      <goals>
                        <goal>create-timestamp</goal>
                      </goals>
                    </pluginExecutionFilter>
                    <action>
                      <execute>
                        <runOnConfiguration>true</runOnConfiguration>
                        <runOnIncremental>true</runOnIncremental>
                      </execute>
                    </action>
                  </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <!-- excludes are inherited -->
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.11</version>
          <configuration>
            <excludes>
              <exclude>**/*.versionsBackup</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/.*</exclude>
              <exclude>**/*.tgz</exclude>
              <exclude>**/*.orig</exclude>
              <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
              <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
              <exclude>**/0000000000000016310</exclude>
              <exclude>**/.idea/**</exclude>
              <exclude>**/*.iml</exclude>
              <exclude>**/CHANGES.txt</exclude>
              <exclude>**/generated/**</exclude>
              <exclude>**/gen-*/**</exclude>
              <!-- No material contents -->
              <exclude>conf/regionservers</exclude>
              <exclude>**/*.avpr</exclude>
              <exclude>**/*.svg</exclude>
              <!-- non-standard notice file from jruby included by reference -->
              <exclude>**/src/main/resources/META-INF/LEGAL</exclude>
              <!-- MIT: https://github.com/asciidoctor/asciidoctor/blob/master/LICENSE.adoc -->
              <exclude>**/src/main/asciidoc/hbase.css</exclude>
              <!-- MIT https://jquery.org/license -->
              <exclude>**/jquery.min.js</exclude>
              <exclude>**/jquery.tablesorter.min.js</exclude>
              <!-- vector graphics -->
              <exclude>**/*.vm</exclude>
              <!-- apache doxia generated -->
              <exclude>**/control</exclude>
              <exclude>**/conffile</exclude>
              <!-- auto-gen docs -->
              <exclude>docs/*</exclude>
              <exclude>logs/*</exclude>
              <!--  exclude source control files -->
              <exclude>.git/**</exclude>
              <exclude>.svn/**</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/patchprocess/**</exclude>
              <exclude>src/main/site/resources/repo/**</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <exclude>**/rat.txt</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven.assembly.version}</version>
          <configuration>
            <!--Defer to the hbase-assembly sub-module.  It
             does all assembly-->
            <skipAssembly>true</skipAssembly>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-maven-plugins</artifactId>
          <version>${hadoop-two.version}</version>
          <configuration>
            <protocVersion>${protobuf.version}</protocVersion>
            <protocCommand>${protoc.path}</protocCommand>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>2.17</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.hbase</groupId>
              <artifactId>hbase-checkstyle</artifactId>
              <version>${project.version}</version>
            </dependency>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${checkstyle.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <configLocation>hbase/checkstyle.xml</configLocation>
            <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven.enforcer.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>negate-license-bundles-property</id>
            <goals>
              <goal>bsh-property</goal>
            </goals>
            <configuration>
              <source>skip.license.check = !${license.bundles.dependencies};</source>
              <properties>
                <property>skip.license.check</property>
              </properties>
            </configuration>
          </execution>
          <!-- sets where to find the generated LICENSE files -->
          <execution>
            <id>create-license-file-path-property</id>
            <goals>
              <goal>regex-property</goal>
            </goals>
            <configuration>
              <name>license.aggregate.path</name>
              <value>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</value>
              <regex>\\</regex>
              <replacement>/</replacement>
              <failIfNoMatch>false</failIfNoMatch>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven.enforcer.version}</version>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>extra-enforcer-rules</artifactId>
            <version>${extra.enforcer.version}</version>
          </dependency>
        </dependencies>
        <!-- version set by parent -->
        <executions>
          <execution>
            <id>hadoop-profile-min-maven-min-java-banned-xerces</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <!-- Help people activate profiles correctly -->
                <evaluateBeanshell>
                  <condition>System.getProperty("hadoop-profile", "").isEmpty()</condition>
                  <message>The hadoop-profile property is unused, did you mean to set hadoop.profile instead?</message>
                </evaluateBeanshell>
                <!-- The earliest maven version we verify builds for via ASF Jenkins -->
                <requireMavenVersion>
                  <version>[${maven.min.version},)</version>
                  <message>Maven is out of date.
  HBase requires at least version ${maven.min.version} of Maven to properly build from source.
  You appear to be using an older version. You can use either "mvn -version" or
  "mvn enforcer:display-info" to verify what version is active.
  See the reference guide on building for more information: https://hbase.apache.org/book.html#build
                  </message>
                </requireMavenVersion>
                <!-- The earliest JVM version we verify builds for via ASF Jenkins -->
                <requireJavaVersion>
                  <version>[${java.min.version},)</version>
                  <message>Java is out of date.
  HBase requires at least version ${java.min.version} of the JDK to properly build from source.
  You appear to be using an older version. You can use either "mvn -version" or
  "mvn enforcer:display-info" to verify what version is active.
  See the reference guide on building for more information: https://hbase.apache.org/book.html#build
                  </message>
                </requireJavaVersion>
                <bannedDependencies>
                  <excludes>
                    <exclude>xerces:xercesImpl</exclude>
                  </excludes>
                  <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-jsr305</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>com.google.code.findbugs:jsr305</exclude>
                  </excludes>
                  <message>We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321.</message>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>check-aggregate-license</id>
            <!-- must check after LICENSE is built at 'generate-resources' -->
            <phase>process-resources</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <evaluateBeanshell>
                  <condition>
                    File license = new File("${license.aggregate.path}");

                    // Beanshell does not support try-with-resources,
                    // so we must close this scanner manually
                    Scanner scanner = new Scanner(license);

                    while (scanner.hasNextLine()) {
                      if (scanner.nextLine().startsWith("ERROR:")) {
                        scanner.close();
                        return false;
                      }
                    }
                    scanner.close();
                    return true;
                  </condition>
                  <message>
                    License errors detected, for more detail find ERROR in
                    ${license.aggregate.path}
                  </message>
                </evaluateBeanshell>
              </rules>
              <skip>${skip.license.check}</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- parent-module only plugins -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xml-maven-plugin</artifactId>
        <version>1.0</version>
        <inherited>false</inherited>
        <executions>
          <execution>
            <!-- Run the hbase-default.xml through a stylesheet so can show it in doc-->
            <goals>
              <goal>transform</goal>
            </goals>
            <phase>pre-site</phase>
          </execution>
        </executions>
        <configuration>
          <transformationSets>
            <!-- For asciidoc -->
            <transformationSet>
              <!--Reaching up and over into common sub-module for hbase-default.xml-->
              <dir>${basedir}/hbase-common/src/main/resources/</dir>
              <includes>
                <include>hbase-default.xml</include>
              </includes>
              <stylesheet>${basedir}/src/main/xslt/configuration_to_asciidoc_chapter.xsl</stylesheet>
              <fileMappers>
                <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
                  <pattern>^(.*)\.xml$</pattern>
                  <replacement>$1.adoc</replacement>
                </fileMapper>
              </fileMappers>
              <outputDir>${basedir}/target/asciidoc</outputDir>
            </transformationSet>
          </transformationSets>
        </configuration>
      </plugin>
      <!-- Special configuration for findbugs just in the parent so
      the filter file location can be more general (see definition in pluginManagement) -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <executions>
          <execution>
            <inherited>false</inherited>
            <goals>
              <goal>findbugs</goal>
            </goals>
            <configuration>
              <excludeFilterFile>${basedir}/dev-support/findbugs-exclude.xml</excludeFilterFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-checkstyle</artifactId>
            <version>${project.version}</version>
          </dependency>
          <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>${checkstyle.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <configLocation>hbase/checkstyle.xml</configLocation>
          <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <!--$NO-MVN-MAN-VER$ -->
        <inherited>false</inherited>
        <executions>
          <execution>
            <id>copy-javadocs</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>site</phase>
            <configuration>
              <outputDirectory>target/site/apidocs</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/target/apidocs</directory>
                  <includes>
                    <include>**/**</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-htaccess</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>post-site</phase>
            <configuration>
              <outputDirectory>${basedir}/target/site</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/site/resources/</directory>
                  <includes>
                    <include>.htaccess</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
          <!-- needed to make the redirect above work -->
          <execution>
            <id>copy-empty-book-dir</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>post-site</phase>
            <configuration>
              <outputDirectory>${basedir}/target/site</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/site/resources/</directory>
                  <includes>
                    <include>book/**</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <escapeString>\</escapeString>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.4</version>
        <inherited>false</inherited>
        <dependencies>
          <dependency>
            <!-- add support for ssh/scp -->
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.2</version>
          </dependency>
          <dependency>
            <!-- required for reflow skin (https://andriusvelykis.github.io/reflow-maven-skin/) -->
            <groupId>lt.velykis.maven.skins</groupId>
            <artifactId>reflow-velocity-tools</artifactId>
            <version>1.1.1</version>
          </dependency>
          <dependency>
            <!-- velocity explicitly required by reflow-maven-skin -->
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.7</version>
          </dependency>
        </dependencies>
        <configuration>
          <siteDirectory>${basedir}/src/main/site</siteDirectory>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
      </plugin>
      <!-- For AsciiDoc docs building -->
      <plugin>
        <groupId>org.asciidoctor</groupId>
        <artifactId>asciidoctor-maven-plugin</artifactId>
        <version>${asciidoctor.plugin.version}</version>
        <inherited>false</inherited>
        <dependencies>
          <dependency>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctorj-pdf</artifactId>
            <version>1.5.0-alpha.11</version>
          </dependency>
        </dependencies>
        <configuration>
          <outputDirectory>target/site</outputDirectory>
          <doctype>book</doctype>
          <imagesDir>images</imagesDir>
          <sourceHighlighter>coderay</sourceHighlighter>
          <attributes>
            <docVersion>${project.version}</docVersion>
            <sourcedir>${project.build.sourceDirectory}</sourcedir>
            <pdfmarks/>
          </attributes>
        </configuration>
        <executions>
          <execution>
            <id>output-html</id>
            <phase>site</phase>
            <goals>
              <goal>process-asciidoc</goal>
            </goals>
            <configuration>
              <attributes>
                <stylesheet>hbase.css</stylesheet>
              </attributes>
              <backend>html5</backend>
            </configuration>
          </execution>
          <execution>
            <id>output-pdf</id>
            <phase>site</phase>
            <goals>
              <goal>process-asciidoc</goal>
            </goals>
            <configuration>
              <backend>pdf</backend>
              <attributes>
                <pagenums/>
                <toc/>
                <idprefix/>
                <idseparator>-</idseparator>
              </attributes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>${maven.antrun.version}</version>
        <inherited>false</inherited>
        <!-- Rename the book.pdf generated by asciidoctor -->
        <executions>
          <execution>
            <id>rename-pdf</id>
            <phase>post-site</phase>
            <configuration>
              <target name="rename file">
                <move file="${project.basedir}/target/site/book.pdf" tofile="${project.basedir}/target/site/apache_hbase_reference_guide.pdf" />
                <move file="${project.basedir}/target/site/book.pdfmarks" tofile="${project.basedir}/target/site/apache_hbase_reference_guide.pdfmarks" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create-timestamp</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <timestampFormat>yyyy</timestampFormat>
          <timestampPropertyName>build.year</timestampPropertyName>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.5.3</version>
        <inherited>true</inherited>
        <extensions>true</extensions>
      </plugin>
    </plugins>
  </build>
  <properties>
    <!-- override on command line to have generated LICENSE files include
         diagnostic info for verifying notice requirements -->
    <license.debug.print.included>false</license.debug.print.included>
    <!-- When a particular module bundles its depenendencies, should be true -->
    <license.bundles.dependencies>false</license.bundles.dependencies>
    <!-- modules that include a the logo in their source tree should set true -->
    <license.bundles.logo>false</license.bundles.logo>
    <!-- modules that include bootstrap in their source tree should set true -->
    <license.bundles.bootstrap>false</license.bundles.bootstrap>
    <!-- modules that include jquery in their source tree should set true -->
    <license.bundles.jquery>false</license.bundles.jquery>
    <tar.name>${project.build.finalName}.tar.gz</tar.name>
    <maven.build.timestamp.format>
      yyyy-MM-dd'T'HH:mm
    </maven.build.timestamp.format>
    <buildDate>${maven.build.timestamp}</buildDate>
    <compileSource>1.7</compileSource>
    <!-- Build dependencies -->
    <maven.min.version>3.0.3</maven.min.version>
    <java.min.version>${compileSource}</java.min.version>
    <!-- Dependencies -->
    <hadoop-two.version>2.8.5</hadoop-two.version>
    <!-- minikdc introduced in hadoop-2.3; override when building earlier versions -->
    <hadoop-two-minikdc.version>${hadoop-two.version}</hadoop-two-minikdc.version>
    <hadoop-three.version>3.0.0</hadoop-three.version>
    <!-- These must be defined here for downstream build tools that don't look at profiles.
         They ought to match the values found in our default hadoop profile, which is
         currently "hadoop-2.0". See HBASE-15925 for more info. -->
    <hadoop.version>${hadoop-two.version}</hadoop.version>
    <compat.module>hbase-hadoop2-compat</compat.module>
    <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
    <!-- end HBASE-15925 default hadoop compatibility values -->
    <avro.version>1.7.7</avro.version>
    <commons-cli.version>1.2</commons-cli.version>
    <commons-codec.version>1.9</commons-codec.version>
    <!-- pretty outdated -->
    <commons-io.version>2.4</commons-io.version>
    <commons-lang.version>2.6</commons-lang.version>
    <commons-logging.version>1.2</commons-logging.version>
    <commons-math.version>2.2</commons-math.version>
    <commons-net.version>3.1</commons-net.version>
    <disruptor.version>3.3.0</disruptor.version>
    <!-- Do not use versions earlier than 3.2.2 due to a security vulnerability -->
    <collections.version>3.2.2</collections.version>
    <httpclient.version>3.1</httpclient.version>
    <httpcore.version>4.4.4</httpcore.version>
    <metrics-core.version>2.2.0</metrics-core.version>
    <guava.version>12.0.1</guava.version>
    <jackson.version>1.9.13</jackson.version>
    <jasper.version>5.5.23</jasper.version>
    <jaxb-api.version>2.2.2</jaxb-api.version>
    <jetty.version>6.1.26</jetty.version>
    <jetty.jspapi.version>6.1.14</jetty.jspapi.version>
    <jersey.version>1.9</jersey.version>
    <jruby.version>1.6.8</jruby.version>
    <junit.version>4.12</junit.version>
    <hamcrest.version>1.3</hamcrest.version>
    <htrace.version>3.1.0-incubating</htrace.version>
    <log4j.version>1.2.17</log4j.version>
    <mockito-all.version>1.10.19</mockito-all.version>
    <protobuf.version>2.5.0</protobuf.version>
    <thrift.path>thrift</thrift.path>
    <thrift.version>0.12.0</thrift.version>
    <zookeeper.version>3.4.10</zookeeper.version>
    <slf4j.version>1.7.7</slf4j.version>
    <clover.version>4.0.3</clover.version>
    <jamon-runtime.version>2.4.1</jamon-runtime.version>
    <jettison.version>1.3.3</jettison.version>
    <netty.version>4.1.8.Final</netty.version>
    <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
    <joni.version>2.1.2</joni.version>
    <jcodings.version>1.0.8</jcodings.version>
    <spy.version>2.11.6</spy.version>
    <bouncycastle.version>1.46</bouncycastle.version>
    <kerby.version>1.0.1</kerby.version>
    <!-- Plugin Dependencies -->
    <error-prone.version>2.1.1</error-prone.version>
    <maven.assembly.version>2.4</maven.assembly.version>
    <maven.antrun.version>1.6</maven.antrun.version>
    <maven.compiler.version>3.6.1</maven.compiler.version>
    <jamon.plugin.version>2.4.1</jamon.plugin.version>
    <findbugs-annotations>1.3.9-1</findbugs-annotations>
    <findbugs.maven.version>3.0.4</findbugs.maven.version>
    <checkstyle.version>6.18</checkstyle.version>
    <javadoc.version>2.10.3</javadoc.version>
    <asciidoctor.plugin.version>1.5.3</asciidoctor.plugin.version>
    <plexus.errorprone.javac.version>2.8.2</plexus.errorprone.javac.version>
    <spotbugs.version>3.1.0-RC1</spotbugs.version>
    <maven.dependency.version>3.0.1</maven.dependency.version>
    <maven.enforcer.version>3.0.0-M1</maven.enforcer.version>
    <!-- General Packaging -->
    <package.prefix>/usr</package.prefix>
    <package.conf.dir>/etc/hbase</package.conf.dir>
    <package.log.dir>/var/log/hbase</package.log.dir>
    <package.pid.dir>/var/run/hbase</package.pid.dir>
    <package.release>1</package.release>
    <final.name>${project.artifactId}-${project.version}</final.name>
    <!-- Intraproject jar naming properties -->
    <!-- TODO this is pretty ugly, but works for the moment.
      Modules are pretty heavy-weight things, so doing this work isn't too bad. -->
    <server.test.jar>hbase-server-${project.version}-tests.jar</server.test.jar>
    <common.test.jar>hbase-common-${project.version}-tests.jar</common.test.jar>
    <procedure.test.jar>hbase-procedure-${project.version}-tests.jar</procedure.test.jar>
    <it.test.jar>hbase-it-${project.version}-tests.jar</it.test.jar>
    <annotations.test.jar>hbase-annotations-${project.version}-tests.jar</annotations.test.jar>
    <shell-executable>bash</shell-executable>
    <surefire.version>2.20.1</surefire.version>
    <surefire.provider>surefire-junit47</surefire.provider>
    <!-- default: run small & medium, medium with 2 threads -->
    <surefire.skipFirstPart>false</surefire.skipFirstPart>
    <surefire.skipSecondPart>false</surefire.skipSecondPart>
    <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
    <surefire.secondPartForkCount>2</surefire.secondPartForkCount>
    <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
    <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
    <surefire.testFailureIgnore>false</surefire.testFailureIgnore>
    <test.output.tofile>true</test.output.tofile>
    <surefire.timeout>900</surefire.timeout>
    <test.exclude.pattern></test.exclude.pattern>
    <!-- default Xmx value is 2800m. Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value -->
    <surefire.Xmx>2800m</surefire.Xmx>
    <surefire.cygwinXmx>2800m</surefire.cygwinXmx>
    <!--Mark our test runs with '-Dhbase.test' so we can identify a surefire test as ours in a process listing
     -->
    <hbase-surefire.argLine>-enableassertions -Dhbase.test -Xmx${surefire.Xmx}
      ${maxpermsize} -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
      -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
    </hbase-surefire.argLine>
    <hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx} ${maxpermsize}
      -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
      "-Djava.library.path=${hadoop.library.path};${java.library.path}"
    </hbase-surefire.cygwin-argLine>
    <!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
    <argLine>${hbase-surefire.argLine}</argLine>
    <jacoco.version>0.7.5.201505241946</jacoco.version>
    <extra.enforcer.version>1.0-beta-6</extra.enforcer.version>
    <!-- Location of test resources -->
    <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
    <shell-executable>bash</shell-executable>
  </properties>
  <!-- Sorted by groups of dependencies then groupId and artifactId -->
  <dependencyManagement>
    <dependencies>
      <!--
      Note: There are a few exclusions to prevent duplicate code in different jars to be included:
          org.mortbay.jetty:servlet-api, javax.servlet:servlet-api: These are excluded because they are
          the same implementations. I chose org.mortbay.jetty:servlet-api-2.5 instead, which is a third
          implementation of the same, because Hadoop also uses this version
          javax.servlet:jsp-api in favour of org.mortbay.jetty:jsp-api-2.1
        -->
      <!-- Intra-module dependencies -->
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-annotations</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-annotations</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-common</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-protocol</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-procedure</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-procedure</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-hadoop-compat</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-hadoop-compat</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>${compat.module}</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>${compat.module}</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-rsgroup</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-rsgroup</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-server</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-server</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-shell</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-shell</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-thrift</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-thrift</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-rest</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-rest</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.apache.hbase</groupId>
          <artifactId>hbase-testing-util</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-prefix-tree</artifactId>
        <version>${project.version}</version>
        <!-- unfortunately, runtime scope causes Eclipse to give compile time access which isn't
          needed, however it is apparently needed to run things within Eclipse -->
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-examples</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-external-blockcache</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-it</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-client</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-metrics-api</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-metrics-api</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <artifactId>hbase-metrics</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <artifactId>hbase-metrics</artifactId>
        <groupId>org.apache.hbase</groupId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <!-- General dependencies -->
      <dependency>
        <groupId>com.github.stephenc.findbugs</groupId>
        <artifactId>findbugs-annotations</artifactId>
        <version>${findbugs-annotations}</version>
      </dependency>
      <!-- General dependencies -->
      <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>${jettison.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <!-- Avro dependencies we mostly get transitively, manual version coallescing -->
      <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
      </dependency>
      <!--This is not used by hbase directly.  Used by thrift,
          yammer and zk.-->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>com.yammer.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${metrics-core.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>3.1.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>${collections.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>${httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcore.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-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>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>${commons-net.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math</artifactId>
        <version>${commons-math.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <exclusions>
          <exclusion>
            <groupId>jline</groupId>
            <artifactId>jline</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.jmx</groupId>
            <artifactId>jmxri</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.jdmk</groupId>
            <artifactId>jmxtools</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
          </exclusion>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jruby</groupId>
        <artifactId>jruby-complete</artifactId>
        <version>${jruby.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty</artifactId>
        <version>${jetty.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jruby.jcodings</groupId>
        <artifactId>jcodings</artifactId>
        <version>${jcodings.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jruby.joni</groupId>
        <artifactId>joni</artifactId>
        <version>${joni.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-sslengine</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jsp-2.1</artifactId>
        <version>${jetty.jspapi.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.eclipse.jdt</groupId>
            <artifactId>core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jsp-api-2.1</artifactId>
        <version>${jetty.jspapi.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>servlet-api-2.5</artifactId>
        <version>${jetty.jspapi.version}</version>
      </dependency>
      <!-- While jackson is also a dependency of jersey it
           can bring in jars from different, incompatible versions. We force
           the same version with these dependencies -->
      <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>
        <!--If this is not in the runtime lib, we get odd
      "2009-02-27 11:38:39.504::WARN:  failed jsp
       java.lang.NoSuchFieldError: IS_SECURITY_ENABLED"
       exceptions out of jetty deploying webapps.
       St.Ack Thu May 20 01:04:41 PDT 2010
      -->
        <groupId>tomcat</groupId>
        <artifactId>jasper-compiler</artifactId>
        <version>${jasper.version}</version>
        <scope>runtime</scope>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>ant</groupId>
            <artifactId>ant</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>tomcat</groupId>
        <artifactId>jasper-runtime</artifactId>
        <version>${jasper.version}</version>
        <scope>runtime</scope>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jamon</groupId>
        <artifactId>jamon-runtime</artifactId>
        <version>${jamon-runtime.version}</version>
      </dependency>
      <!-- REST dependencies -->
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
      </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>
        <exclusions>
          <exclusion>
            <groupId>stax</groupId>
            <artifactId>stax-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>${jersey.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>${jaxb-api.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.xml.stream</groupId>
            <artifactId>stax-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>${hamcrest.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito-all.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.htrace</groupId>
        <artifactId>htrace-core</artifactId>
        <version>${htrace.version}</version>
      </dependency>
      <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>${disruptor.version}</version>
      </dependency>
        <dependency>
        <groupId>net.spy</groupId>
        <artifactId>spymemcached</artifactId>
        <version>${spy.version}</version>
        <optional>true</optional>
    </dependency>
     <dependency>
       <groupId>org.bouncycastle</groupId>
       <artifactId>bcprov-jdk16</artifactId>
       <version>${bouncycastle.version}</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.kerby</groupId>
       <artifactId>kerb-client</artifactId>
       <version>${kerby.version}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.kerby</groupId>
       <artifactId>kerb-simplekdc</artifactId>
       <version>${kerby.version}</version>
     </dependency>
    </dependencies>
  </dependencyManagement>
  <!-- Dependencies needed by subprojects -->
  <dependencies>
    <dependency>
      <groupId>com.github.stephenc.findbugs</groupId>
      <artifactId>findbugs-annotations</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>
    <!-- Test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
    </dependency>
  </dependencies>
  <!--
  To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml )

 <settings>
  <servers>
    <server>
      <id>apache.releases.https</id>
      <username>hbase_committer</username>
      <password>********</password>
    </server>

    <server>
      <id>apache.snapshots.https</id>
      <username>hbase_committer</username>
      <password>********</password>
    </server>

  </servers>
 </settings>

  $ mvn deploy
(or)
  $ mvn -s /my/path/settings.xml deploy

  -->
  <profiles>
    <profile>
      <id>rsgroup</id>
      <activation>
        <property>
            <name>!skip-rsgroup</name>
        </property>
      </activation>
      <modules>
        <module>hbase-rsgroup</module>
      </modules>
    </profile>
    <profile>
      <id>build-with-jdk8</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <!-- TODO HBASE-15041 clean up our javadocs so jdk8 linter can be used -->
                <additionalparam>-Xdoclint:none</additionalparam>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>findbugs-maven-plugin</artifactId>
              <version>${findbugs.maven.version}</version>
              <!--NOTE: Findbugs 3.0.4 requires jdk7-->
              <configuration>
                <excludeFilterFile>${project.basedir}/../dev-support/findbugs-exclude.xml</excludeFilterFile>
                <findbugsXmlOutput>true</findbugsXmlOutput>
                <xmlOutput>true</xmlOutput>
                <effort>Max</effort>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>com.github.spotbugs</groupId>
                  <artifactId>spotbugs</artifactId>
                  <version>${spotbugs.version}</version>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <!--In JDK 1.8 and newer the PermGem has been removed. -->
    <!--These two profiles are to handle the differences between the before and after 1.8 -->
    <profile>
      <id>old-jdk</id>
      <activation>
        <jdk>(,1.8)</jdk>
      </activation>
      <properties>
        <maxpermsize>-XX:MaxPermSize=512m</maxpermsize>
      </properties>
    </profile>
    <profile>
      <id>new-jdk</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <properties>
        <maxpermsize></maxpermsize>
      </properties>
    </profile>

    <profile>
      <id>jacoco</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco.version}</version>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>report</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <systemPropertyVariables>
                <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
              </systemPropertyVariables>
              <excludes>
                <exclude>**/generated/**/*.class</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>os.linux</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <os>
          <family>Linux</family>
        </os>
      </activation>
      <properties>
        <build.platform>${os.name}-${os.arch}-${sun.arch.data.model}</build.platform>
      </properties>
    </profile>
    <profile>
      <id>os.mac</id>
      <activation>
        <os>
          <family>Mac</family>
        </os>
      </activation>
      <properties>
        <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform>
      </properties>
    </profile>
    <profile>
      <id>os.windows</id>
      <activation>
        <os>
          <family>Windows</family>
        </os>
      </activation>
      <properties>
        <build.platform>cygwin</build.platform>
        <argLine>${hbase-surefire.cygwin-argLine}</argLine>
      </properties>
    </profile>
    <!-- this profile should be activated for release builds -->
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <configuration>
              <rules>
                <enforceBytecodeVersion>
                <maxJdkVersion>${compileSource}</maxJdkVersion>
                <message>HBase has unsupported dependencies.
  HBase requires that all dependencies be compiled with version ${compileSource} or earlier
  of the JDK to properly build from source.  You appear to be using a newer dependency. You can use
  either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
  Non-release builds can temporarily build with a newer JDK version by setting the
  'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
                </message>
              </enforceBytecodeVersion>
            </rules>
          </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- Dependency management profiles for submodules when building against specific hadoop branches.-->
    <!-- Submodules that need hadoop dependencies should declare
    profiles with activation properties matching the profile here.
    Generally, it should be sufficient to copy the first
    few lines of the profile you want to match.  -->
    <!-- profile for building against Hadoop 2.0.x
         This is the default.
         -->
    <profile>
      <id>hadoop-2.0</id>
      <activation>
        <property>
            <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
            <!--h2--><name>!hadoop.profile</name>
        </property>
      </activation>
      <modules>
        <module>hbase-hadoop2-compat</module>
      </modules>
      <properties>
        <hadoop.version>${hadoop-two.version}</hadoop.version>
        <compat.module>hbase-hadoop2-compat</compat.module>
        <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>${hadoop-two.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
            <exclusions>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
              <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
              </exclusion>
            </exclusions>
            <version>${hadoop-two.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop-two.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
              <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-auth</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop-two.version}</version>
          </dependency>
          <!-- This was marked as test dep in earlier pom, but was scoped compile.
            Where do we actually need it? -->
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minicluster</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>io.netty</groupId>
                <artifactId>netty</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop-two-minikdc.version}</version>
            <scope>test</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
    </profile>
    <!--
      profile for building against Hadoop 3.0.0. Activate using:
       mvn -Dhadoop.profile=3.0
    -->
    <profile>
      <id>hadoop-3.0</id>
      <activation>
        <property>
          <name>hadoop.profile</name>
          <value>3.0</value>
        </property>
      </activation>
      <modules>
        <!--For now, use hadoop2 compat module-->
        <module>hbase-hadoop2-compat</module>
      </modules>
      <properties>
        <hadoop.version>${hadoop-three.version}</hadoop.version>
        <kerby.version>1.0.1</kerby.version>
        <!--Use this compat module for now. TODO: Make h3 one if we need one-->
        <compat.module>hbase-hadoop2-compat</compat.module>
        <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
      </properties>
     <dependencyManagement>
       <dependencies>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-mapreduce-client-core</artifactId>
           <version>${hadoop-three.version}</version>
           <exclusions>
             <exclusion>
               <groupId>io.netty</groupId>
               <artifactId>netty</artifactId>
             </exclusion>
              <exclusion>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
           <version>${hadoop-three.version}</version>
           <exclusions>
             <exclusion>
               <groupId>io.netty</groupId>
               <artifactId>netty</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
           <version>${hadoop-three.version}</version>
           <type>test-jar</type>
           <scope>test</scope>
           <exclusions>
             <exclusion>
               <groupId>io.netty</groupId>
               <artifactId>netty</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-hdfs</artifactId>
           <exclusions>
             <exclusion>
               <groupId>org.apache.htrace</groupId>
               <artifactId>htrace-core</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet.jsp</groupId>
               <artifactId>jsp-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet</groupId>
               <artifactId>servlet-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>stax</groupId>
               <artifactId>stax-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>xerces</groupId>
               <artifactId>xercesImpl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehaus.jackson</groupId>
               <artifactId>jackson-core-asl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehaus.jackson</groupId>
               <artifactId>jackson-mapper-asl</artifactId>
             </exclusion>
           </exclusions>
           <version>${hadoop-three.version}</version>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-hdfs</artifactId>
           <version>${hadoop-three.version}</version>
           <type>test-jar</type>
           <scope>test</scope>
           <exclusions>
             <exclusion>
               <groupId>org.apache.htrace</groupId>
               <artifactId>htrace-core</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet.jsp</groupId>
               <artifactId>jsp-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet</groupId>
               <artifactId>servlet-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>stax</groupId>
               <artifactId>stax-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>xerces</groupId>
               <artifactId>xercesImpl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehaus.jackson</groupId>
               <artifactId>jackson-core-asl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehaus.jackson</groupId>
               <artifactId>jackson-mapper-asl</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-auth</artifactId>
           <version>${hadoop-three.version}</version>
           <exclusions>
             <exclusion>
               <groupId>com.google.guava</groupId>
               <artifactId>guava</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-common</artifactId>
           <version>${hadoop-three.version}</version>
           <exclusions>
             <exclusion>
               <groupId>org.apache.htrace</groupId>
               <artifactId>htrace-core</artifactId>
             </exclusion>
             <exclusion>
               <groupId>commons-beanutils</groupId>
               <artifactId>commons-beanutils</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet.jsp</groupId>
               <artifactId>jsp-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet</groupId>
               <artifactId>servlet-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>stax</groupId>
               <artifactId>stax-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>io.netty</groupId>
               <artifactId>netty</artifactId>
             </exclusion>
             <exclusion>
               <groupId>com.google.code.findbugs</groupId>
               <artifactId>jsr305</artifactId>
             </exclusion>
             <exclusion>
               <groupId>junit</groupId>
               <artifactId>junit</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehause.jackson</groupId>
               <artifactId>jackson-core-asl</artifactId>
             </exclusion>
             <exclusion>
               <groupId>org.codehause.jackson</groupId>
               <artifactId>jackson-mapper-asl</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-client</artifactId>
           <version>${hadoop-three.version}</version>
         </dependency>
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-annotations</artifactId>
           <version>${hadoop-three.version}</version>
         </dependency>
         <!-- This was marked as test dep in earlier pom, but was scoped compile.
           Where do we actually need it? -->
         <dependency>
           <groupId>org.apache.hadoop</groupId>
           <artifactId>hadoop-minicluster</artifactId>
           <version>${hadoop-three.version}</version>
           <exclusions>
             <exclusion>
               <groupId>org.apache.htrace</groupId>
               <artifactId>htrace-core</artifactId>
             </exclusion>
             <exclusion>
               <groupId>commons-httpclient</groupId>
               <artifactId>commons-httpclient</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet.jsp</groupId>
               <artifactId>jsp-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>javax.servlet</groupId>
               <artifactId>servlet-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>stax</groupId>
               <artifactId>stax-api</artifactId>
             </exclusion>
             <exclusion>
               <groupId>io.netty</groupId>
               <artifactId>netty</artifactId>
             </exclusion>
             <exclusion>
               <groupId>com.google.code.findbugs</groupId>
               <artifactId>jsr305</artifactId>
             </exclusion>
           </exclusions>
         </dependency>
         <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop-three.version}</version>
            <scope>test</scope>
          </dependency>
       </dependencies>
     </dependencyManagement>
    </profile>
    <!-- profiles for the tests
         See as well the properties of the project for the values
         when no profile is active.     -->
    <profile>
      <!-- Use it to launch the tests without parallelisation -->
      <id>nonParallelTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch the tests in parallel in the same JVM  -->
      <id>parallelTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch the tests in the same JVM  -->
      <id>singleJVMTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups/>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch small tests only -->
      <id>runSmallTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch medium tests only -->
      <id>runMediumTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch large tests only -->
      <id>runLargeTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.LargeTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch small & medium tests -->
      <id>runDevTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>false</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
        <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch all tests -->
      <id>runAllTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>5</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>false</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
        <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests,org.apache.hadoop.hbase.testclassification.LargeTests</surefire.secondPartGroups>
      </properties>
    </profile>
    <profile>
      <!-- Use it to launch tests locally-->
      <id>localTests</id>
      <activation>
        <property>
          <name>test</name>
        </property>
      </activation>
      <properties>
        <surefire.provider>surefire-junit4</surefire.provider>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups/>
      </properties>
    </profile>
    <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
         or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
         the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
         The report will be generated under target/site/clover/index.html when you run
         MAVEN_OPTS="-Xmx2048m ${maxpermsize}" mvn clean package -Pclover site -->
    <profile>
      <id>clover</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>clover</name>
        </property>
      </activation>
      <properties>
        <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
      </properties>
      <build>
        <plugins>
        <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
             our instrumented classes for the doclet will fail
          -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>com.atlassian.maven.plugins</groupId>
                <artifactId>maven-clover2-plugin</artifactId>
                <version>${clover.version}</version>
              </dependency>
            </dependencies>
          </plugin>
          <plugin>
            <groupId>com.atlassian.maven.plugins</groupId>
            <artifactId>maven-clover2-plugin</artifactId>
            <version>${clover.version}</version>
            <configuration>
              <includesAllSourceRoots>true</includesAllSourceRoots>
              <includesTestSourceRoots>true</includesTestSourceRoots>
              <targetPercentage>50%</targetPercentage>
              <generateHtml>true</generateHtml>
              <generateXml>true</generateXml>
              <excludes>
                <exclude>**/generated/**</exclude>
              </excludes>
            </configuration>
            <executions>
              <execution>
                <id>clover-setup</id>
                <phase>process-sources</phase>
                <goals>
                  <goal>setup</goal>
                </goals>
              </execution>
              <execution>
                <id>clover</id>
                <phase>site</phase>
                <goals>
                  <goal>clover</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>errorProne</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
	<module>hbase-error-prone</module>
      </modules>
    </profile>

  </profiles>
  <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.7</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>project-team</report>
              <report>mailing-list</report>
              <report>cim</report>
              <report>issue-tracking</report>
              <report>license</report>
              <report>scm</report>
              <report>index</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <aggregate>true</aggregate>
          <linkJavadoc>true</linkJavadoc>
          <javadocDir>${basedir}/target/site/apidocs</javadocDir>
          <reportOutputDirectory>${basedir}/target/site/xref</reportOutputDirectory>
          <destDir>${basedir}/target/site/xref</destDir>
          <excludes>
            <exclude>**/generated/**</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${javadoc.version}</version>
        <configuration>
          <sourceFilesExclude>**/generated</sourceFilesExclude>
          <excludePackageNames>org.apache.hadoop.hbase.generated.master:org.apache.hadoop.hbase.protobuf.generated</excludePackageNames>
          <maxmemory>2048m</maxmemory>
          <notimestamp>true</notimestamp>
          <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
          <additionalDependencies>
            <additionalDependency>
              <groupId>org.mockito</groupId>
              <artifactId>mockito-all</artifactId>
              <version>${mockito-all.version}</version>
            </additionalDependency>
            <additionalDependency>
              <groupId>org.hamcrest</groupId>
              <artifactId>hamcrest-core</artifactId>
              <version>${hamcrest.version}</version>
            </additionalDependency>
          </additionalDependencies>
        </configuration>
        <reportSets>
          <reportSet>
            <id>devapi</id>
            <!-- full internal hbase api -->
            <reports>
              <report>aggregate</report>
            </reports>
            <configuration>
              <destDir>devapidocs</destDir>
            </configuration>
          </reportSet>

          <reportSet>
            <id>userapi</id>
            <reports>
              <report>aggregate</report>
            </reports>

            <configuration>
            <!-- Breaks build on branch-1. See HBASE-19663
              <doclet>
                org.apache.hadoop.hbase.classification.tools.IncludePublicAnnotationsStandardDoclet
              </doclet>
              <docletArtifact>
                <groupId>org.apache.hbase</groupId>
                <artifactId>hbase-annotations</artifactId>
                <version>${project.version}</version>
              </docletArtifact>
            -->
              <destDir>apidocs</destDir>
              <name>User API</name>
              <description>The HBase Application Programmer's API</description>
              <excludePackageNames>
                org.apache.hadoop.hbase.backup*:org.apache.hadoop.hbase.catalog:org.apache.hadoop.hbase.client.coprocessor:org.apache.hadoop.hbase.client.metrics:org.apache.hadoop.hbase.codec*:org.apache.hadoop.hbase.constraint:org.apache.hadoop.hbase.coprocessor.*:org.apache.hadoop.hbase.executor:org.apache.hadoop.hbase.fs:org.apache.hadoop.hbase.generated.*:org.apache.hadoop.hbase.io.hfile.*:org.apache.hadoop.hbase.mapreduce.hadoopbackport:org.apache.hadoop.hbase.mapreduce.replication:org.apache.hadoop.hbase.master.*:org.apache.hadoop.hbase.metrics*:org.apache.hadoop.hbase.migration:org.apache.hadoop.hbase.monitoring:org.apache.hadoop.hbase.p*:org.apache.hadoop.hbase.regionserver.compactions:org.apache.hadoop.hbase.regionserver.handler:org.apache.hadoop.hbase.regionserver.snapshot:org.apache.hadoop.hbase.replication.*:org.apache.hadoop.hbase.rest.filter:org.apache.hadoop.hbase.rest.model:org.apache.hadoop.hbase.rest.p*:org.apache.hadoop.hbase.security.*:org.apache.hadoop.hbase.thrift*:org.apache.hadoop.hbase.tmpl.*:org.apache.hadoop.hbase.tool:org.apache.hadoop.hbase.trace:org.apache.hadoop.hbase.util.byterange*:org.apache.hadoop.hbase.util.test:org.apache.hadoop.hbase.util.vint:org.apache.hadoop.hbase.zookeeper.lock:org.apache.hadoop.metrics2*
              </excludePackageNames>
              <!-- switch on dependency-driven aggregation -->
              <includeDependencySources>false</includeDependencySources>

              <dependencySourceIncludes>
                <!-- include ONLY dependencies I control -->
                <dependencySourceInclude>org.apache.hbase:hbase-annotations
                </dependencySourceInclude>
              </dependencySourceIncludes>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>
      <!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <configLocation>hbase/checkstyle.xml</configLocation>
          <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
          <includeTestSourceDirectory>true</includeTestSourceDirectory>
        </configuration>
      </plugin>
      -->
    </plugins>
  </reporting>
  <distributionManagement>
    <site>
      <id>hbase.apache.org</id>
      <name>HBase Website at hbase.apache.org</name>
      <!-- On why this is the tmp dir and not hbase.apache.org, see
               https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
               -->
      <url>file:///tmp</url>
    </site>
  </distributionManagement>
</project>
