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