<?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>23</version>
    <relativePath/>
    <!-- no parent resolution -->
  </parent>
  <groupId>org.apache.hbase</groupId>
  <artifactId>hbase</artifactId>
  <version>${revision}</version>
  <packaging>pom</packaging>
  <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>
  <developers>
    <developer>
      <id>acube123</id>
      <name>Amitanand S. Aiyer</name>
      <email>acube123@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>appy</id>
      <name>Apekshit Sharma</name>
      <email>appy@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>anastasia</id>
      <name>Anastasia Braginsky</name>
      <email>anastasia@apache.org</email>
      <timezone>+2</timezone>
    </developer>
    <developer>
      <id>apurtell</id>
      <name>Andrew Purtell</name>
      <email>apurtell@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>anoopsamjohn</id>
      <name>Anoop Sam John</name>
      <email>anoopsamjohn@apache.org</email>
      <timezone>+5</timezone>
    </developer>
    <developer>
      <id>antonov</id>
      <name>Mikhail Antonov</name>
      <email>antonov@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>ashishsinghi</id>
      <name>Ashish Singhi</name>
      <email>ashishsinghi@apache.org</email>
      <timezone>+5</timezone>
    </developer>
    <developer>
      <id>binlijin</id>
      <name>Lijin Bin</name>
      <email>binlijin@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>busbey</id>
      <name>Sean Busbey</name>
      <email>busbey@apache.org</email>
      <timezone>-6</timezone>
    </developer>
    <developer>
      <id>chenheng</id>
      <name>Heng Chen</name>
      <email>chenheng@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>chia7712</id>
      <name>Chia-Ping Tsai</name>
      <email>chia7712@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>ddas</id>
      <name>Devaraj Das</name>
      <email>ddas@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>dimaspivak</id>
      <name>Dima Spivak</name>
      <email>dimaspivak@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>dmeil</id>
      <name>Doug Meil</name>
      <email>dmeil@apache.org</email>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <id>eclark</id>
      <name>Elliott Clark</name>
      <email>eclark@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>elserj</id>
      <name>Josh Elser</name>
      <email>elserj@apache.org</email>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <id>enis</id>
      <name>Enis Soztutar</name>
      <email>enis@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>eshcar</id>
      <name>Eshcar Hillel</name>
      <email>eshcar@apache.org</email>
      <timezone>+2</timezone>
    </developer>
    <developer>
      <id>fenghh</id>
      <name>Honghua Feng</name>
      <email>fenghh@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>garyh</id>
      <name>Gary Helmling</name>
      <email>garyh@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>gchanan</id>
      <name>Gregory Chanan</name>
      <email>gchanan@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jdcryans</id>
      <name>Jean-Daniel Cryans</name>
      <email>jdcryans@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jeffreyz</id>
      <name>Jeffrey Zhong</name>
      <email>jeffreyz@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jerryjch</id>
      <name>Jing Chen (Jerry) He</name>
      <email>jerryjch@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jyates</id>
      <name>Jesse Yates</name>
      <email>jyates@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jgray</id>
      <name>Jonathan Gray</name>
      <email>jgray@fb.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jingchengdu</id>
      <name>Jingcheng Du</name>
      <email>jingchengdu@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>esteban</id>
      <name>Esteban Gutierrez</name>
      <email>esteban@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jmhsieh</id>
      <name>Jonathan Hsieh</name>
      <email>jmhsieh@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>jxiang</id>
      <name>Jimmy Xiang</name>
      <email>jxiang@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>kannan</id>
      <name>Kannan Muthukkaruppan</name>
      <email>kannan@fb.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>karthik</id>
      <name>Karthik Ranganathan</name>
      <email>kranganathan@fb.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>larsgeorge</id>
      <name>Lars George</name>
      <email>larsgeorge@apache.org</email>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>larsh</id>
      <name>Lars Hofhansl</name>
      <email>larsh@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>liangxie</id>
      <name>Liang Xie</name>
      <email>liangxie@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>liushaohui</id>
      <name>Shaohui Liu</name>
      <email>liushaohui@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>liyin</id>
      <name>Liyin Tang</name>
      <email>liyin.tang@fb.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>liyu</id>
      <name>Yu Li</name>
      <email>liyu@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>mbautin</id>
      <name>Mikhail Bautin</name>
      <email>mbautin@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>mbertozzi</id>
      <name>Matteo Bertozzi</name>
      <email>mbertozzi@apache.org</email>
      <timezone>0</timezone>
    </developer>
    <developer>
      <id>misty</id>
      <name>Misty Stanley-Jones</name>
      <email>misty@apache.org</email>
      <timezone>+10</timezone>
    </developer>
    <developer>
      <id>ndimiduk</id>
      <name>Nick Dimiduk</name>
      <email>ndimiduk@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>nkeywal</id>
      <name>Nicolas Liochon</name>
      <email>nkeywal@apache.org</email>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <id>nspiegelberg</id>
      <name>Nicolas Spiegelberg</name>
      <email>nspiegelberg@fb.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>octo47</id>
      <name>Andrey Stepachev</name>
      <email>octo47@gmail.com</email>
      <timezone>0</timezone>
    </developer>
    <developer>
      <id>rajeshbabu</id>
      <name>Rajeshbabu Chintaguntla</name>
      <email>rajeshbabu@apache.org</email>
      <timezone>+5</timezone>
    </developer>
    <developer>
      <id>ramkrishna</id>
      <name>Ramkrishna S Vasudevan</name>
      <email>ramkrishna@apache.org</email>
      <timezone>+5</timezone>
    </developer>
    <developer>
      <id>rawson</id>
      <name>Ryan Rawson</name>
      <email>rawson@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>sershe</id>
      <name>Sergey Shelukhin</name>
      <email>sershe@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>ssrungarapu</id>
      <name>Srikanth Srungarapu</name>
      <email>ssrungarapu@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>stack</id>
      <name>Michael Stack</name>
      <email>stack@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>syuanjiang</id>
      <name>Stephen Yuan Jiang</name>
      <email>syuanjiang@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>tedyu</id>
      <name>Ted Yu</name>
      <email>yuzhihong@gmail.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>todd</id>
      <name>Todd Lipcon</name>
      <email>todd@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>toffer</id>
      <name>Francis Liu</name>
      <email>toffer@apache.org</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>virag</id>
      <name>Virag Kothari</name>
      <email>virag@yahoo-inc.com</email>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <id>yangzhe1991</id>
      <name>Phil Yang</name>
      <email>yangzhe1991@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>zghao</id>
      <name>Guanghao Zhang</name>
      <email>zghao@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>zhangduo</id>
      <name>Duo Zhang</name>
      <email>zhangduo@apache.org</email>
      <timezone>+8</timezone>
    </developer>
    <developer>
      <id>zjushch</id>
      <name>Chunhui Shen</name>
      <email>zjushch@apache.org</email>
      <timezone>+8</timezone>
    </developer>
  </developers>
  <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>http://mail-archives.apache.org/mod_mbox/hbase-user/</archive>
      <otherArchives>
        <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</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>http://mail-archives.apache.org/mod_mbox/hbase-dev/</archive>
      <otherArchives>
        <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Commits List</name>
      <subscribe>commits-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
      <archive>http://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>http://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>http://mail-archives.apache.org/mod_mbox/hbase-builds/</archive>
    </mailingList>
    <mailingList>
      <name>User (ZH) List</name>
      <subscribe>user-zh-subscribe@hbase.apache.org</subscribe>
      <unsubscribe>user-zh-unsubscribe@hbase.apache.org</unsubscribe>
      <post>user-zh@hbase.apache.org</post>
      <archive>https://lists.apache.org/list.html?user-zh@hbase.apache.org</archive>
    </mailingList>
  </mailingLists>

  <modules>
    <module>hbase-build-configuration</module>
    <module>hbase-replication</module>
    <module>hbase-mapreduce</module>
    <module>hbase-resource-bundle</module>
    <module>hbase-http</module>
    <module>hbase-server</module>
    <module>hbase-thrift</module>
    <module>hbase-shell</module>
    <module>hbase-protocol-shaded</module>
    <module>hbase-protocol</module>
    <module>hbase-client</module>
    <module>hbase-hadoop-compat</module>
    <module>hbase-common</module>
    <module>hbase-procedure</module>
    <module>hbase-endpoint</module>
    <module>hbase-it</module>
    <module>hbase-examples</module>
    <module>hbase-assembly</module>
    <module>hbase-testing-util</module>
    <module>hbase-annotations</module>
    <module>hbase-rest</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>
    <module>hbase-zookeeper</module>
    <module>hbase-hbtop</module>
    <module>hbase-asyncfs</module>
    <module>hbase-logging</module>
    <module>hbase-compression</module>
  </modules>
  <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>
  <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>
  <properties>
    <revision>2.5.7</revision>
    <!-- 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>
    <!-- modules that include vega in their source tree should set true -->
    <license.bundles.vega>false</license.bundles.vega>
    <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.8</compileSource>
    <releaseTarget>8</releaseTarget>
    <!-- Build dependencies -->
    <!-- The $revision feature is introduced in 3.5.0 -->
    <maven.min.version>3.5.0</maven.min.version>
    <java.min.version>${compileSource}</java.min.version>
    <!-- Dependencies -->
    <hadoop-two.version>2.10.2</hadoop-two.version>
    <hadoop-three.version>3.2.4</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>
    <hadoop.guava.version>11.0.2</hadoop.guava.version>
    <compat.module>hbase-hadoop2-compat</compat.module>
    <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
    <!--
      These property is for transitive netty dependencies from thirdparty dependencies, like
      hadoop and zookeeper. HBase netty comes in via hbase-thirdparty hbase-shaded-netty
      In the old time, netty-all includes all the classes but maven does not know it so it is
      possible that we have netty-all and netty-handler both on the classpath but they have
      different version and cause conflicts. Newer version of netty-all solved the this problem
      by depending all other netty modules, but we'd better still specify the version by our own
      in the dependencyManagement section as it could still lead to different versions of netty
      modules and cause trouble if we only rely on transitive dependencies.
    -->
    <netty3.version>3.10.6.Final</netty3.version>
    <netty4.version>4.1.100.Final</netty4.version>
    <!-- end HBASE-15925 default hadoop compatibility values -->
    <audience-annotations.version>0.13.0</audience-annotations.version>
    <!--
      The version used when generating javadoc, 0.13.0 is the latest version which supports jdk8.
      When building with jdk11, we will use 0.14.1, please see the build-with-jdk11 profile.
    -->
    <javadoc.audience-annotations.version>0.13.0</javadoc.audience-annotations.version>
    <avro.version>1.11.3</avro.version>
    <caffeine.version>2.8.1</caffeine.version>
    <commons-codec.version>1.15</commons-codec.version>
    <commons-io.version>2.11.0</commons-io.version>
    <commons-lang3.version>3.9</commons-lang3.version>
    <commons-math.version>3.6.1</commons-math.version>
    <commons-cli.version>1.5.0</commons-cli.version>
    <disruptor.version>3.4.4</disruptor.version>
    <httpclient.version>4.5.13</httpclient.version>
    <httpcore.version>4.4.13</httpcore.version>
    <metrics-core.version>3.2.6</metrics-core.version>
    <jackson.version>2.15.2</jackson.version>
    <jackson.databind.version>2.15.2</jackson.databind.version>
    <jaxb-api.version>2.3.1</jaxb-api.version>
    <servlet.api.version>3.1.0</servlet.api.version>
    <wx.rs.api.version>2.1.1</wx.rs.api.version>
    <glassfish.jsp.version>2.3.2</glassfish.jsp.version>
    <glassfish.el.version>3.0.1-b08</glassfish.el.version>
    <jruby.version>9.2.13.0</jruby.version>
    <junit.version>4.13.2</junit.version>
    <hamcrest.version>1.3</hamcrest.version>
    <opentelemetry.version>1.15.0</opentelemetry.version>
    <opentelemetry-javaagent.version>1.15.0</opentelemetry-javaagent.version>
    <log4j2.version>2.17.2</log4j2.version>
    <mockito-core.version>2.28.2</mockito-core.version>
    <!--Internally we use a different version of protobuf. See hbase-protocol-shaded-->
    <external.protobuf.groupid>com.google.protobuf</external.protobuf.groupid>
    <external.protobuf.version>2.5.0</external.protobuf.version>
    <external.protoc.version>${external.protobuf.version}</external.protoc.version>
    <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
    <thrift.path>thrift</thrift.path>
    <thrift.version>0.14.1</thrift.version>
    <zookeeper.version>3.8.3</zookeeper.version>
    <jline.version>2.11</jline.version>
    <slf4j.version>1.7.33</slf4j.version>
    <clover.version>4.0.3</clover.version>
    <jamon-runtime.version>2.4.1</jamon-runtime.version>
    <jettison.version>1.5.4</jettison.version>
    <!--Make sure these joni/jcodings are compatible with the versions used by jruby-->
    <joni.version>2.1.31</joni.version>
    <jcodings.version>1.0.55</jcodings.version>
    <spy.version>2.12.2</spy.version>
    <bouncycastle.version>1.76</bouncycastle.version>
    <skyscreamer.version>1.5.1</skyscreamer.version>
    <kerby.version>1.0.1</kerby.version>
    <commons-crypto.version>1.1.0</commons-crypto.version>
    <curator.version>4.2.0</curator.version>
    <!-- Plugin Dependencies -->
    <build.helper.maven.version>3.0.0</build.helper.maven.version>
    <buildnumber.maven.version>1.4</buildnumber.maven.version>
    <!--
      When updating checkstyle.version, please make the same change in `.idea/checkstyle-idea.xml`
    -->
    <checkstyle.version>8.29</checkstyle.version>
    <exec.maven.version>3.1.0</exec.maven.version>
    <error-prone.version>2.16</error-prone.version>
    <jamon.plugin.version>2.4.2</jamon.plugin.version>
    <lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
    <maven.antrun.version>1.8</maven.antrun.version>
    <maven.bundle.version>3.3.0</maven.bundle.version>
    <maven.checkstyle.version>3.1.0</maven.checkstyle.version>
    <maven.eclipse.version>2.10</maven.eclipse.version>
    <maven.gpg.version>3.0.1</maven.gpg.version>
    <maven.javadoc.version>3.4.0</maven.javadoc.version>
    <maven.warbucks.version>1.1.0</maven.warbucks.version>
    <maven.project.info.report.version>3.1.2</maven.project.info.report.version>
    <os.maven.version>1.5.0.Final</os.maven.version>
    <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version>
    <spotbugs.version>4.7.3</spotbugs.version>
    <spotbugs.maven.version>4.7.2.1</spotbugs.maven.version>
    <surefire.version>3.1.0</surefire.version>
    <wagon.ssh.version>2.12</wagon.ssh.version>
    <xml.maven.version>1.0.1</xml.maven.version>
    <spotless.version>2.27.2</spotless.version>
    <maven-site.version>3.12.0</maven-site.version>
    <!-- compression -->
    <aircompressor.version>0.24</aircompressor.version>
    <brotli4j.version>1.11.0</brotli4j.version>
    <lz4.version>1.8.0</lz4.version>
    <snappy.version>1.1.10.4</snappy.version>
    <xz.version>1.9</xz.version>
    <zstd-jni.version>1.5.5-2</zstd-jni.version>
    <hbase-thirdparty.version>4.1.5</hbase-thirdparty.version>
    <!-- Coverage properties -->
    <jacoco.version>0.8.8</jacoco.version>
    <jacocoArgLine/>
    <sonar-maven-plugin.version>3.9.1.2184</sonar-maven-plugin.version>
    <!-- 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>
    <rsgroup.test.jar>hbase-rsgroup-${project.version}-tests.jar</rsgroup.test.jar>
    <mapreduce.test.jar>hbase-mapreduce-${project.version}-tests.jar</mapreduce.test.jar>
    <zookeeper.test.jar>hbase-zookeeper-${project.version}-tests.jar</zookeeper.test.jar>
    <asyncfs.test.jar>hbase-asyncfs-${project.version}-tests.jar</asyncfs.test.jar>
    <shell-executable>bash</shell-executable>
    <surefire.provider>surefire-junit47</surefire.provider>
    <!-- default: run small & medium, medium with 2 threads -->
    <surefire.skipFirstPart>false</surefire.skipFirstPart>
    <surefire.skipSecondPart>false</surefire.skipSecondPart>
    <!-- Fork count varies w/ CPU count. Setting is conservative mostly determined
        by what apache jenkins nightly builds will tolerate (See HBASE-24072). Up this
      value is you want to burn through tests faster (could make for more failures
      if more contention around resources). There is a matching MAVEN_ARG
      in our yetus personality where we set the maven -T command to 0.25C too.
      For example, to run at a rate that is more furious than our 0.25C, do
      something like this:
         f="0.5C" ;  mvn -T$f -Dsurefire.firstPartForkCount=$f -Dsurefire.secondPartForkCount=$f test -PrunAllTests
    -->
    <surefire.firstPartForkCount>0.25C</surefire.firstPartForkCount>
    <surefire.secondPartForkCount>0.25C</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/>
    <!--
      Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value.
      This value is managed separately for jdk11. See below.
    -->
    <surefire.Xmx>2200m</surefire.Xmx>
    <surefire.Xms>1000m</surefire.Xms>

    <surefire.cygwinXmx>2200m</surefire.cygwinXmx>
    <surefire.cygwinXms>1000m</surefire.cygwinXms>
    <!--Mark our test runs with '-Dhbase.build.id' so we can identify a surefire test as ours in a process listing

      And for netty eventloops that have no explicit configuration, netty sets
      nioeventloopgroup thread count to CPU count * 2. Thats too much for mini
      clusters/tests.
     -->
    <hbase-surefire.argLine>-enableassertions -Dhbase.build.id=${build.id} -Xmx${surefire.Xmx}
      -Xms${surefire.Xms} -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
      -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
      -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
      -Dio.netty.eventLoopThreads=3</hbase-surefire.argLine>
    <hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx}
      -Xms${surefire.cygwinXms} -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
      "-Djava.library.path=${hadoop.library.path};${java.library.path}"
      -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
      -Dio.opentelemetry.context.enableStrictContext=true</hbase-surefire.cygwin-argLine>
    <hbase-surefire.jdk11.flags>-Dorg.apache.hbase.thirdparty.io.netty.tryReflectionSetAccessible=true
      --add-modules jdk.unsupported
      --add-opens java.base/java.nio=ALL-UNNAMED
      --add-opens java.base/sun.nio.ch=ALL-UNNAMED
      --add-opens java.base/java.lang=ALL-UNNAMED
      --add-opens java.base/jdk.internal.ref=ALL-UNNAMED
      --add-opens java.base/java.lang.reflect=ALL-UNNAMED
      --add-opens java.base/java.util=ALL-UNNAMED
      --add-opens java.base/java.util.concurrent=ALL-UNNAMED
      --add-exports java.base/jdk.internal.misc=ALL-UNNAMED
      --add-exports java.security.jgss/sun.security.krb5=ALL-UNNAMED
      --add-exports java.base/sun.net.dns=ALL-UNNAMED
      --add-exports java.base/sun.net.util=ALL-UNNAMED</hbase-surefire.jdk11.flags>
    <hbase-surefire.jdk17.flags>--add-opens java.base/jdk.internal.util.random=ALL-UNNAMED</hbase-surefire.jdk17.flags>
    <!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
    <argLine>${hbase-surefire.argLine} @{jacocoArgLine}</argLine>
    <extra.enforcer.version>1.5.1</extra.enforcer.version>
    <enforcer.version>3.0.0</enforcer.version>
    <restrict-imports.enforcer.version>0.14.0</restrict-imports.enforcer.version>
    <!-- Location of test resources -->
    <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
    <test.tmp.dir>${project.build.directory}</test.tmp.dir>
    <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
    <!--This build.id we'll add as flag so can identify which forked processes belong to our build.
        Default is the build start timestamp. Up on jenkins pass in the jenkins build id by setting
        this parameter by invoking mvn with -Dbuild.id=$BUILD_ID-->
    <build.id>${maven.build.timestamp}</build.id>
    <shell-executable>bash</shell-executable>
    <!-- Still need this to ignore some errors when building javadoc-->
    <doclint>none</doclint>
    <javax.activation.version>1.2.0</javax.activation.version>
  </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 javax.servlet.jsp:javax.servlet.jsp-api:2.3.1 since it
          is what glassfish's jspC jar uses and that's where we get our own need for a jsp-api.
        -->
      <!-- Intra-module dependencies -->
      <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-logging</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-logging</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-protocol-shaded</artifactId>
        <version>${project.version}</version>
      </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>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-rsgroup</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-rsgroup</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-replication</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-http</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-http</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-server</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-mapreduce</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-mapreduce</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-endpoint</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-shell</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-shell</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-thrift</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-thrift</artifactId>
        <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-examples</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-external-blockcache</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-it</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-client</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-metrics-api</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-metrics-api</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-metrics</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-metrics</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-rest</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-resource-bundle</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-zookeeper</artifactId>
        <version>${project.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-zookeeper</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-hbtop</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-shaded-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-shaded-mapreduce</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-asyncfs</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-asyncfs</artifactId>
        <version>${project.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-aircompressor</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-brotli</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-lz4</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-snappy</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-xz</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase</groupId>
        <artifactId>hbase-compression-zstd</artifactId>
        <version>${project.version}</version>
      </dependency>
      <!-- General dependencies -->
      <dependency>
        <groupId>com.github.stephenc.findbugs</groupId>
        <artifactId>findbugs-annotations</artifactId>
        <version>${findbugs-annotations.version}</version>
      </dependency>
      <!--
        Logging dependencies. In general, we use slf4j as the log facade in HBase, so all sub
        modules should depend on slf4j-api at compile scope, and then depend on log4j-slf4j-impl
        and log4j2 at test scope(and in hbase-assembly when shipping the binary) to redirect the
        log message to log4j. Do not introduce logging dependencies other than slf4j-api at compile
        scope as it will mess up the logging framework for downstream users.
        Here we also depend on jcl-over-slf4j and jul-to-slf4j, as some of the libraries we depend
        on use these logging framework so we need to redirect their log message to slf4j, and then
        redirect the log message to our log4j framework.
      -->
      <dependency>
        <groupId>org.codehaus.jettison</groupId>
        <artifactId>jettison</artifactId>
        <version>${jettison.version}</version>
      </dependency>
      <!-- Logging -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>${log4j2.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>
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>${caffeine.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${metrics-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpclient.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>${httpcore.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>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>${commons-math.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>${commons-cli.version}</version>
      </dependency>
      <dependency>
        <!-- commons-logging is only used by hbase-http's HttpRequestLog and hbase-server's
             HBaseTestingUtil.
          -->
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <exclusions>
          <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>jline</groupId>
        <artifactId>jline</artifactId>
        <version>${jline.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${thrift.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jruby</groupId>
        <artifactId>jruby-complete</artifactId>
        <version>${jruby.version}</version>
      </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>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.databind.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jamon</groupId>
        <artifactId>jamon-runtime</artifactId>
        <version>${jamon-runtime.version}</version>
      </dependency>
      <!-- REST dependencies -->
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${servlet.api.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>${wx.rs.api.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.activation</groupId>
        <artifactId>javax.activation</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${external.protobuf.version}</version>
      </dependency>
      <dependency>
        <!--This lib has JspC in it. Needed precompiling jsps in hbase-rest, etc.-->
        <groupId>org.glassfish.web</groupId>
        <artifactId>javax.servlet.jsp</artifactId>
        <version>${glassfish.jsp.version}</version>
      </dependency>
      <dependency>
        <!-- this lib is used by the compiled Jsp from the above JspC -->
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
      </dependency>
      <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>${glassfish.el.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>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <version>${hamcrest.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito-core.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-bom</artifactId>
        <version>${opentelemetry.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>io.opentelemetry</groupId>
        <artifactId>opentelemetry-semconv</artifactId>
        <version>${opentelemetry.version}-alpha</version>
      </dependency>
      <dependency>
        <groupId>io.opentelemetry.javaagent</groupId>
        <artifactId>opentelemetry-javaagent</artifactId>
        <version>${opentelemetry-javaagent.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-jdk18on</artifactId>
        <version>${bouncycastle.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.skyscreamer</groupId>
        <artifactId>jsonassert</artifactId>
        <version>${skyscreamer.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.kerby</groupId>
        <artifactId>kerb-core</artifactId>
        <version>${kerby.version}</version>
      </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>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-crypto</artifactId>
        <version>${commons-crypto.version}</version>
        <exclusions>
          <exclusion>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>${curator.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-client</artifactId>
        <version>${curator.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>${curator.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.yetus</groupId>
        <artifactId>audience-annotations</artifactId>
        <version>${audience-annotations.version}</version>
      </dependency>
      <!-- compression -->
      <dependency>
        <groupId>io.airlift</groupId>
        <artifactId>aircompressor</artifactId>
        <version>${aircompressor.version}</version>
      </dependency>
      <dependency>
        <groupId>org.lz4</groupId>
        <artifactId>lz4-java</artifactId>
        <version>${lz4.version}</version>
      </dependency>
      <dependency>
        <groupId>org.tukaani</groupId>
        <artifactId>xz</artifactId>
        <version>${xz.version}</version>
      </dependency>
      <dependency>
        <groupId>org.xerial.snappy</groupId>
        <artifactId>snappy-java</artifactId>
        <version>${snappy.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.luben</groupId>
        <artifactId>zstd-jni</artifactId>
        <version>${zstd-jni.version}</version>
      </dependency>
      <!-- shaded thirdparty -->
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-gson</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-miscellaneous</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-netty</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-protobuf</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-jetty</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-jersey</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-shaded-jackson-jaxrs-json-provider</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hbase.thirdparty</groupId>
        <artifactId>hbase-unsafe</artifactId>
        <version>${hbase-thirdparty.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-ri</artifactId>
        <version>2.3.2</version>
        <type>pom</type>
        <exclusions>
          <exclusion>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty</artifactId>
        <version>${netty3.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-bom</artifactId>
        <version>${netty4.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <!--REMOVE THIS. HERE TEMPORARILY.
         Implication is that every module needs junit which is not so.
         Cannot undo though because build runs test on each module and
         it fails if no junit. TODO. -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
         For specific version use a property and define it in the parent pom.
     -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
        </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>
          <configuration>
            <showWarnings>true</showWarnings>
            <showDeprecation>false</showDeprecation>
            <useIncrementalCompilation>false</useIncrementalCompilation>
            <compilerArgument>-Xlint:-options</compilerArgument>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven.javadoc.version}</version>
          <configuration>
            <source>${compileSource}</source>
          </configuration>
        </plugin>
        <!-- Test oriented plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
          <!-- Generic testing configuration for all packages -->
          <configuration>
            <groups>${surefire.firstPartGroups}</groups>
            <failIfNoTests>false</failIfNoTests>
            <failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
            <trimStackTrace>false</trimStackTrace>
            <skip>${surefire.skipFirstPart}</skip>
            <forkCount>${surefire.firstPartForkCount}</forkCount>
            <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
            <!--
              The counter in HBaseTestAppender will be broken if we set reuseForks to true, be
              careful when you want to change this value. See HBASE-26947 for more details.
            -->
            <reuseForks>false</reuseForks>
            <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
            <tempDir>${surefire.tempDir}</tempDir>
            <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
            <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
            <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
            <systemPropertyVariables>
              <test.build.classes>${test.build.classes}</test.build.classes>
              <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir>
              <java.util.logging.config.class>org.apache.hadoop.hbase.logging.JulToSlf4jInitializer</java.util.logging.config.class>
            </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>
            <properties>
              <property>
                <name>listener</name>
                <value>org.apache.hadoop.hbase.TimedOutTestsListener,org.apache.hadoop.hbase.HBaseClassTestRuleChecker,org.apache.hadoop.hbase.ResourceCheckerJUnitListener</value>
              </property>
            </properties>
          </configuration>
          <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>
          <executions>
            <execution>
              <id>secondPartTestsExecution</id>
              <goals>
                <goal>test</goal>
              </goals>
              <phase>test</phase>
              <configuration>
                <skip>${surefire.skipSecondPart}</skip>
                <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
                <!--
                  The counter in HBaseTestAppender will be broken if we set reuseForks to true, be
                  careful when you want to change this value. See HBASE-26947 for more details.
                -->
                <reuseForks>false</reuseForks>
                <forkCount>${surefire.secondPartForkCount}</forkCount>
                <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
                <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.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>${buildnumber.maven.version}</version>
        </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>${spotbugs.maven.version}</version>
          <configuration>
            <excludeFilterFile>${project.basedir}/../dev-support/spotbugs-exclude.xml</excludeFilterFile>
            <spotbugsXmlOutput>true</spotbugsXmlOutput>
            <xmlOutput>true</xmlOutput>
            <effort>Max</effort>
          </configuration>
          <dependencies>
            <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
            <dependency>
              <groupId>com.github.spotbugs</groupId>
              <artifactId>spotbugs</artifactId>
              <version>${spotbugs.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${build.helper.maven.version}</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>
              <goals>
                <goal>jar-no-fork</goal>
                <goal>test-jar-no-fork</goal>
              </goals>
              <phase>prepare-package</phase>
              <configuration>
                <excludes>
                  <exclude>log4j2.xml</exclude>
                </excludes>
              </configuration>
            </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>
          <configuration>
            <skipIfEmpty>true</skipIfEmpty>
            <excludes>
              <exclude>hbase-site.xml</exclude>
              <exclude>hdfs-site.xml</exclude>
              <exclude>mapred-queues.xml</exclude>
              <exclude>mapred-site.xml</exclude>
            </excludes>
          </configuration>
          <executions>
            <execution>
              <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>
              <phase>prepare-package</phase>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <!-- excludes are inherited -->
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes>
              <exclude>**/*.versionsBackup</exclude>
              <exclude>**/*.log</exclude>
              <exclude>**/.*</exclude>
              <exclude>**/*.tgz</exclude>
              <exclude>**/*.orig</exclude>
              <exclude>**/0000000000000016310</exclude>
              <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
              <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</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://jquery.org/license -->
              <exclude>**/jquery.min.js</exclude>
              <exclude>**/jquery.tablesorter.min.js</exclude>
              <exclude>**/parser-date-iso8601.min.js</exclude>
              <!-- MIT: bootstrap -->
              <exclude>**/src/main/resources/hbase-webapps/static/*/bootstrap*</exclude>
              <!-- BSD 3-clause: Vega, Vega-Lite, Vega-Embed -->
              <exclude>**/hbase-webapps/static/js/vega*.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/site/resources/repo/**</exclude>
              <exclude>**/dependency-reduced-pom.xml</exclude>
              <exclude>**/rat.txt</exclude>
              <!-- exclude the shaded protobuf files -->
              <exclude>**/shaded/com/google/protobuf/**</exclude>
              <exclude>**/src/main/patches/**</exclude>
              <!-- gzipped list of S3N URIs for hbase-it -->
              <exclude>**/CC-MAIN-2021-10-warc.paths.gz</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <!--Defer to the hbase-assembly sub-module.  It
             does all assembly-->
            <skipAssembly>true</skipAssembly>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.xolstice.maven.plugins</groupId>
          <artifactId>protobuf-maven-plugin</artifactId>
          <version>${protobuf.plugin.version}</version>
          <configuration>
            <protocArtifact>${external.protobuf.groupid}:protoc:${external.protoc.version}:exe:${os.detected.classifier}</protocArtifact>
            <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
            <clearOutputDirectory>false</clearOutputDirectory>
            <checkStaleness>true</checkStaleness>
          </configuration>
        </plugin>
        <plugin>
          <!-- Approach followed here is roughly the same as mentioned here:
          https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html
          -->
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven.checkstyle.version}</version>
          <configuration>
            <configLocation>hbase/checkstyle.xml</configLocation>
            <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
          <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>
        </plugin>
        <plugin>
          <groupId>net.revelc.code</groupId>
          <artifactId>warbucks-maven-plugin</artifactId>
          <version>${maven.warbucks.version}</version>
          <configuration>
            <ignoreRuleFailures>false</ignoreRuleFailures>
            <rules>
              <rule>
                <!-- exclude the generated java files -->
                <classPattern>(?!.*(.generated.|.tmpl.|\$)).*</classPattern>
                <includeTestClasses>false</includeTestClasses>
                <includePublicClasses>true</includePublicClasses>
                <includePackagePrivateClasses>false</includePackagePrivateClasses>
                <includeProtectedClasses>false</includeProtectedClasses>
                <includePrivateClasses>false</includePrivateClasses>
                <classAnnotationPattern>org[.]apache[.]yetus[.]audience[.]InterfaceAudience.*</classAnnotationPattern>
              </rule>
            </rules>
          </configuration>
          <executions>
            <execution>
              <id>run-warbucks</id>
              <goals>
                <goal>check</goal>
                <!-- runs at process-test-classes phase -->
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${enforcer.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>${extra.enforcer.version}</version>
            </dependency>
            <dependency>
              <groupId>de.skuzzle.enforcer</groupId>
              <artifactId>restrict-imports-enforcer-rule</artifactId>
              <version>${restrict-imports.enforcer.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${maven.gpg.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>1.3.0</version>
        <configuration>
          <embedBuildProfileDependencies>true</embedBuildProfileDependencies>
          <updatePomFile>true</updatePomFile>
          <flattenMode>oss</flattenMode>
        </configuration>
        <executions>
          <!-- enable flattening -->
          <execution>
            <id>flatten</id>
            <goals>
              <goal>flatten</goal>
            </goals>
            <phase>process-resources</phase>
          </execution>
          <!-- ensure proper cleanup -->
          <execution>
            <id>flatten.clean</id>
            <goals>
              <goal>clean</goal>
            </goals>
            <phase>clean</phase>
          </execution>
        </executions>
      </plugin>
      <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>
        <executions>
          <execution>
            <id>display-info</id>
            <goals>
              <goal>display-info</goal>
            </goals>
            <phase>initialize</phase>
            <inherited>false</inherited>
          </execution>
          <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>banned-commons-logging</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>commons-logging:commons-logging</exclude>
                  </excludes>
                  <message>We don't use commons-logging any more, so do not depend on it directly.</message>
                  <searchTransitive>false</searchTransitive>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-jetty</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.eclipse.jetty:**</exclude>
                  </excludes>
                  <message>Use shaded jetty instead</message>
                  <searchTransitive>false</searchTransitive>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-jersey</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.glassfish.jersey.containers:**</exclude>
                    <exclude>org.glassfish.jersey.core:**</exclude>
                  </excludes>
                  <message>Use shaded jersey instead</message>
                  <searchTransitive>false</searchTransitive>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-htrace</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.apache.htrace:**</exclude>
                  </excludes>
                  <message>Use OpenTelemetry instead</message>
                  <searchTransitive>false</searchTransitive>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-other-logging-framework</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>log4j:*</exclude>
                    <exclude>org.slf4j:slf4j-log4j12</exclude>
                    <exclude>ch.qos.reload4j:*</exclude>
                    <exclude>org.slf4j:slf4j-reload4j</exclude>
                    <exclude>ch.qos.logback:*</exclude>
                  </excludes>
                  <message>We do not allow other logging frameworks as now we use log4j2</message>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-slf4j-log4j12</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.slf4j:slf4j-log4j12</exclude>
                  </excludes>
                  <message>We do not allow slf4j-log4j12 dependency as now we use log4j-slf4j-impl</message>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>banned-bouncycastle-jdk15on</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.bouncycastle:*-jdk15on</exclude>
                  </excludes>
                  <message>Use org.bouncycastle:*-jdk18on instead</message>
                  <searchTransitive>true</searchTransitive>
                </bannedDependencies>
              </rules>
            </configuration>
          </execution>
          <execution>
            <id>check-aggregate-license</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <!-- must check after LICENSE is built at 'generate-resources' -->
            <phase>process-resources</phase>
            <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>
          <execution>
            <id>banned-illegal-imports</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <phase>process-sources</phase>
            <configuration>
              <rules>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use SLF4j for logging</reason>
                  <bannedImports>
                    <bannedImport>org.apache.commons.logging.**</bannedImport>
                    <bannedImport>org.apache.log4j.**</bannedImport>
                    <bannedImport>org.apache.logging.log4j.**</bannedImport>
                  </bannedImports>
                  <exclusions>
                    <!-- Exclude this one as it is a log4j2 appender implementation -->
                    <exclusion>org.apache.hadoop.hbase.logging.HBaseTestAppender</exclusion>
                  </exclusions>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>false</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Do not use log4j2 directly in code, see Log4jUtils in hbase-logging for more details.</reason>
                  <bannedImports>
                    <bannedImport>org.apache.logging.log4j.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded version in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>com.google.common.**</bannedImport>
                    <bannedImport>io.netty.**</bannedImport>
                    <bannedImport>org.apache.commons.cli.**</bannedImport>
                    <bannedImport>org.apache.commons.collections.**</bannedImport>
                    <bannedImport>org.apache.commons.collections4.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Do not use shaded classes from other dependencies</reason>
                  <bannedImports>
                    <bannedImport>org.apache.curator.shaded.**</bannedImport>
                    <bannedImport>org.apache.htrace.shaded.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded gson in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>org.codehaus.jackson.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use commons lang 3</reason>
                  <bannedImports>
                    <bannedImport>org.apache.commons.lang.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use yetus IA and IS annotations</reason>
                  <bannedImports>
                    <bannedImport>org.apache.hadoop.classificatio.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Do not use htrace</reason>
                  <bannedImports>
                    <bannedImport>org.htrace.**</bannedImport>
                    <bannedImport>org.apache.htrace.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded jetty in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>org.eclipse.jetty.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded jersey in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>org.glassfish.jersey.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>You should never use this style of annotations(i.e, 'this is for test only')
                    in IA.Public or IA.LimitedPrivate classes. Use IA.Private to tell users this is
                    not for public use.
                    For IA.Private classes, use RestrictedApi annotation in error prone instead.</reason>
                  <bannedImports>
                    <bannedImport>org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded javax.ws.rs in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>javax.ws.rs.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use shaded jackson-jaxrs-json-provider in hbase-thirdparty</reason>
                  <bannedImports>
                    <bannedImport>com.fasterxml.jackson.jaxrs.**</bannedImport>
                  </bannedImports>
                </restrictImports>
                <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
                  <includeTestCode>true</includeTestCode>
                  <commentLineBufferSize>512</commentLineBufferSize>
                  <reason>Use junit4 instead</reason>
                  <bannedImports>
                    <bannedImport>junit.framework.**</bannedImport>
                  </bannedImports>
                </restrictImports>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- parent-module only plugins -->
      <!-- Special configuration for spotbugs just in the parent so
      the filter file location can be more general (see definition in pluginManagement) -->
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>spotbugs</goal>
            </goals>
            <inherited>false</inherited>
            <configuration>
              <excludeFilterFile>${basedir}/dev-support/spotbugs-exclude.xml</excludeFilterFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>${maven-site.version}</version>
        <configuration>
          <siteDirectory>${basedir}/src/site</siteDirectory>
          <customBundle>${basedir}/src/site/custom/project-info-report.properties</customBundle>
          <inputEncoding>UTF-8</inputEncoding>
          <outputEncoding>UTF-8</outputEncoding>
        </configuration>
        <dependencies>
          <dependency>
            <!-- add support for ssh/scp -->
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>${wagon.ssh.version}</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <!--$NO-MVN-MAN-VER$ -->
        <inherited>false</inherited>
        <configuration>
          <escapeString>\</escapeString>
        </configuration>
        <executions>
          <execution>
            <id>copy-htaccess</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>site</phase>
            <configuration>
              <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/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>site</phase>
            <configuration>
              <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/site/resources/</directory>
                  <includes>
                    <include>book/**</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <configuration>
          <timestampFormat>yyyy</timestampFormat>
          <timestampPropertyName>build.year</timestampPropertyName>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>create-timestamp</goal>
            </goals>
            <phase>validate</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${maven.bundle.version}</version>
        <extensions>true</extensions>
        <inherited>true</inherited>
      </plugin>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>${spotless.version}</version>
        <configuration>
          <!-- define a language-specific format -->
          <java>
            <excludes>
              <exclude>**/generated/*</exclude>
              <exclude>**/package-info.java</exclude>
            </excludes>
            <!--
              e.g., remove the following lines:
              "* @param paramName"
              "* @throws ExceptionType"
              "* @return returnType"'
              Multiline to allow anchors on newlines
              See https://errorprone.info/bugpattern/EmptyBlockTag
            -->
            <replaceRegex>
              <name>Remove unhelpful javadoc stubs</name>
              <searchRegex>(?m)^ *\* *@(?:param|throws|return) *\w* *\n</searchRegex>
              <replacement/>
            </replaceRegex>
            <!--
              e.g., rewrite
              /** @return blabla */
              or
              /**
               * @return blabla
               */
              to
              /** Returns blabla */
              See https://errorprone.info/bugpattern/MissingSummary
              https://google.github.io/styleguide/javaguide.html#s7.2-summary-fragment
            -->
            <replaceRegex>
              <name>Purge single returns tag multi line</name>
              <searchRegex>(?m)^ */\*\*\n *\* *@return *(.*) *\n *\*/$</searchRegex>
              <replacement>/** Returns $1 */</replacement>
            </replaceRegex>
            <replaceRegex>
              <name>Purge single returns tag single line</name>
              <searchRegex>^ */\*\* *@return *(.*) *\*/$</searchRegex>
              <replacement>/** Returns $1 */</replacement>
            </replaceRegex>
            <!-- apply a specific flavor -->
            <eclipse>
              <file>${session.executionRootDirectory}/dev-support/hbase_eclipse_formatter.xml</file>
            </eclipse>
            <importOrder>
              <file>${session.executionRootDirectory}/dev-support/eclipse.importorder</file>
            </importOrder>
            <trimTrailingWhitespace/>
            <endWithNewline/>
            <removeUnusedImports/>
          </java>
          <pom>
            <sortPom>
              <expandEmptyElements>false</expandEmptyElements>
            </sortPom>
          </pom>
          <formats>
            <!-- you can define as many formats as you want, each is independent -->
            <format>
              <!-- define the files to apply to -->
              <includes>
                <include>**/*.xml</include>
                <include>**/*.sh</include>
                <include>**/*.py</include>
                <include>**/Jenkinsfile*</include>
                <include>**/*.md</include>
                <include>*.md</include>
                <include>**/*.txt</include>
                <include>*.txt</include>
              </includes>
              <excludes>
                <exclude>**/target/**</exclude>
                <exclude>**/dependency-reduced-pom.xml</exclude>
              </excludes>
              <!-- define the steps to apply to those files -->
              <trimTrailingWhitespace/>
              <endWithNewline/>
            </format>
            <format>
              <!--
                We have some files which have special license header which must be kept, so
                here we add a special format section to apply license header, and leave the
                java section above only used for formatting code style
              -->
              <includes>
                <include>src/main/java/**/*.java</include>
                <include>src/test/java/**/*.java</include>
              </includes>
              <excludes>
                <exclude>**/generated/*</exclude>
                <exclude>**/package-info.java</exclude>
                <!-- ByteRange, from Google protobuf -->
                <exclude>src/main/java/org/apache/hadoop/hbase/util/AbstractByteRange.java</exclude>
                <exclude>src/main/java/org/apache/hadoop/hbase/util/SimpleMutableByteRange.java</exclude>
                <exclude>src/main/java/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.java</exclude>
                <!-- Metrics, from Josh Elser -->
                <exclude>src/main/java/org/apache/hadoop/hbase/metrics/impl/HBaseMetrics2HadoopMetricsAdapter.java</exclude>
                <!-- https://github.com/ept/warc-hadoop, from Martin Kleppmann -->
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCFileReader.java</exclude>
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCFileWriter.java</exclude>
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCInputFormat.java</exclude>
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCOutputFormat.java</exclude>
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCRecord.java</exclude>
                <exclude>src/test/java/org/apache/hadoop/hbase/test/util/warc/WARCWritable.java</exclude>
              </excludes>
              <licenseHeader>
                <file>${session.executionRootDirectory}/dev-support/license-header</file>
                <delimiter>package</delimiter>
              </licenseHeader>
            </format>
          </formats>
        </configuration>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>kr.motd.maven</groupId>
        <artifactId>os-maven-plugin</artifactId>
        <version>${os.maven.version}</version>
      </extension>
    </extensions>
  </build>
  <!-- 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>${maven.project.info.report.version}</version>
        <!-- see src/site/site.xml for selected reports -->
        <configuration>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
        <reportSets>
          <reportSet>
            <reports>
              <report>dependencies</report>
              <report>dependency-convergence</report>
              <report>dependency-info</report>
              <report>dependency-management</report>
              <report>index</report>
              <report>issue-management</report>
              <report>licenses</report>
              <report>mailing-lists</report>
              <report>plugin-management</report>
              <report>plugins</report>
              <report>team</report>
              <report>scm</report>
              <report>summary</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <tags>
            <tag>
              <name>apiNote</name>
              <placement>a</placement>
              <head>API Note:</head>
            </tag>
          </tags>
        </configuration>
        <reportSets>
          <!-- Dev API -->
          <reportSet>
            <id>devapi</id>
            <reports>
              <report>aggregate-no-fork</report>
            </reports>
            <configuration>
              <destDir>devapidocs</destDir>
              <name>Developer API</name>
              <description>The full HBase API, including private and unstable APIs</description>
              <sourceFileExcludes>
                <exclude>**/generated/*</exclude>
                <exclude>**/protobuf/*</exclude>
              </sourceFileExcludes>
              <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
              <show>private</show>
              <!-- (shows all classes and members) -->
              <quiet>true</quiet>
              <linksource>true</linksource>
              <sourcetab>2</sourcetab>
              <validateLinks>true</validateLinks>
              <fixClassComment>true</fixClassComment>
              <fixFieldComment>true</fixFieldComment>
              <fixMethodComment>true</fixMethodComment>
              <fixTags>all</fixTags>
              <notimestamp>true</notimestamp>
              <locale>en_US</locale>
              <!-- Pass some options straight to the javadoc executable since it is easier -->
              <additionalJOption>-J-Xmx2G</additionalJOption>
              <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
              <additionalDependencies>
                <additionalDependency>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-core</artifactId>
                  <version>${mockito-core.version}</version>
                </additionalDependency>
                <additionalDependency>
                  <groupId>org.hamcrest</groupId>
                  <artifactId>hamcrest-core</artifactId>
                  <version>${hamcrest.version}</version>
                </additionalDependency>
                <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
                <additionalDependency>
                  <groupId>com.google.code.findbugs</groupId>
                  <artifactId>jsr305</artifactId>
                  <version>3.0.2</version>
                </additionalDependency>
              </additionalDependencies>
              <inherited>false</inherited>
            </configuration>
          </reportSet>
          <reportSet>
            <id>testdevapi</id>
            <reports>
              <report>test-aggregate-no-fork</report>
            </reports>
            <configuration>
              <destDir>testdevapidocs</destDir>
              <name>Developer API</name>
              <description>The full HBase API test code, including private and unstable APIs</description>
              <sourceFileExcludes>
                <exclude>**/generated/*</exclude>
                <exclude>**/protobuf/*</exclude>
              </sourceFileExcludes>
              <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
              <show>private</show>
              <!-- (shows all classes and members) -->
              <quiet>true</quiet>
              <linksource>true</linksource>
              <sourcetab>2</sourcetab>
              <validateLinks>true</validateLinks>
              <fixClassComment>true</fixClassComment>
              <fixFieldComment>true</fixFieldComment>
              <fixMethodComment>true</fixMethodComment>
              <fixTags>all</fixTags>
              <notimestamp>true</notimestamp>
              <locale>en_US</locale>
              <!-- Pass some options straight to the javadoc executable since it is easier -->
              <additionalJOption>-J-Xmx2G</additionalJOption>
              <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
              <additionalDependencies>
                <additionalDependency>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-core</artifactId>
                  <version>${mockito-core.version}</version>
                </additionalDependency>
                <additionalDependency>
                  <groupId>org.hamcrest</groupId>
                  <artifactId>hamcrest-core</artifactId>
                  <version>${hamcrest.version}</version>
                </additionalDependency>
                <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
                <additionalDependency>
                  <groupId>com.google.code.findbugs</groupId>
                  <artifactId>jsr305</artifactId>
                  <version>3.0.2</version>
                </additionalDependency>
              </additionalDependencies>
              <inherited>false</inherited>
            </configuration>
          </reportSet>

          <!-- User API -->
          <reportSet>
            <id>userapi</id>
            <reports>
              <report>aggregate-no-fork</report>
            </reports>
            <configuration>
              <doclet>org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet</doclet>
              <docletArtifact>
                <groupId>org.apache.yetus</groupId>
                <artifactId>audience-annotations</artifactId>
                <version>${javadoc.audience-annotations.version}</version>
              </docletArtifact>
              <useStandardDocletOptions>true</useStandardDocletOptions>
              <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:*.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.metrics2*:org.apache.hadoop.hbase.io.compress*</excludePackageNames>
              <!-- switch on dependency-driven aggregation -->
              <includeDependencySources>false</includeDependencySources>
              <sourceFilesExclude>**/generated/*</sourceFilesExclude>
              <show>protected</show>
              <!-- (shows only public and protected classes and members) -->
              <quiet>true</quiet>
              <linksource>true</linksource>
              <sourcetab>2</sourcetab>
              <validateLinks>true</validateLinks>
              <fixClassComment>true</fixClassComment>
              <fixFieldComment>true</fixFieldComment>
              <fixMethodComment>true</fixMethodComment>
              <fixTags>all</fixTags>
              <notimestamp>true</notimestamp>
              <locale>en_US</locale>
              <!-- Pass some options straight to the javadoc executable since it is easier -->
              <additionalJOption>-J-Xmx2G</additionalJOption>
              <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
              <additionalDependencies>
                <additionalDependency>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-core</artifactId>
                  <version>${mockito-core.version}</version>
                </additionalDependency>
                <additionalDependency>
                  <groupId>org.hamcrest</groupId>
                  <artifactId>hamcrest-core</artifactId>
                  <version>${hamcrest.version}</version>
                </additionalDependency>
                <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
                <additionalDependency>
                  <groupId>com.google.code.findbugs</groupId>
                  <artifactId>jsr305</artifactId>
                  <version>3.0.2</version>
                </additionalDependency>
              </additionalDependencies>
              <inherited>false</inherited>
            </configuration>
          </reportSet>
          <!-- User Test API -->
          <reportSet>
            <id>testuserapi</id>
            <reports>
              <report>test-aggregate-no-fork</report>
            </reports>
            <configuration>
              <doclet>org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet</doclet>
              <docletArtifact>
                <groupId>org.apache.yetus</groupId>
                <artifactId>audience-annotations</artifactId>
                <version>${javadoc.audience-annotations.version}</version>
              </docletArtifact>
              <useStandardDocletOptions>true</useStandardDocletOptions>
              <destDir>testapidocs</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:*.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.metrics2*:org.apache.hadoop.hbase.io.compress*</excludePackageNames>
              <!-- switch on dependency-driven aggregation -->
              <includeDependencySources>false</includeDependencySources>
              <sourceFilesExclude>**/generated/*</sourceFilesExclude>
              <show>protected</show>
              <!-- (shows only public and protected classes and members) -->
              <quiet>true</quiet>
              <linksource>true</linksource>
              <sourcetab>2</sourcetab>
              <validateLinks>true</validateLinks>
              <fixClassComment>true</fixClassComment>
              <fixFieldComment>true</fixFieldComment>
              <fixMethodComment>true</fixMethodComment>
              <fixTags>all</fixTags>
              <notimestamp>true</notimestamp>
              <locale>en_US</locale>
              <!-- Pass some options straight to the javadoc executable since it is easier -->
              <additionalJOption>-J-Xmx2G</additionalJOption>
              <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
              <additionalDependencies>
                <additionalDependency>
                  <groupId>org.mockito</groupId>
                  <artifactId>mockito-core</artifactId>
                  <version>${mockito-core.version}</version>
                </additionalDependency>
                <additionalDependency>
                  <groupId>org.hamcrest</groupId>
                  <artifactId>hamcrest-core</artifactId>
                  <version>${hamcrest.version}</version>
                </additionalDependency>
                <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
                <additionalDependency>
                  <groupId>com.google.code.findbugs</groupId>
                  <artifactId>jsr305</artifactId>
                  <version>3.0.2</version>
                </additionalDependency>
              </additionalDependencies>
              <inherited>false</inherited>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>${maven.checkstyle.version}</version>
        <configuration>
          <excludes>target/**</excludes>
        </configuration>
      </plugin>

    </plugins>
  </reporting>

  <!--
  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>
      <properties>
        <maven.compiler.source>${compileSource}</maven.compiler.source>
        <maven.compiler.target>${compileSource}</maven.compiler.target>
      </properties>
    </profile>
    <profile>
      <id>build-with-jdk11</id>
      <activation>
        <jdk>[11,)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>${releaseTarget}</maven.compiler.release>
        <!-- TODO: replicate logic for windows support -->
        <argLine>${hbase-surefire.jdk11.flags}
          ${hbase-surefire.argLine}
          @{jacocoArgLine}</argLine>
        <!--
          Value to use for surefire when running jdk11.
          TODO: replicate logic for windows
        -->
        <surefire.Xmx>2200m</surefire.Xmx>
        <!--
          com.sun.javadoc and com.sun.tools.doclets are both deprecated in java 11 and will
          fail the javadoc generating, so we need to use yetus 0.14.1 where it uses jdk.javadoc
          and jdk.javadoc.doclet instead
        -->
        <javadoc.audience-annotations.version>0.14.1</javadoc.audience-annotations.version>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>${maven.javadoc.version}</version>
              <configuration>
                <source>${compileSource}</source>
                <!--
                  Need to add this option to ignore the source errors, epsecially that we reference
                  test code in hbase-testing-util's main code.
                -->
                <additionalOptions>--ignore-source-errors</additionalOptions>
                <additionalJOptions>
                  <additionalJOption>-J-Xmx2G</additionalJOption>
                  <additionalJOption>-J--add-exports</additionalJOption>
                  <additionalJOption>-Jjdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED</additionalJOption>
                </additionalJOptions>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>hadoop3-profile-required</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireProperty>
                      <!--
                        $ JAVA_HOME=... mvn -Dhadoop.profile=3.0 -PrunSmallTests help:active-profiles enforcer:display-info clean test
                        enforcer plugin does not see active profiles on sub-modules, so enforce based
                        on the presence of the activation property and value.
                      -->
                      <property>hadoop.profile</property>
                      <regex>.*3\.0$</regex>
                      <message>HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.</message>
                      <regexMessage>HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.</regexMessage>
                    </requireProperty>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>build-with-jdk17</id>
      <activation>
        <jdk>[17,)</jdk>
      </activation>
      <properties>
        <argLine>${hbase-surefire.jdk11.flags}
          ${hbase-surefire.jdk17.flags}
          ${hbase-surefire.argLine}
          @{jacocoArgLine}</argLine>
      </properties>
    </profile>
    <!-- profile activated by the Jenkins patch testing job -->
    <profile>
      <id>jenkins.patch</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>HBasePatchProcess</name>
        </property>
      </activation>
      <properties>
        <surefire.rerunFailingTestsCount>2</surefire.rerunFailingTestsCount>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <goals>
                  <goal>run</goal>
                </goals>
                <phase>validate</phase>
                <configuration>
                  <tasks>
                    <echo>Maven Execution Environment</echo>
                    <echo>MAVEN_OPTS="${env.MAVEN_OPTS}"</echo>
                  </tasks>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jacoco</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <sonar.exclusions>**/generated/**/*</sonar.exclusions>
        <sonar.coverage.exclusions>**/generated/**/*,hbase-it/**,**/hbase-logging/**/*,**/hbase-testing-util/**/*,
          **/hbase-protocol-shaded/**/*,**/hbase-external-blockcache/**/*,**/hbase-examples/**/*,
          **/hbase-archetypes/**/*</sonar.coverage.exclusions>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco.version}</version>
            <configuration>
              <excludes>
                <exclude>**/generated/**/*</exclude>
              </excludes>
            </configuration>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <phase>initialize</phase>
                <configuration>
                  <propertyName>jacocoArgLine</propertyName>
                  <append>true</append>
                </configuration>
              </execution>
              <execution>
                <id>report</id>
                <goals>
                  <goal>report</goal>
                </goals>
                <phase>prepare-package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>${sonar-maven-plugin.version}</version>
          </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} @{jacocoArgLine}</argLine>
      </properties>
    </profile>
    <!-- this profile should match the name of the release profile in the root asf pom -->
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <!-- This should insert itself in place of the normal deploy plugin and then
               handle either closing or dropping the staging repository for us depending
               on if the build succeeds.
            -->
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <extensions>true</extensions>
            <configuration>
              <nexusUrl>https://repository.apache.org/</nexusUrl>
              <serverId>apache.releases.https</serverId>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </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>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>${enforcer.version}</version>
            <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>
                  <ignoreClasses>
                    <ignoreClass>module-info</ignoreClass>
                  </ignoreClasses>
                </enforceBytecodeVersion>
              </rules>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>extra-enforcer-rules</artifactId>
                <version>${extra.enforcer.version}</version>
              </dependency>
            </dependencies>
          </plugin>
          <plugin>
            <groupId>org.cyclonedx</groupId>
            <artifactId>cyclonedx-maven-plugin</artifactId>
            <version>2.7.10</version>
            <executions>
              <execution>
                <goals>
                  <goal>makeBom</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </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>
        <!--This property is for hadoops netty. HBase netty
             comes in via hbase-thirdparty hbase-shaded-netty-->
        <netty.hadoop.version>3.10.6.Final</netty.hadoop.version>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</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>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</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>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-app</artifactId>
            <version>${hadoop-two.version}</version>
            <type>test-jar</type>
            <exclusions>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-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>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </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>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>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</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>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</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>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>junit</groupId>
                <artifactId>junit</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>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</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>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <!--
              a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
              duplicated here because hadoop-3.0 piggy-backs off the hadoop-2.0 profile.
            -->
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
            <version>${javax.activation.version}</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop-two.version}</version>
            <exclusions>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </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>
              <!--If we comment this in, a few tests in hbase-mapreduce
                   fail. They depend on jersey-core somehow. But excluding
                   jersey-core here messes up hbase-it because jersey-core
                   implements a 1.x jaxrs Response Interface when we depend
                   on the 2.x Interface... . Letting this jar come in
                   transitively here but will exclude it down in hbase-it.
                   See HBASE-22029.
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-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>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop-two.version}</version>
            <scope>test</scope>
            <exclusions>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>bouncycastle</groupId>
                <artifactId>bcprov-jdk15</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-annotations</artifactId>
            <version>${hadoop-two.version}</version>
          </dependency>

          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-distcp</artifactId>
            <version>${hadoop-two.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs-client</artifactId>
            <version>${hadoop-two.version}</version>
          </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.profile>3.0</hadoop.profile>
        <hadoop.version>${hadoop-three.version}</hadoop.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-three-compat.xml</assembly.file>
        <!--This property is for hadoops netty. HBase netty
             comes in via hbase-thirdparty hbase-shaded-netty-->
        <netty.hadoop.version>3.10.5.Final</netty.hadoop.version>
      </properties>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>${hadoop-three.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.inject</groupId>
                <artifactId>javax.inject</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>${hadoop-three.version}</version>
            <exclusions>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</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>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-app</artifactId>
            <version>${hadoop-three.version}</version>
            <type>test-jar</type>
            <exclusions>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.fusesource.leveldbjni</groupId>
                <artifactId>leveldbjni-all</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.openlabtesting.leveldbjni</groupId>
                <artifactId>leveldbjni-all</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop-three.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</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>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.fusesource.leveldbjni</groupId>
                <artifactId>leveldbjni-all</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.openlabtesting.leveldbjni</groupId>
                <artifactId>leveldbjni-all</artifactId>
              </exclusion>
            </exclusions>
          </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>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>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</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>
              <exclusion>
                <groupId>net.minidev</groupId>
                <artifactId>json-smart</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop-three.version}</version>
            <exclusions>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-json</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-servlet</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-server</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <!--
             a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
           -->
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
            <version>1.2.0</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop-three.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
            <exclusions>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>*</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>jsp-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
              </exclusion>
              <exclusion>
                <groupId>javax.ws.rs</groupId>
                <artifactId>jsr311-api</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>
              <!--If we comment this in, a few tests in hbase-mapreduce
                   fail. They depend on jersey-core somehow. But excluding
                   jersey-core here messes up hbase-it because jersey-core
                   implements a 1.x jaxrs Response Interface when we depend
                   on the 2.x Interface... . Letting this jar come in
                   transitively here but will exclude it down in hbase-it.
                   See HBASE-22029.
             <exclusion>
               <groupId>com.sun.jersey</groupId>
               <artifactId>jersey-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>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop-three.version}</version>
            <scope>test</scope>
            <exclusions>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
              </exclusion>
              <exclusion>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
              </exclusion>
              <exclusion>
                <groupId>bouncycastle</groupId>
                <artifactId>bcprov-jdk15</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-distcp</artifactId>
            <version>${hadoop-three.version}</version>
          </dependency>

          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs-client</artifactId>
            <version>${hadoop-three.version}</version>
          </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 all 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.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.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>
      <id>runMiscTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runCoprocessorTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.CoprocessorTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runClientTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runMasterTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runMapredTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runMapreduceTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runRegionServerTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RegionServerTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runVerySlowMapReduceTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>

    <profile>
      <id>runVerySlowRegionServerTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>

    <profile>
      <id>runFilterTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runIOTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runRestTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runRPCTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runReplicationTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ReplicationTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runSecurityTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runFlakeyTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests</surefire.firstPartGroups>
        <surefire.secondPartGroups/>
      </properties>
    </profile>
    <profile>
      <id>runZKTests</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
        <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
        <surefire.skipFirstPart>false</surefire.skipFirstPart>
        <surefire.skipSecondPart>true</surefire.skipSecondPart>
        <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests</surefire.firstPartGroups>
        <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" 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>
                <goals>
                  <goal>setup</goal>
                </goals>
                <phase>process-sources</phase>
              </execution>
              <execution>
                <id>clover</id>
                <goals>
                  <goal>clover</goal>
                </goals>
                <phase>site</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Used by the website generation script on jenkins to
           do a local install of the jars we need to run a normal
           site build w/o forking.
        -->
      <id>site-install-step</id>
      <properties>
        <skipTests>true</skipTests>
        <maven.javadoc.skip>true</maven.javadoc.skip>
        <enforcer.skip>true</enforcer.skip>
        <checkstyle.skip>true</checkstyle.skip>
        <spotbugs.skip>true</spotbugs.skip>
        <warbucks.skip>true</warbucks.skip>
      </properties>
    </profile>
    <profile>
      <!-- Used by the website generation script on jenkins to
           mitigate the impact of unneeded build forks while building
           our javadocs.
        -->
      <id>site-build-step</id>
      <properties>
        <skipTests>true</skipTests>
        <enforcer.skip>true</enforcer.skip>
        <maven.main.skip>true</maven.main.skip>
        <maven.test.skip>true</maven.test.skip>
        <warbucks.skip>true</warbucks.skip>
        <protoc.skip>true</protoc.skip>
        <remoteresources.skip>true</remoteresources.skip>
      </properties>
    </profile>
    <profile>
      <id>eclipse-specific</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <!-- General config for eclipse classpath/settings -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-eclipse-plugin</artifactId>
              <version>${maven.eclipse.version}</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>${lifecycle.mapping.version}</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/>
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <versionRange>${enforcer.version}</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>
                          <goal>bundle</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>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>aarch64</id>
      <activation>
        <os>
          <family>linux</family>
          <arch>aarch64</arch>
        </os>
      </activation>
      <properties>
        <external.protobuf.groupid>org.openlabtesting.protobuf</external.protobuf.groupid>
        <external.protoc.version>2.5.0.2</external.protoc.version>
      </properties>
    </profile>
  </profiles>
</project>
