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