Preparing hbase release 2.4.11RC1; tagging and updates to CHANGES.md and RELEASENOTES.md
[hbase.git] / pom.xml
blob18e4c09a9aafaf277957e8ffd442d221049e8853
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3 <!--
4 /**
5  * Licensed to the Apache Software Foundation (ASF) under one
6  * or more contributor license agreements.  See the NOTICE file
7  * distributed with this work for additional information
8  * regarding copyright ownership.  The ASF licenses this file
9  * to you under the Apache License, Version 2.0 (the
10  * "License"); you may not use this file except in compliance
11  * with the License.  You may obtain a copy of the License at
12  *
13  *     http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
23   ON MVN COMPILE NOT WORKING
25   If you wondering why 'mvn compile' does not work building HBase
26   (in particular, if you are doing it for the first time), instead do
27   'mvn package'.  If you are interested in the full story, see
28   https://issues.apache.org/jira/browse/HBASE-6795.
30 -->
31   <modelVersion>4.0.0</modelVersion>
32   <parent>
33     <groupId>org.apache</groupId>
34     <artifactId>apache</artifactId>
35     <version>23</version>
36     <relativePath/>
37     <!-- no parent resolution -->
38   </parent>
39   <groupId>org.apache.hbase</groupId>
40   <artifactId>hbase</artifactId>
41   <packaging>pom</packaging>
42   <version>2.4.11</version>
43   <name>Apache HBase</name>
44   <description>
45     Apache HBase™ is the Hadoop database. Use it when you need
46     random, realtime read/write access to your Big Data.
47     This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters
48     of commodity hardware.
49   </description>
50   <url>https://hbase.apache.org</url>
51   <inceptionYear>2007</inceptionYear>
52   <!-- Set here so we can consistently use the correct name, even on branches with
53        an ASF parent pom older than v15. Also uses the url from v18.
54     -->
55   <licenses>
56     <license>
57       <name>Apache License, Version 2.0</name>
58       <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
59       <distribution>repo</distribution>
60     </license>
61   </licenses>
63   <modules>
64     <module>hbase-build-configuration</module>
65     <module>hbase-replication</module>
66     <module>hbase-mapreduce</module>
67     <module>hbase-resource-bundle</module>
68     <module>hbase-http</module>
69     <module>hbase-server</module>
70     <module>hbase-thrift</module>
71     <module>hbase-shell</module>
72     <module>hbase-protocol-shaded</module>
73     <module>hbase-protocol</module>
74     <module>hbase-client</module>
75     <module>hbase-hadoop-compat</module>
76     <module>hbase-common</module>
77     <module>hbase-procedure</module>
78     <module>hbase-endpoint</module>
79     <module>hbase-it</module>
80     <module>hbase-examples</module>
81     <module>hbase-assembly</module>
82     <module>hbase-testing-util</module>
83     <module>hbase-annotations</module>
84     <module>hbase-rest</module>
85     <module>hbase-checkstyle</module>
86     <module>hbase-external-blockcache</module>
87     <module>hbase-shaded</module>
88     <module>hbase-archetypes</module>
89     <module>hbase-metrics-api</module>
90     <module>hbase-metrics</module>
91     <module>hbase-zookeeper</module>
92     <module>hbase-hbtop</module>
93     <module>hbase-asyncfs</module>
94     <module>hbase-logging</module>
95   </modules>
96   <scm>
97     <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
98     <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase.git</developerConnection>
99     <url>https://gitbox.apache.org/repos/asf?p=hbase.git</url>
100   </scm>
101   <issueManagement>
102     <system>JIRA</system>
103     <url>https://issues.apache.org/jira/browse/HBASE</url>
104   </issueManagement>
105   <mailingLists>
106     <mailingList>
107       <name>User List</name>
108       <subscribe>user-subscribe@hbase.apache.org</subscribe>
109       <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe>
110       <post>user@hbase.apache.org</post>
111       <archive>http://mail-archives.apache.org/mod_mbox/hbase-user/</archive>
112       <otherArchives>
113         <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
114       </otherArchives>
115     </mailingList>
116     <mailingList>
117       <name>Developer List</name>
118       <subscribe>dev-subscribe@hbase.apache.org</subscribe>
119       <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe>
120       <post>dev@hbase.apache.org</post>
121       <archive>http://mail-archives.apache.org/mod_mbox/hbase-dev/</archive>
122       <otherArchives>
123         <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
124       </otherArchives>
125     </mailingList>
126     <mailingList>
127       <name>Commits List</name>
128       <subscribe>commits-subscribe@hbase.apache.org</subscribe>
129       <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
130       <archive>http://mail-archives.apache.org/mod_mbox/hbase-commits/</archive>
131     </mailingList>
132     <mailingList>
133       <name>Issues List</name>
134       <subscribe>issues-subscribe@hbase.apache.org</subscribe>
135       <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe>
136       <archive>http://mail-archives.apache.org/mod_mbox/hbase-issues/</archive>
137     </mailingList>
138     <mailingList>
139       <name>Builds List</name>
140       <subscribe>builds-subscribe@hbase.apache.org</subscribe>
141       <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe>
142       <archive>http://mail-archives.apache.org/mod_mbox/hbase-builds/</archive>
143     </mailingList>
144     <mailingList>
145       <name>User (ZH) List</name>
146       <subscribe>user-zh-subscribe@hbase.apache.org</subscribe>
147       <unsubscribe>user-zh-unsubscribe@hbase.apache.org</unsubscribe>
148       <post>user-zh@hbase.apache.org</post>
149       <archive>https://lists.apache.org/list.html?user-zh@hbase.apache.org</archive>
150     </mailingList>
151   </mailingLists>
152   <developers>
153     <developer>
154       <id>acube123</id>
155       <name>Amitanand S. Aiyer</name>
156       <email>acube123@apache.org</email>
157       <timezone>-8</timezone>
158     </developer>
159     <developer>
160       <id>appy</id>
161       <name>Apekshit Sharma</name>
162       <email>appy@apache.org</email>
163       <timezone>-8</timezone>
164     </developer>
165     <developer>
166       <id>anastasia</id>
167       <name>Anastasia Braginsky</name>
168       <email>anastasia@apache.org</email>
169       <timezone>+2</timezone>
170     </developer>
171     <developer>
172       <id>apurtell</id>
173       <name>Andrew Purtell</name>
174       <email>apurtell@apache.org</email>
175       <timezone>-8</timezone>
176     </developer>
177     <developer>
178       <id>anoopsamjohn</id>
179       <name>Anoop Sam John</name>
180       <email>anoopsamjohn@apache.org</email>
181       <timezone>+5</timezone>
182     </developer>
183     <developer>
184       <id>antonov</id>
185       <name>Mikhail Antonov</name>
186       <email>antonov@apache.org</email>
187       <timezone>-8</timezone>
188     </developer>
189     <developer>
190       <id>ashishsinghi</id>
191       <name>Ashish Singhi</name>
192       <email>ashishsinghi@apache.org</email>
193       <timezone>+5</timezone>
194     </developer>
195     <developer>
196       <id>binlijin</id>
197       <name>Lijin Bin</name>
198       <email>binlijin@apache.org</email>
199       <timezone>+8</timezone>
200     </developer>
201     <developer>
202       <id>busbey</id>
203       <name>Sean Busbey</name>
204       <email>busbey@apache.org</email>
205       <timezone>-6</timezone>
206     </developer>
207     <developer>
208       <id>chenheng</id>
209       <name>Heng Chen</name>
210       <email>chenheng@apache.org</email>
211       <timezone>+8</timezone>
212     </developer>
213     <developer>
214       <id>chia7712</id>
215       <name>Chia-Ping Tsai</name>
216       <email>chia7712@apache.org</email>
217       <timezone>+8</timezone>
218     </developer>
219     <developer>
220       <id>ddas</id>
221       <name>Devaraj Das</name>
222       <email>ddas@apache.org</email>
223       <timezone>-8</timezone>
224     </developer>
225     <developer>
226       <id>dimaspivak</id>
227       <name>Dima Spivak</name>
228       <email>dimaspivak@apache.org</email>
229       <timezone>-8</timezone>
230     </developer>
231     <developer>
232       <id>dmeil</id>
233       <name>Doug Meil</name>
234       <email>dmeil@apache.org</email>
235       <timezone>-5</timezone>
236     </developer>
237     <developer>
238       <id>eclark</id>
239       <name>Elliott Clark</name>
240       <email>eclark@apache.org</email>
241       <timezone>-8</timezone>
242     </developer>
243     <developer>
244       <id>elserj</id>
245       <name>Josh Elser</name>
246       <email>elserj@apache.org</email>
247       <timezone>-5</timezone>
248     </developer>
249     <developer>
250       <id>enis</id>
251       <name>Enis Soztutar</name>
252       <email>enis@apache.org</email>
253       <timezone>-8</timezone>
254     </developer>
255     <developer>
256       <id>eshcar</id>
257       <name>Eshcar Hillel</name>
258       <email>eshcar@apache.org</email>
259       <timezone>+2</timezone>
260     </developer>
261     <developer>
262       <id>fenghh</id>
263       <name>Honghua Feng</name>
264       <email>fenghh@apache.org</email>
265       <timezone>+8</timezone>
266     </developer>
267     <developer>
268       <id>garyh</id>
269       <name>Gary Helmling</name>
270       <email>garyh@apache.org</email>
271       <timezone>-8</timezone>
272     </developer>
273     <developer>
274       <id>gchanan</id>
275       <name>Gregory Chanan</name>
276       <email>gchanan@apache.org</email>
277       <timezone>-8</timezone>
278     </developer>
279     <developer>
280       <id>jdcryans</id>
281       <name>Jean-Daniel Cryans</name>
282       <email>jdcryans@apache.org</email>
283       <timezone>-8</timezone>
284     </developer>
285     <developer>
286       <id>jeffreyz</id>
287       <name>Jeffrey Zhong</name>
288       <email>jeffreyz@apache.org</email>
289       <timezone>-8</timezone>
290     </developer>
291     <developer>
292       <id>jerryjch</id>
293       <name>Jing Chen (Jerry) He</name>
294       <email>jerryjch@apache.org</email>
295       <timezone>-8</timezone>
296     </developer>
297     <developer>
298       <id>jyates</id>
299       <name>Jesse Yates</name>
300       <email>jyates@apache.org</email>
301       <timezone>-8</timezone>
302     </developer>
303     <developer>
304       <id>jgray</id>
305       <name>Jonathan Gray</name>
306       <email>jgray@fb.com</email>
307       <timezone>-8</timezone>
308     </developer>
309     <developer>
310       <id>jingchengdu</id>
311       <name>Jingcheng Du</name>
312       <email>jingchengdu@apache.org</email>
313       <timezone>+8</timezone>
314     </developer>
315     <developer>
316       <id>esteban</id>
317       <name>Esteban Gutierrez</name>
318       <email>esteban@apache.org</email>
319       <timezone>-8</timezone>
320     </developer>
321     <developer>
322       <id>jmhsieh</id>
323       <name>Jonathan Hsieh</name>
324       <email>jmhsieh@apache.org</email>
325       <timezone>-8</timezone>
326     </developer>
327     <developer>
328       <id>jxiang</id>
329       <name>Jimmy Xiang</name>
330       <email>jxiang@apache.org</email>
331       <timezone>-8</timezone>
332     </developer>
333     <developer>
334       <id>kannan</id>
335       <name>Kannan Muthukkaruppan</name>
336       <email>kannan@fb.com</email>
337       <timezone>-8</timezone>
338     </developer>
339     <developer>
340       <id>karthik</id>
341       <name>Karthik Ranganathan</name>
342       <email>kranganathan@fb.com</email>
343       <timezone>-8</timezone>
344     </developer>
345     <developer>
346       <id>larsgeorge</id>
347       <name>Lars George</name>
348       <email>larsgeorge@apache.org</email>
349       <timezone>+1</timezone>
350     </developer>
351     <developer>
352       <id>larsh</id>
353       <name>Lars Hofhansl</name>
354       <email>larsh@apache.org</email>
355       <timezone>-8</timezone>
356     </developer>
357     <developer>
358       <id>liangxie</id>
359       <name>Liang Xie</name>
360       <email>liangxie@apache.org</email>
361       <timezone>+8</timezone>
362     </developer>
363     <developer>
364       <id>liushaohui</id>
365       <name>Shaohui Liu</name>
366       <email>liushaohui@apache.org</email>
367       <timezone>+8</timezone>
368     </developer>
369     <developer>
370       <id>liyin</id>
371       <name>Liyin Tang</name>
372       <email>liyin.tang@fb.com</email>
373       <timezone>-8</timezone>
374     </developer>
375     <developer>
376       <id>liyu</id>
377       <name>Yu Li</name>
378       <email>liyu@apache.org</email>
379       <timezone>+8</timezone>
380     </developer>
381     <developer>
382       <id>mbautin</id>
383       <name>Mikhail Bautin</name>
384       <email>mbautin@apache.org</email>
385       <timezone>-8</timezone>
386     </developer>
387     <developer>
388       <id>mbertozzi</id>
389       <name>Matteo Bertozzi</name>
390       <email>mbertozzi@apache.org</email>
391       <timezone>0</timezone>
392     </developer>
393     <developer>
394       <id>misty</id>
395       <name>Misty Stanley-Jones</name>
396       <email>misty@apache.org</email>
397       <timezone>+10</timezone>
398     </developer>
399     <developer>
400       <id>ndimiduk</id>
401       <name>Nick Dimiduk</name>
402       <email>ndimiduk@apache.org</email>
403       <timezone>-8</timezone>
404     </developer>
405     <developer>
406       <id>nkeywal</id>
407       <name>Nicolas Liochon</name>
408       <email>nkeywal@apache.org</email>
409       <timezone>+1</timezone>
410     </developer>
411     <developer>
412       <id>nspiegelberg</id>
413       <name>Nicolas Spiegelberg</name>
414       <email>nspiegelberg@fb.com</email>
415       <timezone>-8</timezone>
416     </developer>
417     <developer>
418       <id>octo47</id>
419       <name>Andrey Stepachev</name>
420       <email>octo47@gmail.com</email>
421       <timezone>0</timezone>
422     </developer>
423     <developer>
424       <id>rajeshbabu</id>
425       <name>Rajeshbabu Chintaguntla</name>
426       <email>rajeshbabu@apache.org</email>
427       <timezone>+5</timezone>
428     </developer>
429     <developer>
430       <id>ramkrishna</id>
431       <name>Ramkrishna S Vasudevan</name>
432       <email>ramkrishna@apache.org</email>
433       <timezone>+5</timezone>
434     </developer>
435     <developer>
436       <id>rawson</id>
437       <name>Ryan Rawson</name>
438       <email>rawson@apache.org</email>
439       <timezone>-8</timezone>
440     </developer>
441     <developer>
442       <id>sershe</id>
443       <name>Sergey Shelukhin</name>
444       <email>sershe@apache.org</email>
445       <timezone>-8</timezone>
446     </developer>
447     <developer>
448       <id>ssrungarapu</id>
449       <name>Srikanth Srungarapu</name>
450       <email>ssrungarapu@apache.org</email>
451       <timezone>-8</timezone>
452     </developer>
453     <developer>
454       <id>stack</id>
455       <name>Michael Stack</name>
456       <email>stack@apache.org</email>
457       <timezone>-8</timezone>
458     </developer>
459     <developer>
460       <id>syuanjiang</id>
461       <name>Stephen Yuan Jiang</name>
462       <email>syuanjiang@apache.org</email>
463       <timezone>-8</timezone>
464     </developer>
465     <developer>
466       <id>tedyu</id>
467       <name>Ted Yu</name>
468       <email>yuzhihong@gmail.com</email>
469       <timezone>-8</timezone>
470     </developer>
471     <developer>
472       <id>todd</id>
473       <name>Todd Lipcon</name>
474       <email>todd@apache.org</email>
475       <timezone>-8</timezone>
476     </developer>
477     <developer>
478       <id>toffer</id>
479       <name>Francis Liu</name>
480       <email>toffer@apache.org</email>
481       <timezone>-8</timezone>
482     </developer>
483     <developer>
484       <id>virag</id>
485       <name>Virag Kothari</name>
486       <email>virag@yahoo-inc.com</email>
487       <timezone>-8</timezone>
488     </developer>
489     <developer>
490       <id>yangzhe1991</id>
491       <name>Phil Yang</name>
492       <email>yangzhe1991@apache.org</email>
493       <timezone>+8</timezone>
494     </developer>
495     <developer>
496       <id>zghao</id>
497       <name>Guanghao Zhang</name>
498       <email>zghao@apache.org</email>
499       <timezone>+8</timezone>
500     </developer>
501     <developer>
502       <id>zhangduo</id>
503       <name>Duo Zhang</name>
504       <email>zhangduo@apache.org</email>
505       <timezone>+8</timezone>
506     </developer>
507     <developer>
508       <id>zjushch</id>
509       <name>Chunhui Shen</name>
510       <email>zjushch@apache.org</email>
511       <timezone>+8</timezone>
512     </developer>
513   </developers>
514   <build>
515     <extensions>
516       <extension>
517         <groupId>kr.motd.maven</groupId>
518         <artifactId>os-maven-plugin</artifactId>
519         <version>${os.maven.version}</version>
520       </extension>
521     </extensions>
522     <!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
523          For specific version use a property and define it in the parent pom.
524      -->
525     <pluginManagement>
526       <plugins>
527         <plugin>
528           <groupId>org.apache.maven.plugins</groupId>
529           <artifactId>maven-remote-resources-plugin</artifactId>
530         </plugin>
531         <plugin>
532           <groupId>org.apache.maven.plugins</groupId>
533           <artifactId>maven-release-plugin</artifactId>
534           <configuration>
535             <!--You need this profile. It'll sign your artifacts.
536                 I'm not sure if this config. actually works though.
537                 I've been specifying -Papache-release on the command-line
538              -->
539             <releaseProfiles>apache-release</releaseProfiles>
540             <!--This stops our running tests for each stage of maven release.
541                 But it builds the test jar.  From SUREFIRE-172.
542               -->
543             <arguments>-Dmaven.test.skip.exec ${arguments}</arguments>
544             <goals>${goals}</goals>
545             <pomFileName>pom.xml</pomFileName>
546           </configuration>
547         </plugin>
548         <plugin>
549           <groupId>org.apache.maven.plugins</groupId>
550           <artifactId>maven-compiler-plugin</artifactId>
551           <configuration>
552             <source>${compileSource}</source>
553             <target>${compileSource}</target>
554             <showWarnings>true</showWarnings>
555             <showDeprecation>false</showDeprecation>
556             <useIncrementalCompilation>false</useIncrementalCompilation>
557             <compilerArgument>-Xlint:-options</compilerArgument>
558           </configuration>
559         </plugin>
560         <plugin>
561           <groupId>org.apache.maven.plugins</groupId>
562           <artifactId>maven-javadoc-plugin</artifactId>
563           <version>${maven.javadoc.version}</version>
564           <configuration>
565             <source>${compileSource}</source>
566           </configuration>
567         </plugin>
568         <!-- Test oriented plugins -->
569         <plugin>
570           <groupId>org.apache.maven.plugins</groupId>
571           <artifactId>maven-surefire-plugin</artifactId>
572           <version>${surefire.version}</version>
573           <dependencies>
574             <!-- by default surefire selects dynamically the connector to the unit tests
575               tool. We want to use always the same as the different connectors can have different
576               bugs and behaviour. -->
577             <dependency>
578               <groupId>org.apache.maven.surefire</groupId>
579               <artifactId>${surefire.provider}</artifactId>
580               <version>${surefire.version}</version>
581             </dependency>
582           </dependencies>
583           <!-- Generic testing configuration for all packages -->
584           <configuration>
585             <groups>${surefire.firstPartGroups}</groups>
586             <failIfNoTests>false</failIfNoTests>
587             <trimStackTrace>false</trimStackTrace>
588             <skip>${surefire.skipFirstPart}</skip>
589             <forkCount>${surefire.firstPartForkCount}</forkCount>
590             <reuseForks>false</reuseForks>
591             <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
592             <tempDir>${surefire.tempDir}</tempDir>
593             <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
594             <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
595             <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
596             <systemPropertyVariables>
597               <test.build.classes>${test.build.classes}</test.build.classes>
598               <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir>
599               <java.util.logging.config.class>org.apache.hadoop.hbase.logging.JulToSlf4jInitializer</java.util.logging.config.class>
600             </systemPropertyVariables>
601             <excludes>
602               <!-- users can add -D option to skip particular test classes
603              ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java
604               -->
605               <exclude>${test.exclude.pattern}</exclude>
606             </excludes>
607             <properties>
608               <property>
609                 <name>listener</name>
610                 <value>org.apache.hadoop.hbase.TimedOutTestsListener,org.apache.hadoop.hbase.HBaseClassTestRuleChecker,org.apache.hadoop.hbase.ResourceCheckerJUnitListener</value>
611               </property>
612             </properties>
613           </configuration>
614           <executions>
615             <execution>
616               <id>secondPartTestsExecution</id>
617               <phase>test</phase>
618               <goals>
619                 <goal>test</goal>
620               </goals>
621               <configuration>
622                 <skip>${surefire.skipSecondPart}</skip>
623                 <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
624                 <reuseForks>false</reuseForks>
625                 <forkCount>${surefire.secondPartForkCount}</forkCount>
626                 <groups>${surefire.secondPartGroups}</groups>
627                 <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
628               </configuration>
629             </execution>
630           </executions>
631         </plugin>
632         <plugin>
633           <groupId>org.apache.maven.plugins</groupId>
634           <artifactId>maven-surefire-report-plugin</artifactId>
635           <version>${surefire.version}</version>
636         </plugin>
637         <plugin>
638           <groupId>org.codehaus.mojo</groupId>
639           <artifactId>buildnumber-maven-plugin</artifactId>
640           <version>${buildnumber.maven.version}</version>
641         </plugin>
642         <plugin>
643           <groupId>com.github.spotbugs</groupId>
644           <artifactId>spotbugs-maven-plugin</artifactId>
645           <version>${spotbugs.maven.version}</version>
646           <configuration>
647             <excludeFilterFile>${project.basedir}/../dev-support/spotbugs-exclude.xml</excludeFilterFile>
648             <spotbugsXmlOutput>true</spotbugsXmlOutput>
649             <xmlOutput>true</xmlOutput>
650             <effort>Max</effort>
651           </configuration>
652           <dependencies>
653           <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
654             <dependency>
655               <groupId>com.github.spotbugs</groupId>
656               <artifactId>spotbugs</artifactId>
657               <version>${spotbugs.version}</version>
658             </dependency>
659           </dependencies>
660         </plugin>
661         <plugin>
662           <groupId>org.codehaus.mojo</groupId>
663           <artifactId>build-helper-maven-plugin</artifactId>
664           <version>${build.helper.maven.version}</version>
665         </plugin>
666         <plugin>
667           <artifactId>maven-antrun-plugin</artifactId>
668           <version>${maven.antrun.version}</version>
669         </plugin>
670         <plugin>
671           <groupId>org.jamon</groupId>
672           <artifactId>jamon-maven-plugin</artifactId>
673           <version>${jamon.plugin.version}</version>
674         </plugin>
675         <!-- Make a jar and put the sources in the jar.
676         In the parent pom, so submodules will do the right thing. -->
677         <plugin>
678           <groupId>org.apache.maven.plugins</groupId>
679           <artifactId>maven-source-plugin</artifactId>
680           <executions>
681             <execution>
682               <id>attach-sources</id>
683               <phase>prepare-package</phase>
684               <goals>
685                 <goal>jar-no-fork</goal>
686                 <goal>test-jar-no-fork</goal>
687               </goals>
688               <configuration>
689                 <excludes>
690                   <exclude>log4j.properties</exclude>
691                 </excludes>
692               </configuration>
693             </execution>
694           </executions>
695         </plugin>
696         <!-- General configuration for submodules who want to build a test jar -->
697         <plugin>
698           <groupId>org.apache.maven.plugins</groupId>
699           <artifactId>maven-jar-plugin</artifactId>
700           <executions>
701             <execution>
702               <phase>prepare-package</phase>
703               <goals>
704                   <!--This goal will install a -test.jar when we do install
705                       See https://maven.apache.org/guides/mini/guide-attached-tests.html
706                    -->
707                 <goal>test-jar</goal>
708               </goals>
709             </execution>
710           </executions>
711           <configuration>
712             <skipIfEmpty>true</skipIfEmpty>
713             <excludes>
714               <exclude>hbase-site.xml</exclude>
715               <exclude>hdfs-site.xml</exclude>
716               <exclude>mapred-queues.xml</exclude>
717               <exclude>mapred-site.xml</exclude>
718             </excludes>
719           </configuration>
720         </plugin>
721         <plugin>
722           <!-- excludes are inherited -->
723           <groupId>org.apache.rat</groupId>
724           <artifactId>apache-rat-plugin</artifactId>
725           <configuration>
726             <excludes>
727               <exclude>**/*.versionsBackup</exclude>
728               <exclude>**/*.log</exclude>
729               <exclude>**/.*</exclude>
730               <exclude>**/*.tgz</exclude>
731               <exclude>**/*.orig</exclude>
732               <exclude>**/0000000000000016310</exclude>
733               <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
734               <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
735               <exclude>**/.idea/**</exclude>
736               <exclude>**/*.iml</exclude>
737               <exclude>**/CHANGES.txt</exclude>
738               <exclude>**/generated/**</exclude>
739               <exclude>**/gen-*/**</exclude>
740               <!-- No material contents -->
741               <exclude>conf/regionservers</exclude>
742               <exclude>**/*.avpr</exclude>
743               <exclude>**/*.svg</exclude>
744               <!-- non-standard notice file from jruby included by reference -->
745               <exclude>**/src/main/resources/META-INF/LEGAL</exclude>
746               <!-- MIT: https://github.com/asciidoctor/asciidoctor/blob/master/LICENSE.adoc -->
747               <exclude>**/src/main/asciidoc/hbase.css</exclude>
748               <!-- MIT https://jquery.org/license -->
749               <exclude>**/jquery.min.js</exclude>
750               <exclude>**/jquery.tablesorter.min.js</exclude>
751               <exclude>**/parser-date-iso8601.min.js</exclude>
752               <!-- MIT: bootstrap -->
753               <exclude>**/src/main/resources/hbase-webapps/static/*/bootstrap*</exclude>
754               <!-- vector graphics -->
755               <exclude>**/*.vm</exclude>
756               <!-- apache doxia generated -->
757               <exclude>**/control</exclude>
758               <exclude>**/conffile</exclude>
759               <!-- auto-gen docs -->
760               <exclude>docs/*</exclude>
761               <exclude>logs/*</exclude>
762               <!--  exclude source control files -->
763               <exclude>.git/**</exclude>
764               <exclude>.svn/**</exclude>
765               <exclude>**/.settings/**</exclude>
766               <exclude>**/patchprocess/**</exclude>
767               <exclude>src/site/resources/repo/**</exclude>
768               <exclude>**/dependency-reduced-pom.xml</exclude>
769               <exclude>**/rat.txt</exclude>
770               <!-- exclude the shaded protobuf files -->
771               <exclude>**/shaded/com/google/protobuf/**</exclude>
772               <exclude>**/src/main/patches/**</exclude>
773             </excludes>
774           </configuration>
775         </plugin>
776         <plugin>
777           <artifactId>maven-assembly-plugin</artifactId>
778           <configuration>
779             <!--Defer to the hbase-assembly sub-module.  It
780              does all assembly-->
781             <skipAssembly>true</skipAssembly>
782           </configuration>
783         </plugin>
784         <plugin>
785           <groupId>org.xolstice.maven.plugins</groupId>
786           <artifactId>protobuf-maven-plugin</artifactId>
787           <version>${protobuf.plugin.version}</version>
788           <configuration>
789             <protocArtifact>${external.protobuf.groupid}:protoc:${external.protoc.version}:exe:${os.detected.classifier}</protocArtifact>
790             <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
791             <clearOutputDirectory>false</clearOutputDirectory>
792             <checkStaleness>true</checkStaleness>
793           </configuration>
794         </plugin>
795         <plugin>
796           <!-- Approach followed here is roughly the same as mentioned here:
797           https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html
798           -->
799           <groupId>org.apache.maven.plugins</groupId>
800           <artifactId>maven-checkstyle-plugin</artifactId>
801           <version>${maven.checkstyle.version}</version>
802           <dependencies>
803             <dependency>
804               <groupId>org.apache.hbase</groupId>
805               <artifactId>hbase-checkstyle</artifactId>
806               <version>${project.version}</version>
807             </dependency>
808             <dependency>
809               <groupId>com.puppycrawl.tools</groupId>
810               <artifactId>checkstyle</artifactId>
811               <version>${checkstyle.version}</version>
812             </dependency>
813           </dependencies>
814           <configuration>
815             <configLocation>hbase/checkstyle.xml</configLocation>
816             <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
817             <includeTestSourceDirectory>true</includeTestSourceDirectory>
818           </configuration>
819         </plugin>
820         <plugin>
821           <groupId>net.revelc.code</groupId>
822           <artifactId>warbucks-maven-plugin</artifactId>
823           <version>${maven.warbucks.version}</version>
824           <configuration>
825             <ignoreRuleFailures>false</ignoreRuleFailures>
826             <rules>
827               <rule>
828                 <!-- exclude the generated java files -->
829                 <classPattern>(?!.*(.generated.|.tmpl.|\$)).*</classPattern>
830                 <includeTestClasses>false</includeTestClasses>
831                 <includePublicClasses>true</includePublicClasses>
832                 <includePackagePrivateClasses>false</includePackagePrivateClasses>
833                 <includeProtectedClasses>false</includeProtectedClasses>
834                 <includePrivateClasses>false</includePrivateClasses>
835                 <classAnnotationPattern>org[.]apache[.]yetus[.]audience[.]InterfaceAudience.*</classAnnotationPattern>
836               </rule>
837             </rules>
838           </configuration>
839           <executions>
840             <execution>
841               <id>run-warbucks</id>
842               <goals>
843                 <goal>check</goal><!-- runs at process-test-classes phase -->
844               </goals>
845             </execution>
846           </executions>
847         </plugin>
848         <plugin>
849           <groupId>org.apache.maven.plugins</groupId>
850           <artifactId>maven-enforcer-plugin</artifactId>
851           <version>${enforcer.version}</version>
852           <dependencies>
853             <dependency>
854               <groupId>org.codehaus.mojo</groupId>
855               <artifactId>extra-enforcer-rules</artifactId>
856               <version>${extra.enforcer.version}</version>
857             </dependency>
858             <dependency>
859               <groupId>de.skuzzle.enforcer</groupId>
860               <artifactId>restrict-imports-enforcer-rule</artifactId>
861               <version>${restrict-imports.enforcer.version}</version>
862             </dependency>
863           </dependencies>
864         </plugin>
865         <plugin>
866           <groupId>org.apache.maven.plugins</groupId>
867           <artifactId>maven-gpg-plugin</artifactId>
868           <version>${maven.gpg.version}</version>
869         </plugin>
870       </plugins>
871     </pluginManagement>
872     <plugins>
873       <plugin>
874         <groupId>org.codehaus.mojo</groupId>
875         <artifactId>build-helper-maven-plugin</artifactId>
876         <executions>
877           <execution>
878             <id>negate-license-bundles-property</id>
879             <goals>
880               <goal>bsh-property</goal>
881             </goals>
882             <configuration>
883               <source>skip.license.check = !${license.bundles.dependencies};</source>
884               <properties>
885                 <property>skip.license.check</property>
886               </properties>
887             </configuration>
888           </execution>
889           <!-- sets where to find the generated LICENSE files -->
890           <execution>
891             <id>create-license-file-path-property</id>
892             <goals>
893               <goal>regex-property</goal>
894             </goals>
895             <configuration>
896               <name>license.aggregate.path</name>
897               <value>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</value>
898               <regex>\\</regex>
899               <replacement>/</replacement>
900               <failIfNoMatch>false</failIfNoMatch>
901             </configuration>
902           </execution>
903         </executions>
904       </plugin>
905       <plugin>
906         <groupId>org.apache.maven.plugins</groupId>
907         <artifactId>maven-enforcer-plugin</artifactId>
908         <executions>
909           <execution>
910             <id>display-info</id>
911             <phase>initialize</phase>
912             <goals>
913               <goal>display-info</goal>
914             </goals>
915             <inherited>false</inherited>
916           </execution>
917           <execution>
918             <id>hadoop-profile-min-maven-min-java-banned-xerces</id>
919             <goals>
920               <goal>enforce</goal>
921             </goals>
922             <configuration>
923               <rules>
924                 <!-- Help people activate profiles correctly -->
925                 <evaluateBeanshell>
926                   <condition>System.getProperty("hadoop-profile", "").isEmpty()</condition>
927                   <message>The hadoop-profile property is unused, did you mean to set hadoop.profile instead?</message>
928                 </evaluateBeanshell>
929                 <!-- The earliest maven version we verify builds for via ASF Jenkins -->
930                 <requireMavenVersion>
931                   <version>[${maven.min.version},)</version>
932                   <message>Maven is out of date.
933   HBase requires at least version ${maven.min.version} of Maven to properly build from source.
934   You appear to be using an older version. You can use either "mvn -version" or
935   "mvn enforcer:display-info" to verify what version is active.
936   See the reference guide on building for more information: https://hbase.apache.org/book.html#build
937                   </message>
938                 </requireMavenVersion>
939                 <!-- The earliest JVM version we verify builds for via ASF Jenkins -->
940                 <requireJavaVersion>
941                   <version>[${java.min.version},)</version>
942                   <message>Java is out of date.
943   HBase requires at least version ${java.min.version} of the JDK to properly build from source.
944   You appear to be using an older version. You can use either "mvn -version" or
945   "mvn enforcer:display-info" to verify what version is active.
946   See the reference guide on building for more information: https://hbase.apache.org/book.html#build
947                   </message>
948                 </requireJavaVersion>
949                 <bannedDependencies>
950                   <excludes>
951                     <exclude>xerces:xercesImpl</exclude>
952                   </excludes>
953                   <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message>
954                 </bannedDependencies>
955               </rules>
956             </configuration>
957           </execution>
958           <execution>
959             <id>banned-jsr305</id>
960             <goals>
961               <goal>enforce</goal>
962             </goals>
963             <configuration>
964               <rules>
965                 <bannedDependencies>
966                   <excludes>
967                     <exclude>com.google.code.findbugs:jsr305</exclude>
968                   </excludes>
969                   <message>We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321.</message>
970                 </bannedDependencies>
971               </rules>
972             </configuration>
973           </execution>
974           <execution>
975             <id>banned-commons-logging</id>
976             <goals>
977               <goal>enforce</goal>
978             </goals>
979             <configuration>
980               <rules>
981                 <bannedDependencies>
982                   <excludes>
983                     <exclude>commons-logging:commons-logging</exclude>
984                   </excludes>
985                   <message>
986                     We don't use commons-logging any more, so do not depend on it directly.
987                   </message>
988                   <searchTransitive>false</searchTransitive>
989                 </bannedDependencies>
990               </rules>
991             </configuration>
992           </execution>
993           <execution>
994             <id>banned-jetty</id>
995             <goals>
996               <goal>enforce</goal>
997             </goals>
998             <configuration>
999               <rules>
1000                 <bannedDependencies>
1001                   <excludes>
1002                     <exclude>org.eclipse.jetty:**</exclude>
1003                   </excludes>
1004                   <message>
1005                     Use shaded jetty instead
1006                   </message>
1007                   <searchTransitive>false</searchTransitive>
1008                 </bannedDependencies>
1009               </rules>
1010             </configuration>
1011           </execution>
1012           <execution>
1013             <id>banned-jersey</id>
1014             <goals>
1015               <goal>enforce</goal>
1016             </goals>
1017             <configuration>
1018               <rules>
1019                 <bannedDependencies>
1020                   <excludes>
1021                     <exclude>org.glassfish.jersey.containers:**</exclude>
1022                     <exclude>org.glassfish.jersey.core:**</exclude>
1023                   </excludes>
1024                   <message>
1025                     Use shaded jersey instead
1026                   </message>
1027                   <searchTransitive>false</searchTransitive>
1028                 </bannedDependencies>
1029               </rules>
1030             </configuration>
1031           </execution>
1032           <execution>
1033             <id>banned-log4j</id>
1034             <goals>
1035               <goal>enforce</goal>
1036             </goals>
1037             <configuration>
1038               <rules>
1039                 <bannedDependencies>
1040                   <excludes>
1041                     <exclude>log4j:**</exclude>
1042                     <exclude>org.slf4j:slf4j-log4j12</exclude>
1043                   </excludes>
1044                   <message>
1045                     Use reload4j instead
1046                   </message>
1047                 </bannedDependencies>
1048               </rules>
1049             </configuration>
1050           </execution>
1051           <execution>
1052             <id>check-aggregate-license</id>
1053             <!-- must check after LICENSE is built at 'generate-resources' -->
1054             <phase>process-resources</phase>
1055             <goals>
1056               <goal>enforce</goal>
1057             </goals>
1058             <configuration>
1059               <rules>
1060                 <evaluateBeanshell>
1061                   <condition>
1062                     File license = new File("${license.aggregate.path}");
1064                     // Beanshell does not support try-with-resources,
1065                     // so we must close this scanner manually
1066                     Scanner scanner = new Scanner(license);
1068                     while (scanner.hasNextLine()) {
1069                       if (scanner.nextLine().startsWith("ERROR:")) {
1070                         scanner.close();
1071                         return false;
1072                       }
1073                     }
1074                     scanner.close();
1075                     return true;
1076                   </condition>
1077                   <message>
1078                     License errors detected, for more detail find ERROR in
1079                     ${license.aggregate.path}
1080                   </message>
1081                 </evaluateBeanshell>
1082               </rules>
1083               <skip>${skip.license.check}</skip>
1084             </configuration>
1085           </execution>
1086           <execution>
1087             <id>banned-illegal-imports</id>
1088             <phase>process-sources</phase>
1089             <goals>
1090               <goal>enforce</goal>
1091             </goals>
1092             <configuration>
1093               <rules>
1094                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1095                   <includeTestCode>true</includeTestCode>
1096                   <commentLineBufferSize>512</commentLineBufferSize>
1097                   <reason>Use SLF4j for logging</reason>
1098                   <bannedImports>
1099                     <bannedImport>org.apache.commons.logging.**</bannedImport>
1100                   </bannedImports>
1101                 </restrictImports>
1102                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1103                   <includeTestCode>false</includeTestCode>
1104                   <commentLineBufferSize>512</commentLineBufferSize>
1105                   <reason>
1106                     Do not use log4j directly in code, see Log4jUtils in hbase-logging for more details.
1107                   </reason>
1108                   <bannedImports>
1109                     <bannedImport>org.apache.log4j.**</bannedImport>
1110                   </bannedImports>
1111                 </restrictImports>
1112                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1113                   <includeTestCode>true</includeTestCode>
1114                   <commentLineBufferSize>512</commentLineBufferSize>
1115                   <reason>Use shaded version in hbase-thirdparty</reason>
1116                   <bannedImports>
1117                     <bannedImport>com.google.common.**</bannedImport>
1118                     <bannedImport>io.netty.**</bannedImport>
1119                     <bannedImport>org.apache.commons.cli.**</bannedImport>
1120                     <bannedImport>org.apache.commons.collections.**</bannedImport>
1121                     <bannedImport>org.apache.commons.collections4.**</bannedImport>
1122                   </bannedImports>
1123                 </restrictImports>
1124                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1125                   <includeTestCode>true</includeTestCode>
1126                   <commentLineBufferSize>512</commentLineBufferSize>
1127                   <reason>Do not use shaded classes from other dependencies</reason>
1128                   <bannedImports>
1129                     <bannedImport>org.apache.curator.shaded.**</bannedImport>
1130                     <bannedImport>org.apache.htrace.shaded.**</bannedImport>
1131                   </bannedImports>
1132                 </restrictImports>
1133                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1134                   <includeTestCode>true</includeTestCode>
1135                   <commentLineBufferSize>512</commentLineBufferSize>
1136                   <reason>Use shaded gson in hbase-thirdparty</reason>
1137                   <bannedImports>
1138                     <bannedImport>org.codehaus.jackson.**</bannedImport>
1139                   </bannedImports>
1140                 </restrictImports>
1141                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1142                   <includeTestCode>true</includeTestCode>
1143                   <commentLineBufferSize>512</commentLineBufferSize>
1144                   <reason>Use commons lang 3</reason>
1145                   <bannedImports>
1146                     <bannedImport>org.apache.commons.lang.**</bannedImport>
1147                   </bannedImports>
1148                 </restrictImports>
1149                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1150                   <includeTestCode>true</includeTestCode>
1151                   <commentLineBufferSize>512</commentLineBufferSize>
1152                   <reason>Use yetus IA and IS annotations</reason>
1153                   <bannedImports>
1154                     <bannedImport>org.apache.hadoop.classificatio.**</bannedImport>
1155                   </bannedImports>
1156                 </restrictImports>
1157                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1158                   <includeTestCode>true</includeTestCode>
1159                   <commentLineBufferSize>512</commentLineBufferSize>
1160                   <reason>Do not use htrace v3</reason>
1161                   <bannedImports>
1162                     <bannedImport>org.htrace.**</bannedImport>
1163                   </bannedImports>
1164                 </restrictImports>
1165                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1166                   <includeTestCode>true</includeTestCode>
1167                   <commentLineBufferSize>512</commentLineBufferSize>
1168                   <reason>Use shaded jetty in hbase-thirdparty</reason>
1169                   <bannedImports>
1170                     <bannedImport>org.eclipse.jetty.**</bannedImport>
1171                   </bannedImports>
1172                 </restrictImports>
1173                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1174                   <includeTestCode>true</includeTestCode>
1175                   <commentLineBufferSize>512</commentLineBufferSize>
1176                   <reason>Use shaded jersey in hbase-thirdparty</reason>
1177                   <bannedImports>
1178                     <bannedImport>org.glassfish.jersey.**</bannedImport>
1179                   </bannedImports>
1180                 </restrictImports>
1181                 <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
1182                   <includeTestCode>true</includeTestCode>
1183                   <commentLineBufferSize>512</commentLineBufferSize>
1184                   <reason>
1185                     You should never use this style of annotations(i.e, 'this is for test only')
1186                     in IA.Public or IA.LimitedPrivate classes. Use IA.Private to tell users this is
1187                     not for public use.
1188                     For IA.Private classes, use RestrictedApi annotation in error prone instead.
1189                   </reason>
1190                   <bannedImports>
1191                     <bannedImport>org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
1192                   </bannedImports>
1193                 </restrictImports>
1194               </rules>
1195             </configuration>
1196           </execution>
1197         </executions>
1198       </plugin>
1199       <!-- parent-module only plugins -->
1200       <plugin>
1201         <groupId>org.codehaus.mojo</groupId>
1202         <artifactId>xml-maven-plugin</artifactId>
1203         <version>${xml.maven.version}</version>
1204         <inherited>false</inherited>
1205         <executions>
1206           <execution>
1207             <!-- Run the hbase-default.xml through a stylesheet so can show it in doc-->
1208             <goals>
1209               <goal>transform</goal>
1210             </goals>
1211             <phase>site</phase>
1212           </execution>
1213         </executions>
1214         <configuration>
1215           <transformationSets>
1216             <!-- For asciidoc -->
1217             <transformationSet>
1218               <!--Reaching up and over into common sub-module for hbase-default.xml-->
1219               <dir>${basedir}/hbase-common/src/main/resources/</dir>
1220               <includes>
1221                 <include>hbase-default.xml</include>
1222               </includes>
1223               <stylesheet>${basedir}/src/main/xslt/configuration_to_asciidoc_chapter.xsl</stylesheet>
1224               <fileMappers>
1225                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
1226                   <pattern>^(.*)\.xml$</pattern>
1227                   <replacement>$1.adoc</replacement>
1228                 </fileMapper>
1229               </fileMappers>
1230               <outputDir>${basedir}/target/asciidoc</outputDir>
1231             </transformationSet>
1232           </transformationSets>
1233         </configuration>
1234       </plugin>
1235       <!-- Special configuration for spotbugs just in the parent so
1236       the filter file location can be more general (see definition in pluginManagement) -->
1237       <plugin>
1238         <groupId>com.github.spotbugs</groupId>
1239         <artifactId>spotbugs-maven-plugin</artifactId>
1240         <executions>
1241           <execution>
1242             <inherited>false</inherited>
1243             <goals>
1244               <goal>spotbugs</goal>
1245             </goals>
1246             <configuration>
1247               <excludeFilterFile>${basedir}/dev-support/spotbugs-exclude.xml</excludeFilterFile>
1248             </configuration>
1249           </execution>
1250         </executions>
1251       </plugin>
1252       <plugin>
1253         <groupId>org.apache.maven.plugins</groupId>
1254         <artifactId>maven-checkstyle-plugin</artifactId>
1255       </plugin>
1256       <plugin>
1257         <groupId>org.apache.maven.plugins</groupId>
1258         <artifactId>maven-site-plugin</artifactId>
1259         <dependencies>
1260           <dependency>
1261             <!-- add support for ssh/scp -->
1262             <groupId>org.apache.maven.wagon</groupId>
1263             <artifactId>wagon-ssh</artifactId>
1264             <version>${wagon.ssh.version}</version>
1265           </dependency>
1266         </dependencies>
1267         <configuration>
1268           <siteDirectory>${basedir}/src/site</siteDirectory>
1269           <customBundle>${basedir}/src/site/custom/project-info-report.properties</customBundle>
1270           <inputEncoding>UTF-8</inputEncoding>
1271           <outputEncoding>UTF-8</outputEncoding>
1272         </configuration>
1273       </plugin>
1274       <!-- For AsciiDoc docs building -->
1275       <plugin>
1276         <groupId>org.asciidoctor</groupId>
1277         <artifactId>asciidoctor-maven-plugin</artifactId>
1278         <version>${asciidoctor.plugin.version}</version>
1279         <inherited>false</inherited>
1280         <dependencies>
1281           <dependency>
1282             <groupId>org.asciidoctor</groupId>
1283             <artifactId>asciidoctorj-pdf</artifactId>
1284             <version>${asciidoctorj.pdf.version}</version>
1285           </dependency>
1286           <dependency>
1287             <groupId>org.jruby</groupId>
1288             <artifactId>jruby-complete</artifactId>
1289             <version>${jruby.version}</version>
1290           </dependency>
1291         </dependencies>
1292         <configuration>
1293           <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1294           <doctype>book</doctype>
1295           <attributes>
1296             <docVersion>${project.version}</docVersion>
1297             <imagesdir>images</imagesdir>
1298             <source-highlighter>coderay</source-highlighter>
1299           </attributes>
1300         </configuration>
1301         <executions>
1302           <execution>
1303             <id>output-html</id>
1304             <phase>site</phase>
1305             <goals>
1306               <goal>process-asciidoc</goal>
1307             </goals>
1308             <configuration>
1309               <attributes>
1310                 <stylesheet>hbase.css</stylesheet>
1311               </attributes>
1312               <backend>html5</backend>
1313             </configuration>
1314           </execution>
1315           <execution>
1316             <id>output-pdf</id>
1317             <phase>site</phase>
1318             <goals>
1319               <goal>process-asciidoc</goal>
1320             </goals>
1321             <configuration>
1322               <backend>pdf</backend>
1323               <attributes>
1324                 <pagenums/>
1325                 <toc/>
1326                 <idprefix/>
1327                 <idseparator>-</idseparator>
1328               </attributes>
1329             </configuration>
1330           </execution>
1331         </executions>
1332       </plugin>
1333       <plugin>
1334         <groupId>org.apache.maven.plugins</groupId>
1335         <artifactId>maven-resources-plugin</artifactId>
1336         <!--$NO-MVN-MAN-VER$ -->
1337         <inherited>false</inherited>
1338         <executions>
1339           <execution>
1340             <id>copy-htaccess</id>
1341             <goals>
1342               <goal>copy-resources</goal>
1343             </goals>
1344             <phase>site</phase>
1345             <configuration>
1346               <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1347               <resources>
1348                 <resource>
1349                   <directory>${basedir}/src/site/resources/</directory>
1350                   <includes>
1351                     <include>.htaccess</include>
1352                   </includes>
1353                 </resource>
1354               </resources>
1355             </configuration>
1356           </execution>
1357           <!-- needed to make the redirect above work -->
1358           <execution>
1359             <id>copy-empty-book-dir</id>
1360             <goals>
1361               <goal>copy-resources</goal>
1362             </goals>
1363             <phase>site</phase>
1364             <configuration>
1365               <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1366               <resources>
1367                 <resource>
1368                   <directory>${basedir}/src/site/resources/</directory>
1369                   <includes>
1370                     <include>book/**</include>
1371                   </includes>
1372                 </resource>
1373               </resources>
1374             </configuration>
1375           </execution>
1376         </executions>
1377         <configuration>
1378           <escapeString>\</escapeString>
1379         </configuration>
1380       </plugin>
1381       <plugin>
1382         <groupId>org.apache.maven.plugins</groupId>
1383         <artifactId>maven-antrun-plugin</artifactId>
1384         <version>${maven.antrun.version}</version>
1385         <inherited>false</inherited>
1386         <!-- Rename the book.pdf generated by asciidoctor -->
1387         <executions>
1388           <execution>
1389             <id>rename-pdf</id>
1390             <phase>site</phase>
1391             <configuration>
1392               <target name="rename file">
1393                 <move file="${project.reporting.outputDirectory}/book.pdf" tofile="${project.reporting.outputDirectory}/apache_hbase_reference_guide.pdf" />
1394               </target>
1395             </configuration>
1396             <goals>
1397               <goal>run</goal>
1398             </goals>
1399           </execution>
1400         </executions>
1401       </plugin>
1402       <plugin>
1403         <groupId>org.codehaus.mojo</groupId>
1404         <artifactId>buildnumber-maven-plugin</artifactId>
1405         <executions>
1406           <execution>
1407             <phase>validate</phase>
1408             <goals>
1409               <goal>create-timestamp</goal>
1410             </goals>
1411           </execution>
1412         </executions>
1413         <configuration>
1414           <timestampFormat>yyyy</timestampFormat>
1415           <timestampPropertyName>build.year</timestampPropertyName>
1416         </configuration>
1417       </plugin>
1418       <plugin>
1419         <groupId>org.apache.felix</groupId>
1420         <artifactId>maven-bundle-plugin</artifactId>
1421         <version>${maven.bundle.version}</version>
1422         <inherited>true</inherited>
1423         <extensions>true</extensions>
1424       </plugin>
1425     </plugins>
1426   </build>
1427   <properties>
1428     <!-- override on command line to have generated LICENSE files include
1429          diagnostic info for verifying notice requirements -->
1430     <license.debug.print.included>false</license.debug.print.included>
1431     <!-- When a particular module bundles its depenendencies, should be true -->
1432     <license.bundles.dependencies>false</license.bundles.dependencies>
1433     <!-- modules that include a the logo in their source tree should set true -->
1434     <license.bundles.logo>false</license.bundles.logo>
1435     <!-- modules that include bootstrap in their source tree should set true -->
1436     <license.bundles.bootstrap>false</license.bundles.bootstrap>
1437     <!-- modules that include jquery in their source tree should set true -->
1438     <license.bundles.jquery>false</license.bundles.jquery>
1439     <tar.name>${project.build.finalName}.tar.gz</tar.name>
1440     <maven.build.timestamp.format>
1441       yyyy-MM-dd'T'HH:mm
1442     </maven.build.timestamp.format>
1443     <buildDate>${maven.build.timestamp}</buildDate>
1444     <compileSource>1.8</compileSource>
1445     <!-- Build dependencies -->
1446     <maven.min.version>3.0.4</maven.min.version>
1447     <java.min.version>${compileSource}</java.min.version>
1448     <!-- Dependencies -->
1449     <hadoop-two.version>2.10.0</hadoop-two.version>
1450     <hadoop-three.version>3.1.2</hadoop-three.version>
1451     <!-- These must be defined here for downstream build tools that don't look at profiles.
1452          They ought to match the values found in our default hadoop profile, which is
1453          currently "hadoop-2.0". See HBASE-15925 for more info. -->
1454     <hadoop.version>${hadoop-two.version}</hadoop.version>
1455     <hadoop.guava.version>11.0.2</hadoop.guava.version>
1456     <compat.module>hbase-hadoop2-compat</compat.module>
1457     <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
1458     <!--This property is for hadoops netty. HBase netty
1459          comes in via hbase-thirdparty hbase-shaded-netty-->
1460     <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
1461     <!-- end HBASE-15925 default hadoop compatibility values -->
1462     <audience-annotations.version>0.5.0</audience-annotations.version>
1463     <avro.version>1.7.7</avro.version>
1464     <caffeine.version>2.8.1</caffeine.version>
1465     <commons-codec.version>1.13</commons-codec.version>
1466     <commons-io.version>2.11.0</commons-io.version>
1467     <commons-lang3.version>3.9</commons-lang3.version>
1468     <commons-math.version>3.6.1</commons-math.version>
1469     <disruptor.version>3.4.2</disruptor.version>
1470     <!-- Updating the httpclient will break hbase-rest. It writes out URLs with '//' in it
1471       especially when writing out 'no column families'. Later httpclients collapse the '//'
1472       into single '/' as double-slash is not legal in an URL. Breaks #testDelete in
1473       TestRemoteTable. -->
1474     <httpclient.version>4.5.3</httpclient.version>
1475     <httpcore.version>4.4.13</httpcore.version>
1476     <metrics-core.version>3.2.6</metrics-core.version>
1477     <jackson.version>2.10.1</jackson.version>
1478     <jackson.databind.version>2.10.1</jackson.databind.version>
1479     <jaxb-api.version>2.3.1</jaxb-api.version>
1480     <servlet.api.version>3.1.0</servlet.api.version>
1481     <wx.rs.api.version>2.1.1</wx.rs.api.version>
1482     <glassfish.jsp.version>2.3.2</glassfish.jsp.version>
1483     <glassfish.el.version>3.0.1-b08</glassfish.el.version>
1484     <jruby.version>9.2.13.0</jruby.version>
1485     <junit.version>4.13.2</junit.version>
1486     <hamcrest.version>1.3</hamcrest.version>
1487     <htrace.version>4.2.0-incubating</htrace.version>
1488     <reload4j.version>1.2.19</reload4j.version>
1489     <mockito-core.version>2.28.2</mockito-core.version>
1490     <!--Internally we use a different version of protobuf. See hbase-protocol-shaded-->
1491     <external.protobuf.groupid>com.google.protobuf</external.protobuf.groupid>
1492     <external.protobuf.version>2.5.0</external.protobuf.version>
1493     <external.protoc.version>${external.protobuf.version}</external.protoc.version>
1494     <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
1495     <thrift.path>thrift</thrift.path>
1496     <thrift.version>0.14.1</thrift.version>
1497     <zookeeper.version>3.5.7</zookeeper.version>
1498     <jline.version>2.11</jline.version>
1499     <slf4j.version>1.7.33</slf4j.version>
1500     <clover.version>4.0.3</clover.version>
1501     <jamon-runtime.version>2.4.1</jamon-runtime.version>
1502     <jettison.version>1.3.8</jettison.version>
1503     <!--Make sure these joni/jcodings are compatible with the versions used by jruby-->
1504     <joni.version>2.1.31</joni.version>
1505     <jcodings.version>1.0.55</jcodings.version>
1506     <spy.version>2.12.2</spy.version>
1507     <bouncycastle.version>1.60</bouncycastle.version>
1508     <kerby.version>1.0.1</kerby.version>
1509     <commons-crypto.version>1.0.0</commons-crypto.version>
1510     <curator.version>4.2.0</curator.version>
1511     <!-- Plugin Dependencies -->
1512     <asciidoctor.plugin.version>2.1.0</asciidoctor.plugin.version>
1513     <asciidoctorj.pdf.version>1.5.3</asciidoctorj.pdf.version>
1514     <build.helper.maven.version>3.0.0</build.helper.maven.version>
1515     <buildnumber.maven.version>1.4</buildnumber.maven.version>
1516     <!--
1517       When updating checkstyle.version, please make the same change in `.idea/checkstyle-idea.xml`
1518     -->
1519     <checkstyle.version>8.28</checkstyle.version>
1520     <exec.maven.version>1.6.0</exec.maven.version>
1521     <error-prone.version>2.10.0</error-prone.version>
1522     <jamon.plugin.version>2.4.2</jamon.plugin.version>
1523     <lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
1524     <maven.antrun.version>1.8</maven.antrun.version>
1525     <maven.bundle.version>3.3.0</maven.bundle.version>
1526     <maven.checkstyle.version>3.1.0</maven.checkstyle.version>
1527     <maven.eclipse.version>2.10</maven.eclipse.version>
1528     <maven.gpg.version>3.0.1</maven.gpg.version>
1529     <maven.javadoc.version>3.2.0</maven.javadoc.version>
1530     <maven.warbucks.version>1.1.0</maven.warbucks.version>
1531     <maven.project.info.report.version>3.1.2</maven.project.info.report.version>
1532     <os.maven.version>1.5.0.Final</os.maven.version>
1533     <findbugs-annotations.version>1.3.9-1</findbugs-annotations.version>
1534     <spotbugs.version>4.2.2</spotbugs.version>
1535     <spotbugs.maven.version>4.2.0</spotbugs.maven.version>
1536     <surefire.version>3.0.0-M4</surefire.version>
1537     <wagon.ssh.version>2.12</wagon.ssh.version>
1538     <xml.maven.version>1.0.1</xml.maven.version>
1539     <hbase-thirdparty.version>3.5.1</hbase-thirdparty.version>
1540     <!-- Intraproject jar naming properties -->
1541     <!-- TODO this is pretty ugly, but works for the moment.
1542       Modules are pretty heavy-weight things, so doing this work isn't too bad. -->
1543     <server.test.jar>hbase-server-${project.version}-tests.jar</server.test.jar>
1544     <common.test.jar>hbase-common-${project.version}-tests.jar</common.test.jar>
1545     <procedure.test.jar>hbase-procedure-${project.version}-tests.jar</procedure.test.jar>
1546     <it.test.jar>hbase-it-${project.version}-tests.jar</it.test.jar>
1547     <annotations.test.jar>hbase-annotations-${project.version}-tests.jar</annotations.test.jar>
1548     <rsgroup.test.jar>hbase-rsgroup-${project.version}-tests.jar</rsgroup.test.jar>
1549     <mapreduce.test.jar>hbase-mapreduce-${project.version}-tests.jar</mapreduce.test.jar>
1550     <zookeeper.test.jar>hbase-zookeeper-${project.version}-tests.jar</zookeeper.test.jar>
1551     <asyncfs.test.jar>hbase-asyncfs-${project.version}-tests.jar</asyncfs.test.jar>
1552     <shell-executable>bash</shell-executable>
1553     <surefire.provider>surefire-junit47</surefire.provider>
1554     <!-- default: run small & medium, medium with 2 threads -->
1555     <surefire.skipFirstPart>false</surefire.skipFirstPart>
1556     <surefire.skipSecondPart>false</surefire.skipSecondPart>
1557       <!-- Fork count varies w/ CPU count. Setting is conservative mostly determined
1558         by what apache jenkins nightly builds will tolerate (See HBASE-24072). Up this
1559       value is you want to burn through tests faster (could make for more failures
1560       if more contention around resources). There is a matching MAVEN_ARG
1561       in our yetus personality where we set the maven -T command to 0.25C too.
1562       For example, to run at a rate that is more furious than our 0.25C, do
1563       something like this:
1564          f="0.5C" ;  mvn -T$f -Dsurefire.firstPartForkCount=$f -Dsurefire.secondPartForkCount=$f test -PrunAllTests
1565     -->
1566     <surefire.firstPartForkCount>0.25C</surefire.firstPartForkCount>
1567     <surefire.secondPartForkCount>0.25C</surefire.secondPartForkCount>
1568     <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
1569     <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
1570     <surefire.testFailureIgnore>false</surefire.testFailureIgnore>
1571     <test.output.tofile>true</test.output.tofile>
1572     <surefire.timeout>900</surefire.timeout>
1573     <test.exclude.pattern></test.exclude.pattern>
1574     <!--
1575       Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value.
1576       This value is managed separately for jdk11. See below.
1577     -->
1578     <surefire.Xmx>2200m</surefire.Xmx>
1579     <surefire.cygwinXmx>2200m</surefire.cygwinXmx>
1580     <!--Mark our test runs with '-Dhbase.build.id' so we can identify a surefire test as ours in a process listing
1582       And for netty eventloops that have no explicit configuration, netty sets
1583       nioeventloopgroup thread count to CPU count * 2. Thats too much for mini
1584       clusters/tests.
1585      -->
1586     <hbase-surefire.argLine>-enableassertions -Dhbase.build.id=${build.id} -Xmx${surefire.Xmx}
1587       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1588       -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
1589       -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
1590       -Dio.netty.eventLoopThreads=3
1591     </hbase-surefire.argLine>
1592     <hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx}
1593       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1594       "-Djava.library.path=${hadoop.library.path};${java.library.path}"
1595       -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
1596     </hbase-surefire.cygwin-argLine>
1597     <!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
1598     <argLine>${hbase-surefire.argLine}</argLine>
1599     <jacoco.version>0.7.5.201505241946</jacoco.version>
1600     <extra.enforcer.version>1.3</extra.enforcer.version>
1601     <enforcer.version>3.0.0-M3</enforcer.version>
1602     <restrict-imports.enforcer.version>0.14.0</restrict-imports.enforcer.version>
1603     <!-- Location of test resources -->
1604     <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
1605     <test.tmp.dir>${project.build.directory}</test.tmp.dir>
1606     <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
1607     <!--This build.id we'll add as flag so can identify which forked processes belong to our build.
1608         Default is the build start timestamp. Up on jenkins pass in the jenkins build id by setting
1609         this parameter by invoking mvn with -Dbuild.id=$BUILD_ID-->
1610     <build.id>${maven.build.timestamp}</build.id>
1611     <shell-executable>bash</shell-executable>
1612     <!-- TODO HBASE-15041 clean up our javadocs so jdk8 linter can be used.
1613          property as of javadoc-plugin 3.0.0 -->
1614     <doclint>none</doclint>
1615   </properties>
1616   <!-- Sorted by groups of dependencies then groupId and artifactId -->
1617   <dependencyManagement>
1618     <dependencies>
1619       <!--
1620       Note: There are a few exclusions to prevent duplicate code in different jars to be included:
1621           org.mortbay.jetty:servlet-api, javax.servlet:servlet-api: These are excluded because they are
1622           the same implementations. I chose org.mortbay.jetty:servlet-api-2.5 instead, which is a third
1623           implementation of the same, because Hadoop also uses this version
1624           javax.servlet:jsp-api in favour of javax.servlet.jsp:javax.servlet.jsp-api:2.3.1 since it
1625           is what glassfish's jspC jar uses and that's where we get our own need for a jsp-api.
1626         -->
1627       <!-- Intra-module dependencies -->
1628       <dependency>
1629         <groupId>org.apache.hbase</groupId>
1630         <artifactId>hbase-annotations</artifactId>
1631         <version>${project.version}</version>
1632         <type>test-jar</type>
1633         <!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
1634       </dependency>
1635       <dependency>
1636         <groupId>org.apache.hbase</groupId>
1637         <artifactId>hbase-common</artifactId>
1638         <version>${project.version}</version>
1639       </dependency>
1640       <dependency>
1641         <groupId>org.apache.hbase</groupId>
1642         <artifactId>hbase-common</artifactId>
1643         <version>${project.version}</version>
1644         <type>test-jar</type>
1645         <scope>test</scope>
1646       </dependency>
1647       <dependency>
1648         <groupId>org.apache.hbase</groupId>
1649         <artifactId>hbase-logging</artifactId>
1650         <version>${project.version}</version>
1651       </dependency>
1652       <dependency>
1653         <groupId>org.apache.hbase</groupId>
1654         <artifactId>hbase-logging</artifactId>
1655         <version>${project.version}</version>
1656         <type>test-jar</type>
1657         <scope>test</scope>
1658       </dependency>
1659       <dependency>
1660         <groupId>org.apache.hbase</groupId>
1661         <artifactId>hbase-protocol-shaded</artifactId>
1662         <version>${project.version}</version>
1663       </dependency>
1664       <dependency>
1665         <groupId>org.apache.hbase</groupId>
1666         <artifactId>hbase-protocol</artifactId>
1667         <version>${project.version}</version>
1668       </dependency>
1669       <dependency>
1670         <groupId>org.apache.hbase</groupId>
1671         <artifactId>hbase-procedure</artifactId>
1672         <version>${project.version}</version>
1673       </dependency>
1674       <dependency>
1675         <groupId>org.apache.hbase</groupId>
1676         <artifactId>hbase-procedure</artifactId>
1677         <version>${project.version}</version>
1678         <type>test-jar</type>
1679       </dependency>
1680       <dependency>
1681         <groupId>org.apache.hbase</groupId>
1682         <artifactId>hbase-hadoop-compat</artifactId>
1683         <version>${project.version}</version>
1684       </dependency>
1685       <dependency>
1686         <groupId>org.apache.hbase</groupId>
1687         <artifactId>hbase-hadoop-compat</artifactId>
1688         <version>${project.version}</version>
1689         <type>test-jar</type>
1690         <scope>test</scope>
1691       </dependency>
1692       <dependency>
1693         <groupId>org.apache.hbase</groupId>
1694         <artifactId>${compat.module}</artifactId>
1695         <version>${project.version}</version>
1696       </dependency>
1697       <dependency>
1698         <groupId>org.apache.hbase</groupId>
1699         <artifactId>${compat.module}</artifactId>
1700         <version>${project.version}</version>
1701         <type>test-jar</type>
1702         <scope>test</scope>
1703       </dependency>
1704       <dependency>
1705         <artifactId>hbase-rsgroup</artifactId>
1706         <groupId>org.apache.hbase</groupId>
1707         <version>${project.version}</version>
1708       </dependency>
1709       <dependency>
1710         <artifactId>hbase-rsgroup</artifactId>
1711         <groupId>org.apache.hbase</groupId>
1712         <version>${project.version}</version>
1713         <type>test-jar</type>
1714         <scope>test</scope>
1715       </dependency>
1716       <dependency>
1717         <artifactId>hbase-replication</artifactId>
1718         <groupId>org.apache.hbase</groupId>
1719         <version>${project.version}</version>
1720       </dependency>
1721       <dependency>
1722         <artifactId>hbase-http</artifactId>
1723         <groupId>org.apache.hbase</groupId>
1724         <version>${project.version}</version>
1725       </dependency>
1726       <dependency>
1727         <artifactId>hbase-http</artifactId>
1728         <groupId>org.apache.hbase</groupId>
1729         <version>${project.version}</version>
1730         <type>test-jar</type>
1731         <scope>test</scope>
1732       </dependency>
1733       <dependency>
1734         <artifactId>hbase-server</artifactId>
1735         <groupId>org.apache.hbase</groupId>
1736         <version>${project.version}</version>
1737       </dependency>
1738       <dependency>
1739         <artifactId>hbase-server</artifactId>
1740         <groupId>org.apache.hbase</groupId>
1741         <version>${project.version}</version>
1742         <type>test-jar</type>
1743         <scope>test</scope>
1744       </dependency>
1745       <dependency>
1746         <artifactId>hbase-mapreduce</artifactId>
1747         <groupId>org.apache.hbase</groupId>
1748         <version>${project.version}</version>
1749       </dependency>
1750       <dependency>
1751         <artifactId>hbase-mapreduce</artifactId>
1752         <groupId>org.apache.hbase</groupId>
1753         <version>${project.version}</version>
1754         <type>test-jar</type>
1755         <scope>test</scope>
1756       </dependency>
1757       <dependency>
1758         <artifactId>hbase-endpoint</artifactId>
1759         <groupId>org.apache.hbase</groupId>
1760         <version>${project.version}</version>
1761       </dependency>
1762       <dependency>
1763         <artifactId>hbase-shell</artifactId>
1764         <groupId>org.apache.hbase</groupId>
1765         <version>${project.version}</version>
1766       </dependency>
1767       <dependency>
1768         <artifactId>hbase-shell</artifactId>
1769         <groupId>org.apache.hbase</groupId>
1770         <version>${project.version}</version>
1771         <type>test-jar</type>
1772         <scope>test</scope>
1773       </dependency>
1774       <dependency>
1775         <artifactId>hbase-thrift</artifactId>
1776         <groupId>org.apache.hbase</groupId>
1777         <version>${project.version}</version>
1778       </dependency>
1779       <dependency>
1780         <artifactId>hbase-thrift</artifactId>
1781         <groupId>org.apache.hbase</groupId>
1782         <version>${project.version}</version>
1783         <type>test-jar</type>
1784         <scope>test</scope>
1785       </dependency>
1786       <dependency>
1787         <groupId>org.apache.hbase</groupId>
1788         <artifactId>hbase-testing-util</artifactId>
1789         <version>${project.version}</version>
1790         <scope>test</scope>
1791       </dependency>
1792       <dependency>
1793         <artifactId>hbase-examples</artifactId>
1794         <groupId>org.apache.hbase</groupId>
1795         <version>${project.version}</version>
1796       </dependency>
1797       <dependency>
1798         <groupId>org.apache.hbase</groupId>
1799         <artifactId>hbase-external-blockcache</artifactId>
1800         <version>${project.version}</version>
1801       </dependency>
1802       <dependency>
1803         <artifactId>hbase-it</artifactId>
1804         <groupId>org.apache.hbase</groupId>
1805         <version>${project.version}</version>
1806         <type>test-jar</type>
1807         <scope>test</scope>
1808       </dependency>
1809       <dependency>
1810         <artifactId>hbase-client</artifactId>
1811         <groupId>org.apache.hbase</groupId>
1812         <version>${project.version}</version>
1813       </dependency>
1814       <dependency>
1815         <artifactId>hbase-metrics-api</artifactId>
1816         <groupId>org.apache.hbase</groupId>
1817         <version>${project.version}</version>
1818       </dependency>
1819       <dependency>
1820         <artifactId>hbase-metrics-api</artifactId>
1821         <groupId>org.apache.hbase</groupId>
1822         <version>${project.version}</version>
1823         <type>test-jar</type>
1824         <scope>test</scope>
1825       </dependency>
1826       <dependency>
1827         <artifactId>hbase-metrics</artifactId>
1828         <groupId>org.apache.hbase</groupId>
1829         <version>${project.version}</version>
1830       </dependency>
1831       <dependency>
1832         <artifactId>hbase-metrics</artifactId>
1833         <groupId>org.apache.hbase</groupId>
1834         <version>${project.version}</version>
1835         <type>test-jar</type>
1836         <scope>test</scope>
1837       </dependency>
1838       <dependency>
1839         <artifactId>hbase-rest</artifactId>
1840         <groupId>org.apache.hbase</groupId>
1841         <version>${project.version}</version>
1842       </dependency>
1843       <dependency>
1844         <artifactId>hbase-resource-bundle</artifactId>
1845         <groupId>org.apache.hbase</groupId>
1846         <version>${project.version}</version>
1847       </dependency>
1848       <dependency>
1849         <artifactId>hbase-zookeeper</artifactId>
1850         <groupId>org.apache.hbase</groupId>
1851         <version>${project.version}</version>
1852         <exclusions>
1853           <exclusion>
1854             <groupId>com.google.code.findbugs</groupId>
1855             <artifactId>jsr305</artifactId>
1856           </exclusion>
1857           <exclusion>
1858             <groupId>com.github.spotbugs</groupId>
1859             <artifactId>spotbugs-annotations</artifactId>
1860           </exclusion>
1861         </exclusions>
1862       </dependency>
1863       <dependency>
1864         <artifactId>hbase-zookeeper</artifactId>
1865         <groupId>org.apache.hbase</groupId>
1866         <version>${project.version}</version>
1867         <type>test-jar</type>
1868         <scope>test</scope>
1869       </dependency>
1870       <dependency>
1871         <artifactId>hbase-hbtop</artifactId>
1872         <groupId>org.apache.hbase</groupId>
1873         <version>${project.version}</version>
1874       </dependency>
1875       <dependency>
1876         <groupId>org.apache.hbase</groupId>
1877         <artifactId>hbase-shaded-client</artifactId>
1878         <version>${project.version}</version>
1879       </dependency>
1880       <dependency>
1881         <groupId>org.apache.hbase</groupId>
1882         <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
1883         <version>${project.version}</version>
1884       </dependency>
1885       <dependency>
1886         <groupId>org.apache.hbase</groupId>
1887         <artifactId>hbase-shaded-mapreduce</artifactId>
1888         <version>${project.version}</version>
1889       </dependency>
1890       <dependency>
1891         <groupId>org.apache.hbase</groupId>
1892         <artifactId>hbase-asyncfs</artifactId>
1893         <version>${project.version}</version>
1894       </dependency>
1895       <dependency>
1896         <groupId>org.apache.hbase</groupId>
1897         <artifactId>hbase-asyncfs</artifactId>
1898         <version>${project.version}</version>
1899         <type>test-jar</type>
1900         <scope>test</scope>
1901       </dependency>
1902       <!-- General dependencies -->
1903       <dependency>
1904         <groupId>com.github.stephenc.findbugs</groupId>
1905         <artifactId>findbugs-annotations</artifactId>
1906         <version>${findbugs-annotations.version}</version>
1907       </dependency>
1908       <!--
1909         Logging dependencies. In general, we use slf4j as the log facade in HBase, so all sub
1910         modules should depend on slf4j-api at compile scope, and then depend on slf4j-log4j12
1911         and log4j at test scope(and in hbase-assembly when shipping the binary) to redirect the
1912         log message to log4j. Do not introduce logging dependencies other than slf4j-api at compile
1913         scope as it will mess up the logging framework for downstream users.
1914         Here we also depend on jcl-over-slf4j and jul-to-slf4j, as some of the libraries we depend
1915         on use these logging framework so we need to redirect their log message to slf4j, and then
1916         redirect the log message to our log4j framework.
1917       -->
1918       <dependency>
1919         <groupId>org.codehaus.jettison</groupId>
1920         <artifactId>jettison</artifactId>
1921         <version>${jettison.version}</version>
1922       </dependency>
1923       <dependency>
1924         <groupId>org.slf4j</groupId>
1925         <artifactId>slf4j-api</artifactId>
1926         <version>${slf4j.version}</version>
1927       </dependency>
1928       <dependency>
1929         <groupId>org.slf4j</groupId>
1930         <artifactId>slf4j-reload4j</artifactId>
1931         <version>${slf4j.version}</version>
1932       </dependency>
1933       <dependency>
1934         <groupId>org.slf4j</groupId>
1935         <artifactId>jcl-over-slf4j</artifactId>
1936         <version>${slf4j.version}</version>
1937       </dependency>
1938       <dependency>
1939         <groupId>org.slf4j</groupId>
1940         <artifactId>jul-to-slf4j</artifactId>
1941         <version>${slf4j.version}</version>
1942       </dependency>
1943       <dependency>
1944         <groupId>ch.qos.reload4j</groupId>
1945         <artifactId>reload4j</artifactId>
1946         <version>${reload4j.version}</version>
1947       </dependency>
1948       <!-- Avro dependencies we mostly get transitively, manual version coallescing -->
1949       <dependency>
1950         <groupId>org.apache.avro</groupId>
1951         <artifactId>avro</artifactId>
1952         <version>${avro.version}</version>
1953       </dependency>
1954       <!--This is not used by hbase directly.  Used by thrift,
1955           dropwizard and zk.-->
1956       <dependency>
1957         <groupId>com.github.ben-manes.caffeine</groupId>
1958         <artifactId>caffeine</artifactId>
1959         <version>${caffeine.version}</version>
1960       </dependency>
1961       <dependency>
1962         <groupId>io.dropwizard.metrics</groupId>
1963         <artifactId>metrics-core</artifactId>
1964         <version>${metrics-core.version}</version>
1965       </dependency>
1966       <dependency>
1967         <groupId>org.apache.httpcomponents</groupId>
1968         <artifactId>httpclient</artifactId>
1969         <version>${httpclient.version}</version>
1970       </dependency>
1971       <dependency>
1972         <groupId>org.apache.httpcomponents</groupId>
1973         <artifactId>httpcore</artifactId>
1974         <version>${httpcore.version}</version>
1975       </dependency>
1976       <dependency>
1977         <groupId>commons-codec</groupId>
1978         <artifactId>commons-codec</artifactId>
1979         <version>${commons-codec.version}</version>
1980       </dependency>
1981       <dependency>
1982         <groupId>commons-io</groupId>
1983         <artifactId>commons-io</artifactId>
1984         <version>${commons-io.version}</version>
1985       </dependency>
1986       <dependency>
1987         <groupId>org.apache.commons</groupId>
1988         <artifactId>commons-lang3</artifactId>
1989         <version>${commons-lang3.version}</version>
1990       </dependency>
1991       <dependency>
1992         <groupId>org.apache.commons</groupId>
1993         <artifactId>commons-math3</artifactId>
1994         <version>${commons-math.version}</version>
1995       </dependency>
1996       <dependency>
1997         <!-- commons-logging is only used by hbase-http's HttpRequestLog and hbase-server's
1998              HBaseTestingUtil.
1999           -->
2000         <groupId>commons-logging</groupId>
2001         <artifactId>commons-logging</artifactId>
2002         <version>1.2</version>
2003       </dependency>
2004       <dependency>
2005         <groupId>org.apache.zookeeper</groupId>
2006         <artifactId>zookeeper</artifactId>
2007         <version>${zookeeper.version}</version>
2008         <exclusions>
2009           <exclusion>
2010             <groupId>com.google.code.findbugs</groupId>
2011             <artifactId>jsr305</artifactId>
2012           </exclusion>
2013           <exclusion>
2014             <groupId>com.github.spotbugs</groupId>
2015             <artifactId>spotbugs-annotations</artifactId>
2016           </exclusion>
2017           <exclusion>
2018             <groupId>jline</groupId>
2019             <artifactId>jline</artifactId>
2020           </exclusion>
2021           <exclusion>
2022             <groupId>com.sun.jmx</groupId>
2023             <artifactId>jmxri</artifactId>
2024           </exclusion>
2025           <exclusion>
2026             <groupId>com.sun.jdmk</groupId>
2027             <artifactId>jmxtools</artifactId>
2028           </exclusion>
2029           <exclusion>
2030             <groupId>javax.jms</groupId>
2031             <artifactId>jms</artifactId>
2032           </exclusion>
2033           <exclusion>
2034             <groupId>io.netty</groupId>
2035             <artifactId>netty</artifactId>
2036           </exclusion>
2037           <exclusion>
2038             <groupId>io.netty</groupId>
2039             <artifactId>netty-all</artifactId>
2040           </exclusion>
2041           <exclusion>
2042             <groupId>org.slf4j</groupId>
2043             <artifactId>slf4j-log4j12</artifactId>
2044           </exclusion>
2045           <exclusion>
2046             <groupId>log4j</groupId>
2047             <artifactId>log4j</artifactId>
2048           </exclusion>
2049         </exclusions>
2050       </dependency>
2051       <dependency>
2052         <groupId>jline</groupId>
2053         <artifactId>jline</artifactId>
2054         <version>${jline.version}</version>
2055       </dependency>
2056       <dependency>
2057         <groupId>org.apache.thrift</groupId>
2058         <artifactId>libthrift</artifactId>
2059         <version>${thrift.version}</version>
2060         <exclusions>
2061           <exclusion>
2062             <groupId>org.apache.tomcat.embed</groupId>
2063             <artifactId>tomcat-embed-core</artifactId>
2064           </exclusion>
2065         </exclusions>
2066       </dependency>
2067       <dependency>
2068         <groupId>org.jruby</groupId>
2069         <artifactId>jruby-complete</artifactId>
2070         <version>${jruby.version}</version>
2071       </dependency>
2072       <dependency>
2073         <groupId>org.jruby.jcodings</groupId>
2074         <artifactId>jcodings</artifactId>
2075         <version>${jcodings.version}</version>
2076       </dependency>
2077       <dependency>
2078         <groupId>org.jruby.joni</groupId>
2079         <artifactId>joni</artifactId>
2080         <version>${joni.version}</version>
2081       </dependency>
2082       <dependency>
2083         <groupId>com.fasterxml.jackson.jaxrs</groupId>
2084         <artifactId>jackson-jaxrs-json-provider</artifactId>
2085         <version>${jackson.version}</version>
2086       </dependency>
2087       <dependency>
2088         <groupId>com.fasterxml.jackson.core</groupId>
2089         <artifactId>jackson-annotations</artifactId>
2090         <version>${jackson.version}</version>
2091       </dependency>
2092       <dependency>
2093         <groupId>com.fasterxml.jackson.core</groupId>
2094         <artifactId>jackson-core</artifactId>
2095         <version>${jackson.version}</version>
2096       </dependency>
2097       <dependency>
2098         <groupId>com.fasterxml.jackson.core</groupId>
2099         <artifactId>jackson-databind</artifactId>
2100         <version>${jackson.databind.version}</version>
2101       </dependency>
2102       <dependency>
2103         <groupId>org.jamon</groupId>
2104         <artifactId>jamon-runtime</artifactId>
2105         <version>${jamon-runtime.version}</version>
2106       </dependency>
2107       <!-- REST dependencies -->
2108       <dependency>
2109         <groupId>javax.servlet</groupId>
2110         <artifactId>javax.servlet-api</artifactId>
2111         <version>${servlet.api.version}</version>
2112       </dependency>
2113       <dependency>
2114         <groupId>javax.ws.rs</groupId>
2115         <artifactId>javax.ws.rs-api</artifactId>
2116         <version>${wx.rs.api.version}</version>
2117       </dependency>
2118       <dependency>
2119         <groupId>com.sun.activation</groupId>
2120         <artifactId>javax.activation</artifactId>
2121         <version>1.2.0</version>
2122       </dependency>
2123       <dependency>
2124         <groupId>javax.annotation</groupId>
2125         <artifactId>javax.annotation-api</artifactId>
2126         <version>1.2</version>
2127       </dependency>
2128       <dependency>
2129         <groupId>com.google.protobuf</groupId>
2130         <artifactId>protobuf-java</artifactId>
2131         <version>${external.protobuf.version}</version>
2132       </dependency>
2133       <dependency>
2134         <!--This lib has JspC in it. Needed precompiling jsps in hbase-rest, etc.-->
2135         <groupId>org.glassfish.web</groupId>
2136         <artifactId>javax.servlet.jsp</artifactId>
2137         <version>${glassfish.jsp.version}</version>
2138       </dependency>
2139       <dependency>
2140         <!-- this lib is used by the compiled Jsp from the above JspC -->
2141         <groupId>javax.servlet.jsp</groupId>
2142         <artifactId>javax.servlet.jsp-api</artifactId>
2143         <version>2.3.1</version>
2144       </dependency>
2145       <dependency>
2146         <groupId>org.glassfish</groupId>
2147         <artifactId>javax.el</artifactId>
2148         <version>${glassfish.el.version}</version>
2149       </dependency>
2150       <dependency>
2151         <groupId>javax.xml.bind</groupId>
2152         <artifactId>jaxb-api</artifactId>
2153         <version>${jaxb-api.version}</version>
2154         <exclusions>
2155           <exclusion>
2156             <groupId>javax.xml.stream</groupId>
2157             <artifactId>stax-api</artifactId>
2158           </exclusion>
2159         </exclusions>
2160       </dependency>
2161       <dependency>
2162         <groupId>junit</groupId>
2163         <artifactId>junit</artifactId>
2164         <version>${junit.version}</version>
2165       </dependency>
2166       <dependency>
2167         <groupId>org.hamcrest</groupId>
2168         <artifactId>hamcrest-core</artifactId>
2169         <version>${hamcrest.version}</version>
2170       </dependency>
2171       <dependency>
2172         <groupId>org.hamcrest</groupId>
2173         <artifactId>hamcrest-library</artifactId>
2174         <version>${hamcrest.version}</version>
2175       </dependency>
2176       <dependency>
2177         <groupId>org.mockito</groupId>
2178         <artifactId>mockito-core</artifactId>
2179         <version>${mockito-core.version}</version>
2180         <scope>test</scope>
2181       </dependency>
2182       <dependency>
2183         <groupId>org.apache.htrace</groupId>
2184         <artifactId>htrace-core4</artifactId>
2185         <version>${htrace.version}</version>
2186       </dependency>
2187       <dependency>
2188         <groupId>com.lmax</groupId>
2189         <artifactId>disruptor</artifactId>
2190         <version>${disruptor.version}</version>
2191       </dependency>
2192       <dependency>
2193         <groupId>net.spy</groupId>
2194         <artifactId>spymemcached</artifactId>
2195         <version>${spy.version}</version>
2196         <optional>true</optional>
2197       </dependency>
2198       <dependency>
2199         <groupId>org.bouncycastle</groupId>
2200         <artifactId>bcprov-jdk15on</artifactId>
2201         <version>${bouncycastle.version}</version>
2202         <scope>test</scope>
2203       </dependency>
2204       <dependency>
2205         <groupId>org.apache.kerby</groupId>
2206         <artifactId>kerb-core</artifactId>
2207         <version>${kerby.version}</version>
2208       </dependency>
2209       <dependency>
2210         <groupId>org.apache.kerby</groupId>
2211         <artifactId>kerb-client</artifactId>
2212         <version>${kerby.version}</version>
2213       </dependency>
2214       <dependency>
2215         <groupId>org.apache.kerby</groupId>
2216         <artifactId>kerb-simplekdc</artifactId>
2217         <version>${kerby.version}</version>
2218       </dependency>
2219       <dependency>
2220         <groupId>org.apache.commons</groupId>
2221         <artifactId>commons-crypto</artifactId>
2222         <version>${commons-crypto.version}</version>
2223         <exclusions>
2224           <exclusion>
2225             <groupId>net.java.dev.jna</groupId>
2226             <artifactId>jna</artifactId>
2227           </exclusion>
2228         </exclusions>
2229       </dependency>
2230       <dependency>
2231         <groupId>org.apache.curator</groupId>
2232         <artifactId>curator-framework</artifactId>
2233         <version>${curator.version}</version>
2234         <exclusions>
2235           <exclusion>
2236             <groupId>org.apache.zookeeper</groupId>
2237             <artifactId>zookeeper</artifactId>
2238           </exclusion>
2239         </exclusions>
2240       </dependency>
2241       <dependency>
2242         <groupId>org.apache.curator</groupId>
2243         <artifactId>curator-client</artifactId>
2244         <version>${curator.version}</version>
2245         <exclusions>
2246           <exclusion>
2247             <groupId>com.google.guava</groupId>
2248             <artifactId>guava</artifactId>
2249           </exclusion>
2250           <exclusion>
2251             <groupId>org.apache.zookeeper</groupId>
2252             <artifactId>zookeeper</artifactId>
2253           </exclusion>
2254         </exclusions>
2255       </dependency>
2256       <dependency>
2257         <groupId>org.apache.curator</groupId>
2258         <artifactId>curator-recipes</artifactId>
2259         <version>${curator.version}</version>
2260         <exclusions>
2261           <exclusion>
2262             <groupId>com.google.guava</groupId>
2263             <artifactId>guava</artifactId>
2264           </exclusion>
2265           <exclusion>
2266             <groupId>org.apache.zookeeper</groupId>
2267             <artifactId>zookeeper</artifactId>
2268           </exclusion>
2269         </exclusions>
2270       </dependency>
2271       <dependency>
2272         <groupId>org.apache.yetus</groupId>
2273         <artifactId>audience-annotations</artifactId>
2274         <version>${audience-annotations.version}</version>
2275       </dependency>
2276       <dependency>
2277         <groupId>org.apache.hbase.thirdparty</groupId>
2278         <artifactId>hbase-shaded-gson</artifactId>
2279         <version>${hbase-thirdparty.version}</version>
2280       </dependency>
2281       <dependency>
2282         <groupId>org.apache.hbase.thirdparty</groupId>
2283         <artifactId>hbase-shaded-miscellaneous</artifactId>
2284         <version>${hbase-thirdparty.version}</version>
2285       </dependency>
2286       <dependency>
2287         <groupId>org.apache.hbase.thirdparty</groupId>
2288         <artifactId>hbase-shaded-netty</artifactId>
2289         <version>${hbase-thirdparty.version}</version>
2290       </dependency>
2291       <dependency>
2292         <groupId>org.apache.hbase.thirdparty</groupId>
2293         <artifactId>hbase-shaded-protobuf</artifactId>
2294         <version>${hbase-thirdparty.version}</version>
2295       </dependency>
2296       <dependency>
2297         <groupId>org.apache.hbase.thirdparty</groupId>
2298         <artifactId>hbase-shaded-jetty</artifactId>
2299         <version>${hbase-thirdparty.version}</version>
2300       </dependency>
2301       <dependency>
2302         <groupId>org.apache.hbase.thirdparty</groupId>
2303         <artifactId>hbase-shaded-jersey</artifactId>
2304         <version>${hbase-thirdparty.version}</version>
2305       </dependency>
2306       <dependency>
2307         <groupId>com.sun.xml.ws</groupId>
2308           <artifactId>jaxws-ri</artifactId>
2309         <version>2.3.2</version>
2310         <type>pom</type>
2311         <exclusions>
2312           <exclusion>
2313             <groupId>javax.activation</groupId>
2314             <artifactId>javax.activation-api</artifactId>
2315           </exclusion>
2316         </exclusions>
2317       </dependency>
2318     </dependencies>
2319   </dependencyManagement>
2320   <dependencies>
2321     <!--REMOVE THIS. HERE TEMPORARILY.
2322          Implication is that every module needs junit which is not so.
2323          Cannot undo though because build runs test on each module and
2324          it fails if no junit. TODO. -->
2325     <dependency>
2326       <groupId>junit</groupId>
2327       <artifactId>junit</artifactId>
2328       <scope>test</scope>
2329     </dependency>
2330   </dependencies>
2332   <!--
2333   To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml )
2335  <settings>
2336   <servers>
2337     <server>
2338       <id>apache.releases.https</id>
2339       <username>hbase_committer</username>
2340       <password>********</password>
2341     </server>
2343     <server>
2344       <id>apache.snapshots.https</id>
2345       <username>hbase_committer</username>
2346       <password>********</password>
2347     </server>
2349   </servers>
2350  </settings>
2352   $ mvn deploy
2353 (or)
2354   $ mvn -s /my/path/settings.xml deploy
2356   -->
2357   <profiles>
2358     <profile>
2359       <id>rsgroup</id>
2360       <activation>
2361         <property>
2362             <name>!skip-rsgroup</name>
2363         </property>
2364       </activation>
2365       <modules>
2366         <module>hbase-rsgroup</module>
2367       </modules>
2368     </profile>
2369     <profile>
2370       <id>build-with-jdk8</id>
2371       <activation>
2372         <jdk>[1.8,)</jdk>
2373       </activation>
2374       <build>
2375         <pluginManagement>
2376           <plugins>
2377           </plugins>
2378         </pluginManagement>
2379       </build>
2380     </profile>
2381     <profile>
2382       <id>build-with-jdk11</id>
2383       <activation>
2384         <jdk>[1.11,)</jdk>
2385       </activation>
2386       <properties>
2387         <!-- TODO: replicate logic for windows support -->
2388         <argLine>--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED ${hbase-surefire.argLine}</argLine>
2389         <!-- We need a minimum HDFS version of 3.2.0 for HADOOP-12760 -->
2390         <hadoop-three.version>3.2.0</hadoop-three.version>
2391         <!--
2392           Value to use for surefire when running jdk11.
2393           TODO: replicate logic for windows
2394         -->
2395         <surefire.Xmx>2200m</surefire.Xmx>
2396       </properties>
2397       <build>
2398         <plugins>
2399           <plugin>
2400             <groupId>org.apache.maven.plugins</groupId>
2401             <artifactId>maven-enforcer-plugin</artifactId>
2402             <executions>
2403               <execution>
2404                 <id>hadoop3-profile-required</id>
2405                 <goals>
2406                   <goal>enforce</goal>
2407                 </goals>
2408                 <configuration>
2409                   <rules>
2410                     <requireProperty>
2411                       <!--
2412                         $ JAVA_HOME=... mvn -Dhadoop.profile=3.0 -PrunSmallTests help:active-profiles enforcer:display-info clean test
2413                         enforcer plugin does not see active profiles on sub-modules, so enforce based
2414                         on the presence of the activation property and value.
2415                       -->
2416                       <property>hadoop.profile</property>
2417                       <regex>.*3\.0$</regex>
2418                       <message>
2419                         HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.
2420                       </message>
2421                       <regexMessage>
2422                         HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.
2423                       </regexMessage>
2424                     </requireProperty>
2425                   </rules>
2426                 </configuration>
2427               </execution>
2428             </executions>
2429           </plugin>
2430         </plugins>
2431       </build>
2432     </profile>
2433     <!-- profile activated by the Jenkins patch testing job -->
2434     <profile>
2435       <id>jenkins.patch</id>
2436       <activation>
2437         <activeByDefault>false</activeByDefault>
2438         <property>
2439             <name>HBasePatchProcess</name>
2440         </property>
2441       </activation>
2442       <properties>
2443         <surefire.rerunFailingTestsCount>2</surefire.rerunFailingTestsCount>
2444       </properties>
2445       <build>
2446         <plugins>
2447           <plugin>
2448             <groupId>org.apache.maven.plugins</groupId>
2449             <artifactId>maven-antrun-plugin</artifactId>
2450             <inherited>false</inherited>
2451             <executions>
2452               <execution>
2453                 <phase>validate</phase>
2454                 <goals>
2455                   <goal>run</goal>
2456                 </goals>
2457                 <configuration>
2458                   <tasks>
2459                     <echo>Maven Execution Environment</echo>
2460                     <echo>MAVEN_OPTS="${env.MAVEN_OPTS}"</echo>
2461                   </tasks>
2462                 </configuration>
2463               </execution>
2464             </executions>
2465           </plugin>
2466         </plugins>
2467       </build>
2468     </profile>
2469     <profile>
2470       <id>jacoco</id>
2471       <activation>
2472         <activeByDefault>false</activeByDefault>
2473       </activation>
2474       <build>
2475         <plugins>
2476           <plugin>
2477             <groupId>org.jacoco</groupId>
2478             <artifactId>jacoco-maven-plugin</artifactId>
2479             <version>${jacoco.version}</version>
2480             <executions>
2481               <execution>
2482                 <id>prepare-agent</id>
2483                 <goals>
2484                   <goal>prepare-agent</goal>
2485                 </goals>
2486               </execution>
2487               <execution>
2488                 <id>report</id>
2489                 <phase>prepare-package</phase>
2490                 <goals>
2491                   <goal>report</goal>
2492                 </goals>
2493               </execution>
2494             </executions>
2495             <configuration>
2496               <systemPropertyVariables>
2497                 <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
2498               </systemPropertyVariables>
2499               <excludes>
2500                 <exclude>**/generated/**/*.class</exclude>
2501               </excludes>
2502             </configuration>
2503           </plugin>
2504         </plugins>
2505       </build>
2506     </profile>
2507     <profile>
2508       <id>os.linux</id>
2509       <activation>
2510         <activeByDefault>false</activeByDefault>
2511         <os>
2512           <family>Linux</family>
2513         </os>
2514       </activation>
2515       <properties>
2516         <build.platform>${os.name}-${os.arch}-${sun.arch.data.model}</build.platform>
2517       </properties>
2518     </profile>
2519     <profile>
2520       <id>os.mac</id>
2521       <activation>
2522         <os>
2523           <family>Mac</family>
2524         </os>
2525       </activation>
2526       <properties>
2527         <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform>
2528       </properties>
2529     </profile>
2530     <profile>
2531       <id>os.windows</id>
2532       <activation>
2533         <os>
2534           <family>Windows</family>
2535         </os>
2536       </activation>
2537       <properties>
2538         <build.platform>cygwin</build.platform>
2539         <argLine>${hbase-surefire.cygwin-argLine}</argLine>
2540       </properties>
2541     </profile>
2542     <!-- this profile should match the name of the release profile in the root asf pom -->
2543     <profile>
2544       <id>apache-release</id>
2545       <build>
2546         <plugins>
2547           <!-- This should insert itself in place of the normal deploy plugin and then
2548                handle either closing or dropping the staging repository for us depending
2549                on if the build succeeds.
2550             -->
2551           <plugin>
2552             <groupId>org.sonatype.plugins</groupId>
2553             <artifactId>nexus-staging-maven-plugin</artifactId>
2554             <version>1.6.8</version>
2555             <extensions>true</extensions>
2556             <configuration>
2557               <nexusUrl>https://repository.apache.org/</nexusUrl>
2558               <serverId>apache.releases.https</serverId>
2559             </configuration>
2560           </plugin>
2561         </plugins>
2562       </build>
2563     </profile>
2564     <!-- this profile should be activated for release builds -->
2565     <profile>
2566       <id>release</id>
2567       <build>
2568         <plugins>
2569           <plugin>
2570             <groupId>org.apache.rat</groupId>
2571             <artifactId>apache-rat-plugin</artifactId>
2572             <executions>
2573               <execution>
2574                 <phase>package</phase>
2575                 <goals>
2576                   <goal>check</goal>
2577                 </goals>
2578               </execution>
2579             </executions>
2580           </plugin>
2581           <plugin>
2582             <groupId>org.apache.maven.plugins</groupId>
2583             <artifactId>maven-enforcer-plugin</artifactId>
2584             <version>${enforcer.version}</version>
2585             <dependencies>
2586               <dependency>
2587                 <groupId>org.codehaus.mojo</groupId>
2588                 <artifactId>extra-enforcer-rules</artifactId>
2589                 <version>${extra.enforcer.version}</version>
2590               </dependency>
2591             </dependencies>
2592             <configuration>
2593               <rules>
2594                 <enforceBytecodeVersion>
2595                 <maxJdkVersion>${compileSource}</maxJdkVersion>
2596                 <message>HBase has unsupported dependencies.
2597   HBase requires that all dependencies be compiled with version ${compileSource} or earlier
2598   of the JDK to properly build from source.  You appear to be using a newer dependency. You can use
2599   either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
2600   Non-release builds can temporarily build with a newer JDK version by setting the
2601   'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
2602                 </message>
2603                 <ignoreClasses>
2604                   <ignoreClass>module-info</ignoreClass>
2605                 </ignoreClasses>
2606               </enforceBytecodeVersion>
2607             </rules>
2608           </configuration>
2609           </plugin>
2610         </plugins>
2611       </build>
2612     </profile>
2613     <!-- Dependency management profiles for submodules when building against specific hadoop branches.-->
2614     <!-- Submodules that need hadoop dependencies should declare
2615     profiles with activation properties matching the profile here.
2616     Generally, it should be sufficient to copy the first
2617     few lines of the profile you want to match.  -->
2618     <!-- profile for building against Hadoop 2.0.x
2619          This is the default.
2620          -->
2621     <profile>
2622       <id>hadoop-2.0</id>
2623       <activation>
2624         <property>
2625           <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
2626           <!--h2--><name>!hadoop.profile</name>
2627         </property>
2628       </activation>
2629       <modules>
2630         <module>hbase-hadoop2-compat</module>
2631       </modules>
2632       <properties>
2633         <hadoop.version>${hadoop-two.version}</hadoop.version>
2634         <compat.module>hbase-hadoop2-compat</compat.module>
2635         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2636         <!--This property is for hadoops netty. HBase netty
2637              comes in via hbase-thirdparty hbase-shaded-netty-->
2638         <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
2639       </properties>
2640       <dependencyManagement>
2641         <dependencies>
2642           <dependency>
2643             <groupId>org.apache.hadoop</groupId>
2644             <artifactId>hadoop-mapreduce-client-core</artifactId>
2645             <version>${hadoop-two.version}</version>
2646             <exclusions>
2647               <exclusion>
2648                 <groupId>com.sun.jersey</groupId>
2649                 <artifactId>jersey-core</artifactId>
2650               </exclusion>
2651               <exclusion>
2652                 <groupId>org.codehaus.jackson</groupId>
2653                 <artifactId>jackson-jaxrs</artifactId>
2654               </exclusion>
2655               <exclusion>
2656                 <groupId>org.codehaus.jackson</groupId>
2657                 <artifactId>jackson-xc</artifactId>
2658               </exclusion>
2659               <exclusion>
2660                 <groupId>io.netty</groupId>
2661                 <artifactId>netty</artifactId>
2662               </exclusion>
2663               <exclusion>
2664                 <groupId>io.netty</groupId>
2665                 <artifactId>netty-all</artifactId>
2666               </exclusion>
2667               <exclusion>
2668                 <groupId>javax.servlet</groupId>
2669                 <artifactId>servlet-api</artifactId>
2670               </exclusion>
2671               <exclusion>
2672                 <groupId>javax.inject</groupId>
2673                 <artifactId>javax.inject</artifactId>
2674               </exclusion>
2675               <exclusion>
2676                 <groupId>org.codehaus.jackson</groupId>
2677                 <artifactId>jackson-core-asl</artifactId>
2678               </exclusion>
2679               <exclusion>
2680                 <groupId>org.codehaus.jackson</groupId>
2681                 <artifactId>jackson-mapper-asl</artifactId>
2682               </exclusion>
2683               <exclusion>
2684                 <groupId>org.slf4j</groupId>
2685                 <artifactId>slf4j-log4j12</artifactId>
2686               </exclusion>
2687               <exclusion>
2688                 <groupId>log4j</groupId>
2689                 <artifactId>log4j</artifactId>
2690               </exclusion>
2691              </exclusions>
2692           </dependency>
2693           <dependency>
2694             <groupId>org.apache.hadoop</groupId>
2695             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2696             <version>${hadoop-two.version}</version>
2697             <exclusions>
2698               <exclusion>
2699                 <groupId>com.sun.jersey</groupId>
2700                 <artifactId>jersey-core</artifactId>
2701               </exclusion>
2702               <exclusion>
2703                 <groupId>io.netty</groupId>
2704                 <artifactId>netty</artifactId>
2705               </exclusion>
2706               <exclusion>
2707                 <groupId>io.netty</groupId>
2708                 <artifactId>netty-all</artifactId>
2709               </exclusion>
2710               <exclusion>
2711                 <groupId>javax.servlet</groupId>
2712                 <artifactId>servlet-api</artifactId>
2713               </exclusion>
2714               <exclusion>
2715                 <groupId>org.slf4j</groupId>
2716                 <artifactId>slf4j-log4j12</artifactId>
2717               </exclusion>
2718               <exclusion>
2719                 <groupId>log4j</groupId>
2720                 <artifactId>log4j</artifactId>
2721               </exclusion>
2722             </exclusions>
2723           </dependency>
2724           <dependency>
2725             <groupId>org.apache.hadoop</groupId>
2726             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2727             <version>${hadoop-two.version}</version>
2728             <type>test-jar</type>
2729             <scope>test</scope>
2730             <exclusions>
2731               <exclusion>
2732                 <groupId>com.sun.jersey</groupId>
2733                 <artifactId>jersey-core</artifactId>
2734               </exclusion>
2735               <exclusion>
2736                 <groupId>io.netty</groupId>
2737                 <artifactId>netty</artifactId>
2738               </exclusion>
2739               <exclusion>
2740                 <groupId>io.netty</groupId>
2741                 <artifactId>netty-all</artifactId>
2742               </exclusion>
2743               <exclusion>
2744                 <groupId>javax.servlet</groupId>
2745                 <artifactId>servlet-api</artifactId>
2746               </exclusion>
2747               <exclusion>
2748                 <groupId>org.slf4j</groupId>
2749                 <artifactId>slf4j-log4j12</artifactId>
2750               </exclusion>
2751               <exclusion>
2752                 <groupId>log4j</groupId>
2753                 <artifactId>log4j</artifactId>
2754               </exclusion>
2755             </exclusions>
2756           </dependency>
2757           <dependency>
2758             <groupId>org.apache.hadoop</groupId>
2759             <artifactId>hadoop-mapreduce-client-app</artifactId>
2760             <version>${hadoop-two.version}</version>
2761             <type>test-jar</type>
2762             <exclusions>
2763               <exclusion>
2764                 <groupId>org.codehaus.jackson</groupId>
2765                 <artifactId>jackson-mapper-asl</artifactId>
2766               </exclusion>
2767               <exclusion>
2768                 <groupId>org.codehaus.jackson</groupId>
2769                 <artifactId>jackson-core-asl</artifactId>
2770               </exclusion>
2771               <exclusion>
2772                 <groupId>org.codehaus.jackson</groupId>
2773                 <artifactId>jackson-jaxrs</artifactId>
2774               </exclusion>
2775               <exclusion>
2776                 <groupId>org.codehaus.jackson</groupId>
2777                 <artifactId>jackson-xc</artifactId>
2778               </exclusion>
2779               <exclusion>
2780                 <groupId>javax.xml.bind</groupId>
2781                 <artifactId>jaxb-api</artifactId>
2782               </exclusion>
2783               <exclusion>
2784                 <groupId>javax.ws.rs</groupId>
2785                 <artifactId>jsr311-api</artifactId>
2786               </exclusion>
2787               <exclusion>
2788                 <groupId>javax.servlet</groupId>
2789                 <artifactId>servlet-api</artifactId>
2790               </exclusion>
2791               <exclusion>
2792                 <groupId>org.slf4j</groupId>
2793                 <artifactId>slf4j-log4j12</artifactId>
2794               </exclusion>
2795               <exclusion>
2796                 <groupId>log4j</groupId>
2797                 <artifactId>log4j</artifactId>
2798               </exclusion>
2799             </exclusions>
2800           </dependency>
2801           <dependency>
2802             <groupId>org.apache.hadoop</groupId>
2803             <artifactId>hadoop-hdfs</artifactId>
2804             <version>${hadoop-two.version}</version>
2805             <exclusions>
2806               <exclusion>
2807                 <groupId>com.sun.jersey</groupId>
2808                 <artifactId>jersey-core</artifactId>
2809               </exclusion>
2810               <exclusion>
2811                 <groupId>javax.servlet.jsp</groupId>
2812                 <artifactId>jsp-api</artifactId>
2813               </exclusion>
2814               <exclusion>
2815                 <groupId>javax.servlet</groupId>
2816                 <artifactId>servlet-api</artifactId>
2817               </exclusion>
2818               <exclusion>
2819                 <groupId>io.netty</groupId>
2820                 <artifactId>netty</artifactId>
2821               </exclusion>
2822               <exclusion>
2823                 <groupId>io.netty</groupId>
2824                 <artifactId>netty-all</artifactId>
2825               </exclusion>
2826               <exclusion>
2827                 <groupId>stax</groupId>
2828                 <artifactId>stax-api</artifactId>
2829               </exclusion>
2830               <exclusion>
2831                 <groupId>xerces</groupId>
2832                 <artifactId>xercesImpl</artifactId>
2833               </exclusion>
2834               <exclusion>
2835                 <groupId>org.codehaus.jackson</groupId>
2836                 <artifactId>jackson-core-asl</artifactId>
2837               </exclusion>
2838               <exclusion>
2839                 <groupId>org.codehaus.jackson</groupId>
2840                 <artifactId>jackson-mapper-asl</artifactId>
2841               </exclusion>
2842               <exclusion>
2843                 <groupId>com.google.guava</groupId>
2844                 <artifactId>guava</artifactId>
2845               </exclusion>
2846               <exclusion>
2847                 <groupId>org.slf4j</groupId>
2848                 <artifactId>slf4j-log4j12</artifactId>
2849               </exclusion>
2850               <exclusion>
2851                 <groupId>log4j</groupId>
2852                 <artifactId>log4j</artifactId>
2853               </exclusion>
2854             </exclusions>
2855           </dependency>
2856           <dependency>
2857             <groupId>org.apache.hadoop</groupId>
2858             <artifactId>hadoop-hdfs</artifactId>
2859             <version>${hadoop-two.version}</version>
2860             <type>test-jar</type>
2861             <scope>test</scope>
2862             <exclusions>
2863               <exclusion>
2864                 <groupId>javax.servlet.jsp</groupId>
2865                 <artifactId>jsp-api</artifactId>
2866               </exclusion>
2867               <exclusion>
2868                 <groupId>javax.servlet</groupId>
2869                 <artifactId>servlet-api</artifactId>
2870               </exclusion>
2871               <exclusion>
2872                 <groupId>io.netty</groupId>
2873                 <artifactId>netty</artifactId>
2874               </exclusion>
2875               <exclusion>
2876                 <groupId>io.netty</groupId>
2877                 <artifactId>netty-all</artifactId>
2878               </exclusion>
2879               <exclusion>
2880                 <groupId>stax</groupId>
2881                 <artifactId>stax-api</artifactId>
2882               </exclusion>
2883               <exclusion>
2884                 <groupId>xerces</groupId>
2885                 <artifactId>xercesImpl</artifactId>
2886               </exclusion>
2887               <exclusion>
2888                 <groupId>org.codehaus.jackson</groupId>
2889                 <artifactId>jackson-core-asl</artifactId>
2890               </exclusion>
2891               <exclusion>
2892                 <groupId>org.codehaus.jackson</groupId>
2893                 <artifactId>jackson-mapper-asl</artifactId>
2894               </exclusion>
2895               <exclusion>
2896                 <groupId>com.google.guava</groupId>
2897                 <artifactId>guava</artifactId>
2898               </exclusion>
2899               <exclusion>
2900                 <groupId>com.sun.jersey</groupId>
2901                 <artifactId>jersey-core</artifactId>
2902               </exclusion>
2903               <exclusion>
2904                 <groupId>org.slf4j</groupId>
2905                 <artifactId>slf4j-log4j12</artifactId>
2906               </exclusion>
2907               <exclusion>
2908                 <groupId>log4j</groupId>
2909                 <artifactId>log4j</artifactId>
2910               </exclusion>
2911             </exclusions>
2912           </dependency>
2913           <dependency>
2914             <groupId>org.apache.hadoop</groupId>
2915             <artifactId>hadoop-auth</artifactId>
2916             <version>${hadoop-two.version}</version>
2917             <exclusions>
2918               <exclusion>
2919                 <groupId>com.google.guava</groupId>
2920                 <artifactId>guava</artifactId>
2921               </exclusion>
2922               <exclusion>
2923                 <groupId>net.minidev</groupId>
2924                 <artifactId>json-smart</artifactId>
2925               </exclusion>
2926               <exclusion>
2927                 <groupId>org.slf4j</groupId>
2928                 <artifactId>slf4j-log4j12</artifactId>
2929               </exclusion>
2930               <exclusion>
2931                 <groupId>log4j</groupId>
2932                 <artifactId>log4j</artifactId>
2933               </exclusion>
2934             </exclusions>
2935           </dependency>
2936           <dependency>
2937             <groupId>org.apache.hadoop</groupId>
2938             <artifactId>hadoop-common</artifactId>
2939             <version>${hadoop-two.version}</version>
2940             <exclusions>
2941               <exclusion>
2942                 <groupId>com.sun.jersey</groupId>
2943                 <artifactId>jersey-core</artifactId>
2944               </exclusion>
2945               <exclusion>
2946                 <groupId>org.codehaus.jackson</groupId>
2947                 <artifactId>jackson-jaxrs</artifactId>
2948               </exclusion>
2949               <exclusion>
2950                 <groupId>org.codehaus.jackson</groupId>
2951                 <artifactId>jackson-xc</artifactId>
2952               </exclusion>
2953               <exclusion>
2954                 <groupId>commons-beanutils</groupId>
2955                 <artifactId>commons-beanutils</artifactId>
2956               </exclusion>
2957               <exclusion>
2958                 <groupId>javax.servlet.jsp</groupId>
2959                 <artifactId>jsp-api</artifactId>
2960               </exclusion>
2961               <exclusion>
2962                 <groupId>javax.servlet</groupId>
2963                 <artifactId>servlet-api</artifactId>
2964               </exclusion>
2965               <exclusion>
2966                 <groupId>stax</groupId>
2967                 <artifactId>stax-api</artifactId>
2968               </exclusion>
2969               <exclusion>
2970                 <groupId>io.netty</groupId>
2971                 <artifactId>netty</artifactId>
2972               </exclusion>
2973               <exclusion>
2974                 <groupId>io.netty</groupId>
2975                 <artifactId>netty-all</artifactId>
2976               </exclusion>
2977               <exclusion>
2978                 <groupId>com.google.code.findbugs</groupId>
2979                 <artifactId>jsr305</artifactId>
2980               </exclusion>
2981               <exclusion>
2982                 <groupId>junit</groupId>
2983                 <artifactId>junit</artifactId>
2984               </exclusion>
2985              <exclusion>
2986                <groupId>org.codehaus.jackson</groupId>
2987                <artifactId>jackson-core-asl</artifactId>
2988              </exclusion>
2989              <exclusion>
2990                <groupId>org.codehaus.jackson</groupId>
2991                <artifactId>jackson-mapper-asl</artifactId>
2992              </exclusion>
2993              <exclusion>
2994                 <groupId>org.slf4j</groupId>
2995                 <artifactId>slf4j-log4j12</artifactId>
2996               </exclusion>
2997               <exclusion>
2998                 <groupId>log4j</groupId>
2999                 <artifactId>log4j</artifactId>
3000               </exclusion>
3001             </exclusions>
3002           </dependency>
3003           <dependency>
3004             <groupId>org.apache.hadoop</groupId>
3005             <artifactId>hadoop-common</artifactId>
3006             <version>${hadoop-two.version}</version>
3007             <type>test-jar</type>
3008             <scope>test</scope>
3009             <exclusions>
3010               <exclusion>
3011                 <groupId>javax.servlet.jsp</groupId>
3012                 <artifactId>jsp-api</artifactId>
3013               </exclusion>
3014               <exclusion>
3015                 <groupId>org.codehaus.jackson</groupId>
3016                 <artifactId>jackson-mapper-asl</artifactId>
3017               </exclusion>
3018               <exclusion>
3019                 <groupId>org.codehaus.jackson</groupId>
3020                 <artifactId>jackson-core-asl</artifactId>
3021               </exclusion>
3022               <exclusion>
3023                 <groupId>org.codehaus.jackson</groupId>
3024                 <artifactId>jackson-jaxrs</artifactId>
3025               </exclusion>
3026               <exclusion>
3027                 <groupId>org.codehaus.jackson</groupId>
3028                 <artifactId>jackson-xc</artifactId>
3029               </exclusion>
3030               <exclusion>
3031                 <groupId>javax.xml.bind</groupId>
3032                 <artifactId>jaxb-api</artifactId>
3033               </exclusion>
3034               <exclusion>
3035                 <groupId>javax.ws.rs</groupId>
3036                 <artifactId>jsr311-api</artifactId>
3037               </exclusion>
3038               <exclusion>
3039                 <groupId>javax.servlet</groupId>
3040                 <artifactId>servlet-api</artifactId>
3041               </exclusion>
3042               <exclusion>
3043                 <groupId>com.sun.jersey</groupId>
3044                 <artifactId>jersey-core</artifactId>
3045               </exclusion>
3046               <exclusion>
3047                 <groupId>com.google.code.findbugs</groupId>
3048                 <artifactId>jsr305</artifactId>
3049               </exclusion>
3050               <exclusion>
3051                 <groupId>io.netty</groupId>
3052                 <artifactId>netty</artifactId>
3053               </exclusion>
3054               <exclusion>
3055                 <groupId>org.slf4j</groupId>
3056                 <artifactId>slf4j-log4j12</artifactId>
3057               </exclusion>
3058               <exclusion>
3059                 <groupId>log4j</groupId>
3060                 <artifactId>log4j</artifactId>
3061               </exclusion>
3062             </exclusions>
3063           </dependency>
3064           <dependency>
3065             <!--
3066               a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
3067               duplicated here because hadoop-3.0 piggy-backs off the hadoop-2.0 profile.
3068             -->
3069             <groupId>javax.activation</groupId>
3070             <artifactId>javax.activation-api</artifactId>
3071             <version>1.2.0</version>
3072             <scope>test</scope>
3073           </dependency>
3074           <dependency>
3075             <groupId>org.apache.hadoop</groupId>
3076             <artifactId>hadoop-client</artifactId>
3077             <version>${hadoop-two.version}</version>
3078             <exclusions>
3079               <exclusion>
3080                 <groupId>org.slf4j</groupId>
3081                 <artifactId>slf4j-log4j12</artifactId>
3082               </exclusion>
3083               <exclusion>
3084                 <groupId>log4j</groupId>
3085                 <artifactId>log4j</artifactId>
3086               </exclusion>
3087             </exclusions>
3088           </dependency>
3089           <!-- This was marked as test dep in earlier pom, but was scoped compile.
3090             Where do we actually need it? -->
3091           <dependency>
3092             <groupId>org.apache.hadoop</groupId>
3093             <artifactId>hadoop-minicluster</artifactId>
3094             <version>${hadoop-two.version}</version>
3095             <exclusions>
3096               <!--If we comment this in, a few tests in hbase-mapreduce
3097                    fail. They depend on jersey-core somehow. But excluding
3098                    jersey-core here messes up hbase-it because jersey-core
3099                    implements a 1.x jaxrs Response Interface when we depend
3100                    on the 2.x Interface... . Letting this jar come in
3101                    transitively here but will exclude it down in hbase-it.
3102                    See HBASE-22029.
3103               <exclusion>
3104                 <groupId>com.sun.jersey</groupId>
3105                 <artifactId>jersey-core</artifactId>
3106               </exclusion>
3107               -->
3108               <exclusion>
3109                 <groupId>commons-httpclient</groupId>
3110                 <artifactId>commons-httpclient</artifactId>
3111               </exclusion>
3112               <exclusion>
3113                 <groupId>javax.servlet.jsp</groupId>
3114                 <artifactId>jsp-api</artifactId>
3115               </exclusion>
3116               <exclusion>
3117                 <groupId>javax.servlet</groupId>
3118                 <artifactId>servlet-api</artifactId>
3119               </exclusion>
3120               <exclusion>
3121                 <groupId>stax</groupId>
3122                 <artifactId>stax-api</artifactId>
3123               </exclusion>
3124               <exclusion>
3125                 <groupId>io.netty</groupId>
3126                 <artifactId>netty</artifactId>
3127               </exclusion>
3128               <exclusion>
3129                 <groupId>io.netty</groupId>
3130                 <artifactId>netty-all</artifactId>
3131               </exclusion>
3132               <exclusion>
3133                 <groupId>com.google.code.findbugs</groupId>
3134                 <artifactId>jsr305</artifactId>
3135               </exclusion>
3136               <exclusion>
3137                 <groupId>org.slf4j</groupId>
3138                 <artifactId>slf4j-log4j12</artifactId>
3139               </exclusion>
3140               <exclusion>
3141                 <groupId>log4j</groupId>
3142                 <artifactId>log4j</artifactId>
3143               </exclusion>
3144             </exclusions>
3145           </dependency>
3146           <dependency>
3147             <groupId>org.apache.hadoop</groupId>
3148             <artifactId>hadoop-minikdc</artifactId>
3149             <version>${hadoop-two.version}</version>
3150             <scope>test</scope>
3151             <exclusions>
3152               <exclusion>
3153                 <groupId>org.slf4j</groupId>
3154                 <artifactId>slf4j-log4j12</artifactId>
3155               </exclusion>
3156               <exclusion>
3157                 <groupId>log4j</groupId>
3158                 <artifactId>log4j</artifactId>
3159               </exclusion>
3160             </exclusions>
3161           </dependency>
3162          <dependency>
3163            <groupId>org.apache.hadoop</groupId>
3164            <artifactId>hadoop-annotations</artifactId>
3165            <version>${hadoop-two.version}</version>
3166          </dependency>
3168           <dependency>
3169             <groupId>org.apache.hadoop</groupId>
3170             <artifactId>hadoop-distcp</artifactId>
3171             <version>${hadoop-two.version}</version>
3172           </dependency>
3174           <dependency>
3175             <groupId>org.apache.hadoop</groupId>
3176             <artifactId>hadoop-hdfs-client</artifactId>
3177             <version>${hadoop-two.version}</version>
3178           </dependency>
3179         </dependencies>
3180       </dependencyManagement>
3181     </profile>
3182     <!--
3183       profile for building against Hadoop 3.0.0. Activate using:
3184        mvn -Dhadoop.profile=3.0
3185     -->
3186     <profile>
3187       <id>hadoop-3.0</id>
3188       <activation>
3189         <property>
3190           <name>hadoop.profile</name>
3191           <value>3.0</value>
3192         </property>
3193       </activation>
3194       <modules>
3195         <!--For now, use hadoop2 compat module-->
3196         <module>hbase-hadoop2-compat</module>
3197       </modules>
3198       <properties>
3199         <hadoop.profile>3.0</hadoop.profile>
3200         <hadoop.version>${hadoop-three.version}</hadoop.version>
3201         <!--Use this compat module for now. TODO: Make h3 one if we need one-->
3202         <compat.module>hbase-hadoop2-compat</compat.module>
3203         <assembly.file>src/main/assembly/hadoop-three-compat.xml</assembly.file>
3204         <!--This property is for hadoops netty. HBase netty
3205              comes in via hbase-thirdparty hbase-shaded-netty-->
3206         <netty.hadoop.version>3.10.5.Final</netty.hadoop.version>
3207       </properties>
3208      <dependencyManagement>
3209        <dependencies>
3210          <dependency>
3211            <groupId>org.apache.hadoop</groupId>
3212            <artifactId>hadoop-mapreduce-client-core</artifactId>
3213            <version>${hadoop-three.version}</version>
3214            <exclusions>
3215              <exclusion>
3216                <groupId>com.sun.jersey</groupId>
3217                <artifactId>jersey-core</artifactId>
3218              </exclusion>
3219              <exclusion>
3220                <groupId>org.codehaus.jackson</groupId>
3221                <artifactId>jackson-jaxrs</artifactId>
3222              </exclusion>
3223              <exclusion>
3224                <groupId>org.codehaus.jackson</groupId>
3225                <artifactId>jackson-xc</artifactId>
3226              </exclusion>
3227              <exclusion>
3228                <groupId>io.netty</groupId>
3229                <artifactId>netty</artifactId>
3230              </exclusion>
3231              <exclusion>
3232                <groupId>io.netty</groupId>
3233                <artifactId>netty-all</artifactId>
3234              </exclusion>
3235               <exclusion>
3236                 <groupId>javax.servlet</groupId>
3237                 <artifactId>servlet-api</artifactId>
3238               </exclusion>
3239               <exclusion>
3240                 <groupId>javax.inject</groupId>
3241                 <artifactId>javax.inject</artifactId>
3242               </exclusion>
3243               <exclusion>
3244                 <groupId>org.codehaus.jackson</groupId>
3245                 <artifactId>jackson-core-asl</artifactId>
3246               </exclusion>
3247               <exclusion>
3248                 <groupId>org.codehaus.jackson</groupId>
3249                 <artifactId>jackson-mapper-asl</artifactId>
3250               </exclusion>
3251               <exclusion>
3252                 <groupId>com.google.guava</groupId>
3253                 <artifactId>guava</artifactId>
3254               </exclusion>
3255               <exclusion>
3256                 <groupId>org.slf4j</groupId>
3257                 <artifactId>slf4j-log4j12</artifactId>
3258               </exclusion>
3259               <exclusion>
3260                 <groupId>log4j</groupId>
3261                 <artifactId>log4j</artifactId>
3262               </exclusion>
3263            </exclusions>
3264          </dependency>
3265          <dependency>
3266            <groupId>org.apache.hadoop</groupId>
3267            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
3268            <version>${hadoop-three.version}</version>
3269            <exclusions>
3270              <exclusion>
3271                <groupId>com.sun.jersey</groupId>
3272                <artifactId>jersey-core</artifactId>
3273              </exclusion>
3274              <exclusion>
3275                <groupId>io.netty</groupId>
3276                <artifactId>netty</artifactId>
3277              </exclusion>
3278              <!--HERE-->
3279              <exclusion>
3280                <groupId>io.netty</groupId>
3281                <artifactId>netty-all</artifactId>
3282              </exclusion>
3283               <exclusion>
3284                 <groupId>javax.servlet</groupId>
3285                 <artifactId>servlet-api</artifactId>
3286               </exclusion>
3287              <exclusion>
3288                <groupId>org.slf4j</groupId>
3289                <artifactId>slf4j-log4j12</artifactId>
3290              </exclusion>
3291              <exclusion>
3292                <groupId>log4j</groupId>
3293                <artifactId>log4j</artifactId>
3294              </exclusion>
3295            </exclusions>
3296          </dependency>
3297          <dependency>
3298            <groupId>org.apache.hadoop</groupId>
3299            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
3300            <version>${hadoop-three.version}</version>
3301            <type>test-jar</type>
3302            <scope>test</scope>
3303            <exclusions>
3304              <exclusion>
3305                <groupId>com.sun.jersey</groupId>
3306                <artifactId>jersey-core</artifactId>
3307              </exclusion>
3308              <exclusion>
3309                <groupId>io.netty</groupId>
3310                <artifactId>netty</artifactId>
3311              </exclusion>
3312              <exclusion>
3313                <groupId>io.netty</groupId>
3314                <artifactId>netty-all</artifactId>
3315              </exclusion>
3316               <exclusion>
3317                 <groupId>javax.servlet</groupId>
3318                 <artifactId>servlet-api</artifactId>
3319               </exclusion>
3320               <exclusion>
3321                 <groupId>org.slf4j</groupId>
3322                 <artifactId>slf4j-log4j12</artifactId>
3323               </exclusion>
3324               <exclusion>
3325                 <groupId>log4j</groupId>
3326                 <artifactId>log4j</artifactId>
3327               </exclusion>
3328            </exclusions>
3329          </dependency>
3330          <dependency>
3331            <groupId>org.apache.hadoop</groupId>
3332            <artifactId>hadoop-mapreduce-client-app</artifactId>
3333            <version>${hadoop-three.version}</version>
3334            <type>test-jar</type>
3335            <exclusions>
3336              <exclusion>
3337                <groupId>org.codehaus.jackson</groupId>
3338                <artifactId>jackson-mapper-asl</artifactId>
3339              </exclusion>
3340              <exclusion>
3341                <groupId>org.codehaus.jackson</groupId>
3342                <artifactId>jackson-core-asl</artifactId>
3343              </exclusion>
3344              <exclusion>
3345                <groupId>org.codehaus.jackson</groupId>
3346                <artifactId>jackson-jaxrs</artifactId>
3347              </exclusion>
3348              <exclusion>
3349                <groupId>org.codehaus.jackson</groupId>
3350                <artifactId>jackson-xc</artifactId>
3351              </exclusion>
3352              <exclusion>
3353                <groupId>javax.xml.bind</groupId>
3354                <artifactId>jaxb-api</artifactId>
3355              </exclusion>
3356              <exclusion>
3357                <groupId>javax.ws.rs</groupId>
3358                <artifactId>jsr311-api</artifactId>
3359              </exclusion>
3360              <exclusion>
3361                <groupId>javax.servlet</groupId>
3362                <artifactId>servlet-api</artifactId>
3363              </exclusion>
3364              <exclusion>
3365                <groupId>org.slf4j</groupId>
3366                <artifactId>slf4j-log4j12</artifactId>
3367              </exclusion>
3368              <exclusion>
3369                <groupId>log4j</groupId>
3370                <artifactId>log4j</artifactId>
3371              </exclusion>
3372            </exclusions>
3373          </dependency>
3374          <dependency>
3375            <groupId>org.apache.hadoop</groupId>
3376            <artifactId>hadoop-hdfs</artifactId>
3377            <version>${hadoop-three.version}</version>
3378            <exclusions>
3379              <exclusion>
3380                <groupId>com.sun.jersey</groupId>
3381                <artifactId>jersey-core</artifactId>
3382              </exclusion>
3383              <exclusion>
3384                <groupId>com.sun.jersey</groupId>
3385                <artifactId>jersey-server</artifactId>
3386              </exclusion>
3387              <exclusion>
3388                <groupId>javax.servlet.jsp</groupId>
3389                <artifactId>jsp-api</artifactId>
3390              </exclusion>
3391              <exclusion>
3392                <groupId>javax.servlet</groupId>
3393                <artifactId>servlet-api</artifactId>
3394              </exclusion>
3395              <exclusion>
3396                <groupId>stax</groupId>
3397                <artifactId>stax-api</artifactId>
3398              </exclusion>
3399              <exclusion>
3400                <groupId>xerces</groupId>
3401                <artifactId>xercesImpl</artifactId>
3402              </exclusion>
3403              <exclusion>
3404                <groupId>org.codehaus.jackson</groupId>
3405                <artifactId>jackson-core-asl</artifactId>
3406              </exclusion>
3407              <exclusion>
3408                <groupId>org.codehaus.jackson</groupId>
3409                <artifactId>jackson-mapper-asl</artifactId>
3410              </exclusion>
3411              <exclusion>
3412                <groupId>com.google.guava</groupId>
3413                <artifactId>guava</artifactId>
3414              </exclusion>
3415              <exclusion>
3416                <groupId>org.slf4j</groupId>
3417                <artifactId>slf4j-log4j12</artifactId>
3418              </exclusion>
3419              <exclusion>
3420                <groupId>log4j</groupId>
3421                <artifactId>log4j</artifactId>
3422              </exclusion>
3423               <exclusion>
3424                 <groupId>io.netty</groupId>
3425                 <artifactId>netty</artifactId>
3426               </exclusion>
3427               <exclusion>
3428                 <groupId>io.netty</groupId>
3429                 <artifactId>netty-all</artifactId>
3430               </exclusion>
3431            </exclusions>
3432          </dependency>
3433          <dependency>
3434            <groupId>org.apache.hadoop</groupId>
3435            <artifactId>hadoop-hdfs</artifactId>
3436            <version>${hadoop-three.version}</version>
3437            <type>test-jar</type>
3438            <scope>test</scope>
3439            <exclusions>
3440              <exclusion>
3441                <groupId>javax.servlet.jsp</groupId>
3442                <artifactId>jsp-api</artifactId>
3443              </exclusion>
3444              <exclusion>
3445                <groupId>javax.servlet</groupId>
3446                <artifactId>servlet-api</artifactId>
3447              </exclusion>
3448              <exclusion>
3449                <groupId>stax</groupId>
3450                <artifactId>stax-api</artifactId>
3451              </exclusion>
3452              <exclusion>
3453                <groupId>xerces</groupId>
3454                <artifactId>xercesImpl</artifactId>
3455              </exclusion>
3456              <exclusion>
3457                <groupId>org.codehaus.jackson</groupId>
3458                <artifactId>jackson-core-asl</artifactId>
3459              </exclusion>
3460              <exclusion>
3461                <groupId>org.codehaus.jackson</groupId>
3462                <artifactId>jackson-mapper-asl</artifactId>
3463              </exclusion>
3464              <exclusion>
3465                <groupId>com.google.guava</groupId>
3466                <artifactId>guava</artifactId>
3467              </exclusion>
3468              <exclusion>
3469                <groupId>com.sun.jersey</groupId>
3470                <artifactId>jersey-core</artifactId>
3471              </exclusion>
3472              <exclusion>
3473                <groupId>org.slf4j</groupId>
3474                <artifactId>slf4j-log4j12</artifactId>
3475              </exclusion>
3476              <exclusion>
3477                <groupId>log4j</groupId>
3478                <artifactId>log4j</artifactId>
3479              </exclusion>
3480              <exclusion>
3481                <groupId>io.netty</groupId>
3482                <artifactId>netty-all</artifactId>
3483              </exclusion>
3484            </exclusions>
3485          </dependency>
3486          <dependency>
3487            <groupId>org.apache.hadoop</groupId>
3488            <artifactId>hadoop-hdfs</artifactId>
3489            <version>${hadoop-three.version}</version>
3490            <type>test-jar</type>
3491            <classifier>tests</classifier>
3492            <scope>test</scope>
3493            <exclusions>
3494              <exclusion>
3495                <groupId>com.sun.jersey</groupId>
3496                <artifactId>jersey-core</artifactId>
3497              </exclusion>
3498            </exclusions>
3499          </dependency>
3500          <dependency>
3501            <groupId>org.apache.hadoop</groupId>
3502            <artifactId>hadoop-auth</artifactId>
3503            <version>${hadoop-three.version}</version>
3504            <exclusions>
3505              <exclusion>
3506                <groupId>com.google.guava</groupId>
3507                <artifactId>guava</artifactId>
3508              </exclusion>
3509              <exclusion>
3510                <groupId>net.minidev</groupId>
3511                <artifactId>json-smart</artifactId>
3512              </exclusion>
3513              <exclusion>
3514                <groupId>org.slf4j</groupId>
3515                <artifactId>slf4j-log4j12</artifactId>
3516              </exclusion>
3517              <exclusion>
3518                <groupId>log4j</groupId>
3519                <artifactId>log4j</artifactId>
3520              </exclusion>
3521            </exclusions>
3522          </dependency>
3523          <dependency>
3524            <groupId>org.apache.hadoop</groupId>
3525            <artifactId>hadoop-common</artifactId>
3526            <version>${hadoop-three.version}</version>
3527            <exclusions>
3528              <exclusion>
3529                <groupId>com.sun.jersey</groupId>
3530                <artifactId>jersey-core</artifactId>
3531              </exclusion>
3532              <exclusion>
3533                <groupId>com.sun.jersey</groupId>
3534                <artifactId>jersey-json</artifactId>
3535              </exclusion>
3536              <exclusion>
3537                <groupId>com.sun.jersey</groupId>
3538                <artifactId>jersey-servlet</artifactId>
3539              </exclusion>
3540              <exclusion>
3541               <groupId>com.sun.jersey</groupId>
3542                <artifactId>jersey-server</artifactId>
3543              </exclusion>
3544              <exclusion>
3545                <groupId>javax.servlet.jsp</groupId>
3546                <artifactId>jsp-api</artifactId>
3547              </exclusion>
3548              <exclusion>
3549                <groupId>javax.servlet</groupId>
3550                <artifactId>javax.servlet-api</artifactId>
3551              </exclusion>
3552              <exclusion>
3553                <groupId>stax</groupId>
3554                <artifactId>stax-api</artifactId>
3555              </exclusion>
3556              <exclusion>
3557                <groupId>io.netty</groupId>
3558                <artifactId>netty</artifactId>
3559              </exclusion>
3560              <exclusion>
3561                <groupId>io.netty</groupId>
3562                <artifactId>netty-all</artifactId>
3563              </exclusion>
3564              <exclusion>
3565                <groupId>com.google.code.findbugs</groupId>
3566                <artifactId>jsr305</artifactId>
3567              </exclusion>
3568              <exclusion>
3569                <groupId>junit</groupId>
3570                <artifactId>junit</artifactId>
3571              </exclusion>
3572              <exclusion>
3573                <groupId>org.codehause.jackson</groupId>
3574                <artifactId>jackson-core-asl</artifactId>
3575              </exclusion>
3576              <exclusion>
3577                <groupId>org.codehause.jackson</groupId>
3578                <artifactId>jackson-mapper-asl</artifactId>
3579              </exclusion>
3580              <exclusion>
3581                <groupId>org.slf4j</groupId>
3582                <artifactId>slf4j-log4j12</artifactId>
3583              </exclusion>
3584              <exclusion>
3585                <groupId>log4j</groupId>
3586                <artifactId>log4j</artifactId>
3587              </exclusion>
3588            </exclusions>
3589          </dependency>
3590          <dependency>
3591            <!--
3592              a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
3593            -->
3594            <groupId>javax.activation</groupId>
3595            <artifactId>javax.activation-api</artifactId>
3596            <version>1.2.0</version>
3597            <scope>test</scope>
3598          </dependency>
3599          <dependency>
3600            <groupId>org.apache.hadoop</groupId>
3601            <artifactId>hadoop-common</artifactId>
3602            <type>test-jar</type>
3603            <scope>test</scope>
3604            <version>${hadoop-three.version}</version>
3605            <exclusions>
3606              <exclusion>
3607                <groupId>javax.servlet.jsp</groupId>
3608                <artifactId>jsp-api</artifactId>
3609              </exclusion>
3610              <exclusion>
3611                <groupId>org.codehaus.jackson</groupId>
3612                <artifactId>jackson-mapper-asl</artifactId>
3613              </exclusion>
3614              <exclusion>
3615                <groupId>org.codehaus.jackson</groupId>
3616                <artifactId>jackson-core-asl</artifactId>
3617              </exclusion>
3618              <exclusion>
3619                <groupId>org.codehaus.jackson</groupId>
3620                <artifactId>jackson-jaxrs</artifactId>
3621              </exclusion>
3622              <exclusion>
3623                <groupId>org.codehaus.jackson</groupId>
3624                <artifactId>jackson-xc</artifactId>
3625              </exclusion>
3626              <exclusion>
3627                <groupId>javax.xml.bind</groupId>
3628                <artifactId>jaxb-api</artifactId>
3629              </exclusion>
3630              <exclusion>
3631                <groupId>javax.ws.rs</groupId>
3632                <artifactId>jsr311-api</artifactId>
3633              </exclusion>
3634              <exclusion>
3635                <groupId>javax.servlet</groupId>
3636                <artifactId>servlet-api</artifactId>
3637              </exclusion>
3638              <exclusion>
3639                <groupId>com.sun.jersey</groupId>
3640                <artifactId>jersey-core</artifactId>
3641              </exclusion>
3642              <exclusion>
3643                <groupId>com.google.code.findbugs</groupId>
3644                <artifactId>jsr305</artifactId>
3645              </exclusion>
3646              <exclusion>
3647                <groupId>io.netty</groupId>
3648                <artifactId>netty</artifactId>
3649              </exclusion>
3650              <exclusion>
3651                <groupId>org.slf4j</groupId>
3652                <artifactId>slf4j-log4j12</artifactId>
3653              </exclusion>
3654              <exclusion>
3655                <groupId>log4j</groupId>
3656                <artifactId>log4j</artifactId>
3657              </exclusion>
3658            </exclusions>
3659          </dependency>
3660          <dependency>
3661            <groupId>org.apache.hadoop</groupId>
3662            <artifactId>hadoop-client</artifactId>
3663            <version>${hadoop-three.version}</version>
3664          </dependency>
3665          <dependency>
3666            <groupId>org.apache.hadoop</groupId>
3667            <artifactId>hadoop-annotations</artifactId>
3668            <version>${hadoop-three.version}</version>
3669          </dependency>
3670          <!-- This was marked as test dep in earlier pom, but was scoped compile.
3671            Where do we actually need it? -->
3672          <dependency>
3673            <groupId>org.apache.hadoop</groupId>
3674            <artifactId>hadoop-minicluster</artifactId>
3675            <version>${hadoop-three.version}</version>
3676            <exclusions>
3677               <!--If we comment this in, a few tests in hbase-mapreduce
3678                    fail. They depend on jersey-core somehow. But excluding
3679                    jersey-core here messes up hbase-it because jersey-core
3680                    implements a 1.x jaxrs Response Interface when we depend
3681                    on the 2.x Interface... . Letting this jar come in
3682                    transitively here but will exclude it down in hbase-it.
3683                    See HBASE-22029.
3684              <exclusion>
3685                <groupId>com.sun.jersey</groupId>
3686                <artifactId>jersey-core</artifactId>
3687              </exclusion>
3688              -->
3689              <exclusion>
3690                <groupId>commons-httpclient</groupId>
3691                <artifactId>commons-httpclient</artifactId>
3692              </exclusion>
3693              <exclusion>
3694                <groupId>javax.servlet.jsp</groupId>
3695                <artifactId>jsp-api</artifactId>
3696              </exclusion>
3697              <exclusion>
3698                <groupId>javax.servlet</groupId>
3699                <artifactId>servlet-api</artifactId>
3700              </exclusion>
3701              <exclusion>
3702                <groupId>stax</groupId>
3703                <artifactId>stax-api</artifactId>
3704              </exclusion>
3705              <exclusion>
3706                <groupId>io.netty</groupId>
3707                <artifactId>netty</artifactId>
3708              </exclusion>
3709              <!-- MiniMRCluster needs the hadoop netty-all transitive include... a
3710                netty-all 4.0.52 version.... so we have to let it through.
3711              <exclusion>
3712                <groupId>io.netty</groupId>
3713                <artifactId>netty-all</artifactId>
3714              </exclusion>
3715              -->
3716              <exclusion>
3717                <groupId>com.google.code.findbugs</groupId>
3718                <artifactId>jsr305</artifactId>
3719              </exclusion>
3720              <exclusion>
3721                <groupId>org.slf4j</groupId>
3722                <artifactId>slf4j-log4j12</artifactId>
3723              </exclusion>
3724              <exclusion>
3725                <groupId>log4j</groupId>
3726                <artifactId>log4j</artifactId>
3727              </exclusion>
3728            </exclusions>
3729          </dependency>
3730          <dependency>
3731            <groupId>org.apache.hadoop</groupId>
3732            <artifactId>hadoop-minikdc</artifactId>
3733            <version>${hadoop-three.version}</version>
3734            <scope>test</scope>
3735            <exclusions>
3736              <exclusion>
3737                <groupId>org.slf4j</groupId>
3738                <artifactId>slf4j-log4j12</artifactId>
3739              </exclusion>
3740              <exclusion>
3741                <groupId>log4j</groupId>
3742                <artifactId>log4j</artifactId>
3743              </exclusion>
3744            </exclusions>
3745          </dependency>
3746          <dependency>
3747            <groupId>org.apache.hadoop</groupId>
3748            <artifactId>hadoop-distcp</artifactId>
3749            <version>${hadoop-three.version}</version>
3750          </dependency>
3752          <dependency>
3753            <groupId>org.apache.hadoop</groupId>
3754            <artifactId>hadoop-hdfs-client</artifactId>
3755            <version>${hadoop-three.version}</version>
3756          </dependency>
3757        </dependencies>
3758      </dependencyManagement>
3760     </profile>
3761     <!-- profiles for the tests
3762          See as well the properties of the project for the values
3763          when no profile is active.     -->
3764     <profile>
3765       <!-- Use it to launch all tests in the same JVM  -->
3766       <id>singleJVMTests</id>
3767       <activation>
3768         <activeByDefault>false</activeByDefault>
3769       </activation>
3770       <properties>
3771         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3772         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3773         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3774         <surefire.firstPartGroups/>
3775       </properties>
3776     </profile>
3777     <profile>
3778       <!-- Use it to launch small tests only -->
3779       <id>runSmallTests</id>
3780       <activation>
3781         <activeByDefault>false</activeByDefault>
3782       </activation>
3783       <properties>
3784         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3785         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3786         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3787         <surefire.secondPartGroups/>
3788       </properties>
3789     </profile>
3790     <profile>
3791       <!-- Use it to launch medium tests only -->
3792       <id>runMediumTests</id>
3793       <activation>
3794         <activeByDefault>false</activeByDefault>
3795       </activation>
3796       <properties>
3797         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3798         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3799         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.firstPartGroups>
3800         <surefire.secondPartGroups/>
3801       </properties>
3802     </profile>
3803     <profile>
3804       <!-- Use it to launch large tests only -->
3805       <id>runLargeTests</id>
3806       <activation>
3807         <activeByDefault>false</activeByDefault>
3808       </activation>
3809       <properties>
3810         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3811         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3812         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.LargeTests</surefire.firstPartGroups>
3813         <surefire.secondPartGroups/>
3814       </properties>
3815     </profile>
3816     <profile>
3817       <!-- Use it to launch small & medium tests -->
3818       <id>runDevTests</id>
3819       <activation>
3820         <activeByDefault>false</activeByDefault>
3821       </activation>
3822       <properties>
3823         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3824         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3825         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3826         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3827         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
3828       </properties>
3829     </profile>
3830     <profile>
3831       <!-- Use it to launch all tests -->
3832       <id>runAllTests</id>
3833       <activation>
3834         <activeByDefault>false</activeByDefault>
3835       </activation>
3836       <properties>
3837         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3838         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3839         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3840         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests,org.apache.hadoop.hbase.testclassification.LargeTests</surefire.secondPartGroups>
3841       </properties>
3842     </profile>
3843     <profile>
3844       <id>runMiscTests</id>
3845       <activation>
3846         <activeByDefault>false</activeByDefault>
3847       </activation>
3848       <properties>
3849         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3850         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3851         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests
3852         </surefire.firstPartGroups>
3853         <surefire.secondPartGroups></surefire.secondPartGroups>
3854       </properties>
3855     </profile>
3856     <profile>
3857       <id>runCoprocessorTests</id>
3858       <activation>
3859         <activeByDefault>false</activeByDefault>
3860       </activation>
3861       <properties>
3862         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3863         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3864         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3865         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3866         <surefire.firstPartGroups>
3867           org.apache.hadoop.hbase.testclassification.CoprocessorTests
3868         </surefire.firstPartGroups>
3869         <surefire.secondPartGroups></surefire.secondPartGroups>
3870       </properties>
3871     </profile>
3872     <profile>
3873       <id>runClientTests</id>
3874       <activation>
3875         <activeByDefault>false</activeByDefault>
3876       </activation>
3877       <properties>
3878         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3879         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3880         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3881         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3882         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests
3883         </surefire.firstPartGroups>
3884         <surefire.secondPartGroups></surefire.secondPartGroups>
3885       </properties>
3886     </profile>
3887     <profile>
3888       <id>runMasterTests</id>
3889       <activation>
3890         <activeByDefault>false</activeByDefault>
3891       </activation>
3892       <properties>
3893         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3894         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3895         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3896         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3897         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests
3898         </surefire.firstPartGroups>
3899         <surefire.secondPartGroups></surefire.secondPartGroups>
3900       </properties>
3901     </profile>
3902     <profile>
3903       <id>runMapredTests</id>
3904       <activation>
3905         <activeByDefault>false</activeByDefault>
3906       </activation>
3907       <properties>
3908         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3909         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3910         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3911         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3912         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests
3913         </surefire.firstPartGroups>
3914         <surefire.secondPartGroups></surefire.secondPartGroups>
3915       </properties>
3916     </profile>
3917     <profile>
3918       <id>runMapreduceTests</id>
3919       <activation>
3920         <activeByDefault>false</activeByDefault>
3921       </activation>
3922       <properties>
3923         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3924         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3925         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3926         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3927         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests
3928         </surefire.firstPartGroups>
3929         <surefire.secondPartGroups></surefire.secondPartGroups>
3930       </properties>
3931     </profile>
3932     <profile>
3933       <id>runRegionServerTests</id>
3934       <activation>
3935         <activeByDefault>false</activeByDefault>
3936       </activation>
3937       <properties>
3938         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3939         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3940         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3941         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3942         <surefire.firstPartGroups>
3943           org.apache.hadoop.hbase.testclassification.RegionServerTests
3944         </surefire.firstPartGroups>
3945         <surefire.secondPartGroups></surefire.secondPartGroups>
3946       </properties>
3947     </profile>
3948     <profile>
3949       <id>runVerySlowMapReduceTests</id>
3950       <activation>
3951         <activeByDefault>false</activeByDefault>
3952       </activation>
3953       <properties>
3954         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3955         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3956         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3957         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3958         <surefire.firstPartGroups>
3959           org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests
3960         </surefire.firstPartGroups>
3961         <surefire.secondPartGroups></surefire.secondPartGroups>
3962       </properties>
3963     </profile>
3965     <profile>
3966       <id>runVerySlowRegionServerTests</id>
3967       <activation>
3968         <activeByDefault>false</activeByDefault>
3969       </activation>
3970       <properties>
3971         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3972         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3973         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3974         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3975         <surefire.firstPartGroups>
3976           org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests
3977         </surefire.firstPartGroups>
3978         <surefire.secondPartGroups></surefire.secondPartGroups>
3979       </properties>
3980     </profile>
3982     <profile>
3983       <id>runFilterTests</id>
3984       <activation>
3985         <activeByDefault>false</activeByDefault>
3986       </activation>
3987       <properties>
3988         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3989         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3990         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3991         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3992         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests
3993         </surefire.firstPartGroups>
3994         <surefire.secondPartGroups></surefire.secondPartGroups>
3995       </properties>
3996     </profile>
3997     <profile>
3998       <id>runIOTests</id>
3999       <activation>
4000         <activeByDefault>false</activeByDefault>
4001       </activation>
4002       <properties>
4003         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4004         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4005         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4006         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4007         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests
4008         </surefire.firstPartGroups>
4009         <surefire.secondPartGroups></surefire.secondPartGroups>
4010       </properties>
4011     </profile>
4012     <profile>
4013       <id>runRestTests</id>
4014       <activation>
4015         <activeByDefault>false</activeByDefault>
4016       </activation>
4017       <properties>
4018         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4019         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4020         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4021         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4022         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests
4023         </surefire.firstPartGroups>
4024         <surefire.secondPartGroups></surefire.secondPartGroups>
4025       </properties>
4026     </profile>
4027     <profile>
4028       <id>runRPCTests</id>
4029       <activation>
4030         <activeByDefault>false</activeByDefault>
4031       </activation>
4032       <properties>
4033         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4034         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4035         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4036         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4037         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests
4038         </surefire.firstPartGroups>
4039         <surefire.secondPartGroups></surefire.secondPartGroups>
4040       </properties>
4041     </profile>
4042     <profile>
4043       <id>runReplicationTests</id>
4044       <activation>
4045         <activeByDefault>false</activeByDefault>
4046       </activation>
4047       <properties>
4048         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4049         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4050         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4051         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4052         <surefire.firstPartGroups>
4053           org.apache.hadoop.hbase.testclassification.ReplicationTests
4054         </surefire.firstPartGroups>
4055         <surefire.secondPartGroups></surefire.secondPartGroups>
4056       </properties>
4057     </profile>
4058     <profile>
4059       <id>runSecurityTests</id>
4060       <activation>
4061         <activeByDefault>false</activeByDefault>
4062       </activation>
4063       <properties>
4064         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4065         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4066         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4067         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4068         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests
4069         </surefire.firstPartGroups>
4070         <surefire.secondPartGroups></surefire.secondPartGroups>
4071       </properties>
4072     </profile>
4073     <profile>
4074       <id>runFlakeyTests</id>
4075       <activation>
4076         <activeByDefault>false</activeByDefault>
4077       </activation>
4078       <properties>
4079         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4080         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4081         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4082         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4083         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests
4084         </surefire.firstPartGroups>
4085         <surefire.secondPartGroups></surefire.secondPartGroups>
4086       </properties>
4087     </profile>
4088     <profile>
4089       <id>runZKTests</id>
4090       <activation>
4091         <activeByDefault>false</activeByDefault>
4092       </activation>
4093       <properties>
4094         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
4095         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
4096         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4097         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4098         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests
4099         </surefire.firstPartGroups>
4100         <surefire.secondPartGroups></surefire.secondPartGroups>
4101       </properties>
4102     </profile>
4104     <profile>
4105       <!-- Use it to launch tests locally-->
4106       <id>localTests</id>
4107       <activation>
4108         <property>
4109           <name>test</name>
4110         </property>
4111       </activation>
4112       <properties>
4113         <surefire.provider>surefire-junit4</surefire.provider>
4114         <surefire.skipFirstPart>false</surefire.skipFirstPart>
4115         <surefire.skipSecondPart>true</surefire.skipSecondPart>
4116         <surefire.firstPartGroups/>
4117       </properties>
4118     </profile>
4119     <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
4120          or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
4121          the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
4122          The report will be generated under target/site/clover/index.html when you run
4123          MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
4124     <profile>
4125       <id>clover</id>
4126       <activation>
4127         <activeByDefault>false</activeByDefault>
4128         <property>
4129           <name>clover</name>
4130         </property>
4131       </activation>
4132       <properties>
4133         <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
4134       </properties>
4135       <build>
4136         <plugins>
4137         <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
4138              our instrumented classes for the doclet will fail
4139           -->
4140           <plugin>
4141             <groupId>org.apache.maven.plugins</groupId>
4142             <artifactId>maven-javadoc-plugin</artifactId>
4143             <dependencies>
4144               <dependency>
4145                 <groupId>com.atlassian.maven.plugins</groupId>
4146                 <artifactId>maven-clover2-plugin</artifactId>
4147                 <version>${clover.version}</version>
4148               </dependency>
4149             </dependencies>
4150           </plugin>
4151           <plugin>
4152             <groupId>com.atlassian.maven.plugins</groupId>
4153             <artifactId>maven-clover2-plugin</artifactId>
4154             <version>${clover.version}</version>
4155             <configuration>
4156               <includesAllSourceRoots>true</includesAllSourceRoots>
4157               <includesTestSourceRoots>true</includesTestSourceRoots>
4158               <targetPercentage>50%</targetPercentage>
4159               <generateHtml>true</generateHtml>
4160               <generateXml>true</generateXml>
4161               <excludes>
4162                 <exclude>**/generated/**</exclude>
4163               </excludes>
4164             </configuration>
4165             <executions>
4166               <execution>
4167                 <id>clover-setup</id>
4168                 <phase>process-sources</phase>
4169                 <goals>
4170                   <goal>setup</goal>
4171                 </goals>
4172               </execution>
4173               <execution>
4174                 <id>clover</id>
4175                 <phase>site</phase>
4176                 <goals>
4177                   <goal>clover</goal>
4178                 </goals>
4179               </execution>
4180             </executions>
4181           </plugin>
4182         </plugins>
4183       </build>
4184     </profile>
4185     <profile>
4186       <!-- Used by the website generation script on jenkins to
4187            do a local install of the jars we need to run a normal
4188            site build w/o forking.
4189         -->
4190       <id>site-install-step</id>
4191       <properties>
4192         <skipTests>true</skipTests>
4193         <maven.javadoc.skip>true</maven.javadoc.skip>
4194         <enforcer.skip>true</enforcer.skip>
4195         <checkstyle.skip>true</checkstyle.skip>
4196         <spotbugs.skip>true</spotbugs.skip>
4197         <warbucks.skip>true</warbucks.skip>
4198       </properties>
4199     </profile>
4200     <profile>
4201       <!-- Used by the website generation script on jenkins to
4202            mitigate the impact of unneeded build forks while building
4203            our javadocs.
4204         -->
4205       <id>site-build-step</id>
4206       <properties>
4207         <skipTests>true</skipTests>
4208         <enforcer.skip>true</enforcer.skip>
4209         <maven.main.skip>true</maven.main.skip>
4210         <maven.test.skip>true</maven.test.skip>
4211         <warbucks.skip>true</warbucks.skip>
4212         <protoc.skip>true</protoc.skip>
4213         <remoteresources.skip>true</remoteresources.skip>
4214       </properties>
4215     </profile>
4216     <profile>
4217       <id>eclipse-specific</id>
4218       <activation>
4219         <property>
4220           <name>m2e.version</name>
4221         </property>
4222       </activation>
4223       <build>
4224         <pluginManagement>
4225           <plugins>
4226             <!-- General config for eclipse classpath/settings -->
4227             <plugin>
4228               <groupId>org.apache.maven.plugins</groupId>
4229               <artifactId>maven-eclipse-plugin</artifactId>
4230               <version>${maven.eclipse.version}</version>
4231             </plugin>
4232             <!--This plugin's configuration is used to store Eclipse m2e settings
4233                 only. It has no influence on the Maven build itself. m2e does not
4234                 provide any safeguards against rogue maven plugins that leak
4235                 classloaders, modify random files inside workspace or throw nasty
4236                 exceptions to fail the build.
4237                 Top level doesn't do any specific configuration currently - left
4238                 to modules to decide what they want to bind, sans those plugins
4239                 defined in this pom. -->
4240             <plugin>
4241               <groupId>org.eclipse.m2e</groupId>
4242               <artifactId>lifecycle-mapping</artifactId>
4243               <version>${lifecycle.mapping.version}</version>
4244               <configuration>
4245                 <lifecycleMappingMetadata>
4246                   <pluginExecutions>
4247                     <pluginExecution>
4248                       <pluginExecutionFilter>
4249                         <groupId>org.jacoco</groupId>
4250                         <artifactId>jacoco-maven-plugin</artifactId>
4251                         <versionRange>[0.6.2.201302030002,)</versionRange>
4252                         <goals>
4253                           <goal>prepare-agent</goal>
4254                         </goals>
4255                       </pluginExecutionFilter>
4256                       <action>
4257                         <ignore></ignore>
4258                       </action>
4259                     </pluginExecution>
4260                     <pluginExecution>
4261                       <pluginExecutionFilter>
4262                         <groupId>org.apache.maven.plugins</groupId>
4263                         <artifactId>maven-enforcer-plugin</artifactId>
4264                         <versionRange>${enforcer.version}</versionRange>
4265                         <goals>
4266                           <goal>enforce</goal>
4267                         </goals>
4268                       </pluginExecutionFilter>
4269                       <action>
4270                         <ignore />
4271                       </action>
4272                     </pluginExecution>
4273                     <pluginExecution>
4274                       <pluginExecutionFilter>
4275                         <groupId>org.apache.maven.plugins</groupId>
4276                         <artifactId>maven-remote-resources-plugin</artifactId>
4277                         <versionRange>[1.5,)</versionRange>
4278                         <goals>
4279                           <goal>process</goal>
4280                           <goal>bundle</goal>
4281                         </goals>
4282                       </pluginExecutionFilter>
4283                       <action>
4284                         <ignore />
4285                       </action>
4286                     </pluginExecution>
4287                       <pluginExecution>
4288                         <pluginExecutionFilter>
4289                           <groupId>org.codehaus.mojo</groupId>
4290                           <artifactId>buildnumber-maven-plugin</artifactId>
4291                           <versionRange>[1.3,)</versionRange>
4292                           <goals>
4293                             <goal>create-timestamp</goal>
4294                           </goals>
4295                         </pluginExecutionFilter>
4296                         <action>
4297                           <execute>
4298                             <runOnConfiguration>true</runOnConfiguration>
4299                             <runOnIncremental>true</runOnIncremental>
4300                           </execute>
4301                         </action>
4302                       </pluginExecution>
4303                   </pluginExecutions>
4304                 </lifecycleMappingMetadata>
4305               </configuration>
4306             </plugin>
4307           </plugins>
4308         </pluginManagement>
4309       </build>
4310     </profile>
4311     <profile>
4312       <id>aarch64</id>
4313       <properties>
4314         <external.protobuf.groupid>org.openlabtesting.protobuf</external.protobuf.groupid>
4315         <external.protoc.version>2.5.0.2</external.protoc.version>
4316       </properties>
4317       <activation>
4318         <os>
4319           <family>linux</family>
4320           <arch>aarch64</arch>
4321         </os>
4322       </activation>
4323     </profile>
4324   </profiles>
4325   <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
4326   <reporting>
4327     <plugins>
4328       <plugin>
4329         <artifactId>maven-project-info-reports-plugin</artifactId>
4330         <version>${maven.project.info.report.version}</version>
4331         <reportSets>
4332           <reportSet>
4333             <reports>
4334               <report>dependencies</report>
4335               <report>dependency-convergence</report>
4336               <report>dependency-info</report>
4337               <report>dependency-management</report>
4338               <report>index</report>
4339               <report>issue-management</report>
4340               <report>licenses</report>
4341               <report>mailing-lists</report>
4342               <report>plugin-management</report>
4343               <report>plugins</report>
4344               <report>team</report>
4345               <report>scm</report>
4346               <report>summary</report>
4347             </reports>
4348           </reportSet>
4349         </reportSets>
4350         <!-- see src/site/site.xml for selected reports -->
4351         <configuration>
4352           <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
4353         </configuration>
4354       </plugin>
4356       <plugin>
4357         <groupId>org.apache.maven.plugins</groupId>
4358         <artifactId>maven-javadoc-plugin</artifactId>
4359         <configuration>
4360           <tags>
4361             <tag>
4362               <name>apiNote</name>
4363               <placement>a</placement>
4364               <head>API Note:</head>
4365             </tag>
4366           </tags>
4367         </configuration>
4368         <reportSets>
4369           <!-- Dev API -->
4370           <reportSet>
4371             <id>devapi</id>
4372             <reports>
4373               <report>aggregate-no-fork</report>
4374             </reports>
4375             <configuration>
4376               <destDir>devapidocs</destDir>
4377               <name>Developer API</name>
4378               <description>The full HBase API, including private and unstable APIs</description>
4379               <sourceFileExcludes>
4380                 <exclude>**/generated/*</exclude>
4381                 <exclude>**/protobuf/*</exclude>
4382               </sourceFileExcludes>
4383               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
4384               <show>private</show> <!-- (shows all classes and members) -->
4385               <quiet>true</quiet>
4386               <linksource>true</linksource>
4387               <sourcetab>2</sourcetab>
4388               <validateLinks>true</validateLinks>
4389               <fixClassComment>true</fixClassComment>
4390               <fixFieldComment>true</fixFieldComment>
4391               <fixMethodComment>true</fixMethodComment>
4392               <fixTags>all</fixTags>
4393               <notimestamp>true</notimestamp>
4394               <locale>en_US</locale>
4395               <!-- Pass some options straight to the javadoc executable since it is easier -->
4396               <additionalJOption>-J-Xmx2G</additionalJOption>
4397               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4398               <additionalDependencies>
4399                 <additionalDependency>
4400                   <groupId>org.mockito</groupId>
4401                   <artifactId>mockito-core</artifactId>
4402                   <version>${mockito-core.version}</version>
4403                 </additionalDependency>
4404                 <additionalDependency>
4405                   <groupId>org.hamcrest</groupId>
4406                   <artifactId>hamcrest-core</artifactId>
4407                   <version>${hamcrest.version}</version>
4408                 </additionalDependency>
4409                 <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
4410                 <additionalDependency>
4411                   <groupId>com.google.code.findbugs</groupId>
4412                   <artifactId>jsr305</artifactId>
4413                   <version>3.0.2</version>
4414                 </additionalDependency>
4415               </additionalDependencies>
4416               <inherited>false</inherited>
4417             </configuration>
4418           </reportSet>
4419           <reportSet>
4420             <id>testdevapi</id>
4421             <reports>
4422               <report>test-aggregate-no-fork</report>
4423             </reports>
4424             <configuration>
4425               <destDir>testdevapidocs</destDir>
4426               <name>Developer API</name>
4427               <description>The full HBase API test code, including private and unstable APIs</description>
4428               <sourceFileExcludes>
4429                 <exclude>**/generated/*</exclude>
4430                 <exclude>**/protobuf/*</exclude>
4431               </sourceFileExcludes>
4432               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
4433               <show>private</show> <!-- (shows all classes and members) -->
4434               <quiet>true</quiet>
4435               <linksource>true</linksource>
4436               <sourcetab>2</sourcetab>
4437               <validateLinks>true</validateLinks>
4438               <fixClassComment>true</fixClassComment>
4439               <fixFieldComment>true</fixFieldComment>
4440               <fixMethodComment>true</fixMethodComment>
4441               <fixTags>all</fixTags>
4442               <notimestamp>true</notimestamp>
4443               <locale>en_US</locale>
4444               <!-- Pass some options straight to the javadoc executable since it is easier -->
4445               <additionalJOption>-J-Xmx2G</additionalJOption>
4446               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4447               <additionalDependencies>
4448                 <additionalDependency>
4449                   <groupId>org.mockito</groupId>
4450                   <artifactId>mockito-core</artifactId>
4451                   <version>${mockito-core.version}</version>
4452                 </additionalDependency>
4453                 <additionalDependency>
4454                   <groupId>org.hamcrest</groupId>
4455                   <artifactId>hamcrest-core</artifactId>
4456                   <version>${hamcrest.version}</version>
4457                 </additionalDependency>
4458                 <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
4459                 <additionalDependency>
4460                   <groupId>com.google.code.findbugs</groupId>
4461                   <artifactId>jsr305</artifactId>
4462                   <version>3.0.2</version>
4463                 </additionalDependency>
4464               </additionalDependencies>
4465               <inherited>false</inherited>
4466             </configuration>
4467           </reportSet>
4469           <!-- User API -->
4470           <reportSet>
4471             <id>userapi</id>
4472             <reports>
4473               <report>aggregate-no-fork</report>
4474             </reports>
4475             <configuration>
4476               <doclet>
4477                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
4478               </doclet>
4479               <docletArtifact>
4480                 <groupId>org.apache.yetus</groupId>
4481                 <artifactId>audience-annotations</artifactId>
4482                 <version>${audience-annotations.version}</version>
4483               </docletArtifact>
4484               <useStandardDocletOptions>true</useStandardDocletOptions>
4485               <destDir>apidocs</destDir>
4486               <name>User API</name>
4487               <description>The HBase Application Programmer's API</description>
4488               <excludePackageNames>
4489                 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*
4490               </excludePackageNames>
4491               <!-- switch on dependency-driven aggregation -->
4492               <includeDependencySources>false</includeDependencySources>
4493               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
4494               <show>protected</show> <!-- (shows only public and protected classes and members) -->
4495               <quiet>true</quiet>
4496               <linksource>true</linksource>
4497               <sourcetab>2</sourcetab>
4498               <validateLinks>true</validateLinks>
4499               <fixClassComment>true</fixClassComment>
4500               <fixFieldComment>true</fixFieldComment>
4501               <fixMethodComment>true</fixMethodComment>
4502               <fixTags>all</fixTags>
4503               <notimestamp>true</notimestamp>
4504               <locale>en_US</locale>
4505               <!-- Pass some options straight to the javadoc executable since it is easier -->
4506               <additionalJOption>-J-Xmx2G</additionalJOption>
4507               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4508               <additionalDependencies>
4509                 <additionalDependency>
4510                   <groupId>org.mockito</groupId>
4511                   <artifactId>mockito-core</artifactId>
4512                   <version>${mockito-core.version}</version>
4513                 </additionalDependency>
4514                 <additionalDependency>
4515                   <groupId>org.hamcrest</groupId>
4516                   <artifactId>hamcrest-core</artifactId>
4517                   <version>${hamcrest.version}</version>
4518                 </additionalDependency>
4519                 <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
4520                 <additionalDependency>
4521                   <groupId>com.google.code.findbugs</groupId>
4522                   <artifactId>jsr305</artifactId>
4523                   <version>3.0.2</version>
4524                 </additionalDependency>
4525               </additionalDependencies>
4526               <inherited>false</inherited>
4527             </configuration>
4528           </reportSet>
4529           <!-- User Test API -->
4530           <reportSet>
4531             <id>testuserapi</id>
4532             <reports>
4533               <report>test-aggregate-no-fork</report>
4534             </reports>
4535             <configuration>
4536               <doclet>
4537                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
4538               </doclet>
4539               <docletArtifact>
4540                 <groupId>org.apache.yetus</groupId>
4541                 <artifactId>audience-annotations</artifactId>
4542                 <version>${audience-annotations.version}</version>
4543               </docletArtifact>
4544               <useStandardDocletOptions>true</useStandardDocletOptions>
4545               <destDir>testapidocs</destDir>
4546               <name>User API</name>
4547               <description>The HBase Application Programmer's API</description>
4548               <excludePackageNames>
4549                 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*
4550               </excludePackageNames>
4551               <!-- switch on dependency-driven aggregation -->
4552               <includeDependencySources>false</includeDependencySources>
4553               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
4554               <show>protected</show> <!-- (shows only public and protected classes and members) -->
4555               <quiet>true</quiet>
4556               <linksource>true</linksource>
4557               <sourcetab>2</sourcetab>
4558               <validateLinks>true</validateLinks>
4559               <fixClassComment>true</fixClassComment>
4560               <fixFieldComment>true</fixFieldComment>
4561               <fixMethodComment>true</fixMethodComment>
4562               <fixTags>all</fixTags>
4563               <notimestamp>true</notimestamp>
4564               <locale>en_US</locale>
4565               <!-- Pass some options straight to the javadoc executable since it is easier -->
4566               <additionalJOption>-J-Xmx2G</additionalJOption>
4567               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4568               <additionalDependencies>
4569                 <additionalDependency>
4570                   <groupId>org.mockito</groupId>
4571                   <artifactId>mockito-core</artifactId>
4572                   <version>${mockito-core.version}</version>
4573                 </additionalDependency>
4574                 <additionalDependency>
4575                   <groupId>org.hamcrest</groupId>
4576                   <artifactId>hamcrest-core</artifactId>
4577                   <version>${hamcrest.version}</version>
4578                 </additionalDependency>
4579                 <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
4580                 <additionalDependency>
4581                   <groupId>com.google.code.findbugs</groupId>
4582                   <artifactId>jsr305</artifactId>
4583                   <version>3.0.2</version>
4584                 </additionalDependency>
4585               </additionalDependencies>
4586               <inherited>false</inherited>
4587             </configuration>
4588           </reportSet>
4589         </reportSets>
4590       </plugin>
4592       <plugin>
4593         <groupId>org.apache.maven.plugins</groupId>
4594         <artifactId>maven-checkstyle-plugin</artifactId>
4595         <version>${maven.checkstyle.version}</version>
4596         <configuration>
4597           <excludes>target/**</excludes>
4598         </configuration>
4599       </plugin>
4601     </plugins>
4602   </reporting>
4603   <distributionManagement>
4604     <site>
4605       <id>hbase.apache.org</id>
4606       <name>HBase Website at hbase.apache.org</name>
4607       <!-- On why this is the tmp dir and not hbase.apache.org, see
4608         https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
4609        -->
4610       <url>file:///tmp</url>
4611     </site>
4612   </distributionManagement>
4613 </project>