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