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