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