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