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