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