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