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