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