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