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