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