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