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