HBASE-24163 MOB compactor implementations should use format specifiers when calling...
[hbase.git] / pom.xml
blob3bee1bdb314077a14e4309e34cbdb3d3e38f5418
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 mostly determined
1592         by what apache jenkins nightly builds will tolerate (See HBASE-24072). Up this
1593       value is you want to burn through tests faster (could make for more failures
1594       if more contention around resources). There is a matching MAVEN_ARG
1595       in our yetus personality where we set the maven -T command to 0.25C too.
1596       For example, to run at a rate that is more furious than our 0.25C, do
1597       something like this:
1598          f="0.5C" ;  mvn -T$f -Dsurefire.firstPartForkCount=$f -Dsurefire.secondPartForkCount=$f test -PrunAllTests
1599     -->
1600     <surefire.firstPartForkCount>0.25C</surefire.firstPartForkCount>
1601     <surefire.secondPartForkCount>0.25C</surefire.secondPartForkCount>
1602     <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
1603     <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
1604     <surefire.testFailureIgnore>false</surefire.testFailureIgnore>
1605     <test.output.tofile>true</test.output.tofile>
1606     <surefire.timeout>900</surefire.timeout>
1607     <test.exclude.pattern></test.exclude.pattern>
1608     <!--
1609       default Xmx value is 2800m. Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value.
1610       this value is managed separately for jdk11.
1611     -->
1612     <surefire.Xmx>2800m</surefire.Xmx>
1613     <surefire.cygwinXmx>2800m</surefire.cygwinXmx>
1614     <!--Mark our test runs with '-Dhbase.build.id' so we can identify a surefire test as ours in a process listing
1616       And for netty eventloops that have no explicit configuration, netty sets
1617       nioeventloopgroup thread count to CPU count * 2. Thats too much for mini
1618       clusters/tests.
1619      -->
1620     <hbase-surefire.argLine>-enableassertions -Dhbase.build.id=${build.id} -Xmx${surefire.Xmx}
1621       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1622       -Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
1623       -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
1624       -Dio.netty.eventLoopThreads=3
1625     </hbase-surefire.argLine>
1626     <hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx}
1627       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1628       "-Djava.library.path=${hadoop.library.path};${java.library.path}"
1629       -Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
1630     </hbase-surefire.cygwin-argLine>
1631     <!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
1632     <argLine>${hbase-surefire.argLine}</argLine>
1633     <jacoco.version>0.7.5.201505241946</jacoco.version>
1634     <extra.enforcer.version>1.0-beta-9</extra.enforcer.version>
1635     <enforcer.version>3.0.0-M2</enforcer.version>
1636     <restrict-imports.enforcer.version>0.14.0</restrict-imports.enforcer.version>
1637     <!-- Location of test resources -->
1638     <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
1639     <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
1640     <!--This build.id we'll add as flag so can identify which forked processes belong to our build.
1641         Default is the build start timestamp. Up on jenkins pass in the jenkins build id by setting
1642         this parameter by invoking mvn with -Dbuild.id=$BUILD_ID-->
1643     <build.id>${maven.build.timestamp}</build.id>
1644     <shell-executable>bash</shell-executable>
1645     <!-- TODO HBASE-15041 clean up our javadocs so jdk8 linter can be used.
1646          property as of javadoc-plugin 3.0.0 -->
1647     <doclint>none</doclint>
1648     <external.protobuf.groupid>com.google.protobuf</external.protobuf.groupid>
1649   </properties>
1650   <!-- Sorted by groups of dependencies then groupId and artifactId -->
1651   <dependencyManagement>
1652     <dependencies>
1653       <!--
1654       Note: There are a few exclusions to prevent duplicate code in different jars to be included:
1655           org.mortbay.jetty:servlet-api, javax.servlet:servlet-api: These are excluded because they are
1656           the same implementations. I chose org.mortbay.jetty:servlet-api-2.5 instead, which is a third
1657           implementation of the same, because Hadoop also uses this version
1658           javax.servlet:jsp-api in favour of javax.servlet.jsp:javax.servlet.jsp-api:2.3.1 since it
1659           is what glassfish's jspC jar uses and that's where we get our own need for a jsp-api.
1660         -->
1661       <!-- Intra-module dependencies -->
1662       <dependency>
1663         <groupId>org.apache.hbase</groupId>
1664         <artifactId>hbase-annotations</artifactId>
1665         <version>${project.version}</version>
1666         <type>test-jar</type>
1667         <!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
1668       </dependency>
1669       <dependency>
1670         <artifactId>hbase-backup</artifactId>
1671         <groupId>org.apache.hbase</groupId>
1672         <version>${project.version}</version>
1673       </dependency>
1674       <dependency>
1675         <groupId>org.apache.hbase</groupId>
1676         <artifactId>hbase-common</artifactId>
1677         <version>${project.version}</version>
1678       </dependency>
1679       <dependency>
1680         <groupId>org.apache.hbase</groupId>
1681         <artifactId>hbase-common</artifactId>
1682         <version>${project.version}</version>
1683         <type>test-jar</type>
1684         <scope>test</scope>
1685       </dependency>
1686       <dependency>
1687         <groupId>org.apache.hbase</groupId>
1688         <artifactId>hbase-protocol-shaded</artifactId>
1689         <version>${project.version}</version>
1690       </dependency>
1691       <dependency>
1692         <groupId>org.apache.hbase</groupId>
1693         <artifactId>hbase-procedure</artifactId>
1694         <version>${project.version}</version>
1695       </dependency>
1696       <dependency>
1697         <groupId>org.apache.hbase</groupId>
1698         <artifactId>hbase-procedure</artifactId>
1699         <version>${project.version}</version>
1700         <type>test-jar</type>
1701       </dependency>
1702       <dependency>
1703         <groupId>org.apache.hbase</groupId>
1704         <artifactId>hbase-hadoop-compat</artifactId>
1705         <version>${project.version}</version>
1706       </dependency>
1707       <dependency>
1708         <groupId>org.apache.hbase</groupId>
1709         <artifactId>hbase-hadoop-compat</artifactId>
1710         <version>${project.version}</version>
1711         <type>test-jar</type>
1712         <scope>test</scope>
1713       </dependency>
1714       <dependency>
1715         <groupId>org.apache.hbase</groupId>
1716         <artifactId>${compat.module}</artifactId>
1717         <version>${project.version}</version>
1718       </dependency>
1719       <dependency>
1720         <groupId>org.apache.hbase</groupId>
1721         <artifactId>${compat.module}</artifactId>
1722         <version>${project.version}</version>
1723         <type>test-jar</type>
1724         <scope>test</scope>
1725       </dependency>
1726       <dependency>
1727         <artifactId>hbase-replication</artifactId>
1728         <groupId>org.apache.hbase</groupId>
1729         <version>${project.version}</version>
1730       </dependency>
1731       <dependency>
1732         <artifactId>hbase-http</artifactId>
1733         <groupId>org.apache.hbase</groupId>
1734         <version>${project.version}</version>
1735       </dependency>
1736       <dependency>
1737         <artifactId>hbase-http</artifactId>
1738         <groupId>org.apache.hbase</groupId>
1739         <version>${project.version}</version>
1740         <type>test-jar</type>
1741         <scope>test</scope>
1742       </dependency>
1743       <dependency>
1744         <artifactId>hbase-server</artifactId>
1745         <groupId>org.apache.hbase</groupId>
1746         <version>${project.version}</version>
1747       </dependency>
1748       <dependency>
1749         <artifactId>hbase-server</artifactId>
1750         <groupId>org.apache.hbase</groupId>
1751         <version>${project.version}</version>
1752         <type>test-jar</type>
1753         <scope>test</scope>
1754       </dependency>
1755       <dependency>
1756         <artifactId>hbase-mapreduce</artifactId>
1757         <groupId>org.apache.hbase</groupId>
1758         <version>${project.version}</version>
1759       </dependency>
1760       <dependency>
1761         <artifactId>hbase-mapreduce</artifactId>
1762         <groupId>org.apache.hbase</groupId>
1763         <version>${project.version}</version>
1764         <type>test-jar</type>
1765         <scope>test</scope>
1766       </dependency>
1767       <dependency>
1768         <artifactId>hbase-endpoint</artifactId>
1769         <groupId>org.apache.hbase</groupId>
1770         <version>${project.version}</version>
1771       </dependency>
1772       <dependency>
1773         <artifactId>hbase-shell</artifactId>
1774         <groupId>org.apache.hbase</groupId>
1775         <version>${project.version}</version>
1776       </dependency>
1777       <dependency>
1778         <artifactId>hbase-shell</artifactId>
1779         <groupId>org.apache.hbase</groupId>
1780         <version>${project.version}</version>
1781         <type>test-jar</type>
1782         <scope>test</scope>
1783       </dependency>
1784       <dependency>
1785         <artifactId>hbase-thrift</artifactId>
1786         <groupId>org.apache.hbase</groupId>
1787         <version>${project.version}</version>
1788       </dependency>
1789       <dependency>
1790         <artifactId>hbase-thrift</artifactId>
1791         <groupId>org.apache.hbase</groupId>
1792         <version>${project.version}</version>
1793         <type>test-jar</type>
1794         <scope>test</scope>
1795       </dependency>
1796       <dependency>
1797         <groupId>org.apache.hbase</groupId>
1798         <artifactId>hbase-testing-util</artifactId>
1799         <version>${project.version}</version>
1800         <scope>test</scope>
1801       </dependency>
1802       <dependency>
1803         <artifactId>hbase-examples</artifactId>
1804         <groupId>org.apache.hbase</groupId>
1805         <version>${project.version}</version>
1806       </dependency>
1807       <dependency>
1808         <groupId>org.apache.hbase</groupId>
1809         <artifactId>hbase-external-blockcache</artifactId>
1810         <version>${project.version}</version>
1811       </dependency>
1812       <dependency>
1813         <artifactId>hbase-it</artifactId>
1814         <groupId>org.apache.hbase</groupId>
1815         <version>${project.version}</version>
1816         <type>test-jar</type>
1817         <scope>test</scope>
1818       </dependency>
1819       <dependency>
1820         <artifactId>hbase-client</artifactId>
1821         <groupId>org.apache.hbase</groupId>
1822         <version>${project.version}</version>
1823       </dependency>
1824       <dependency>
1825         <artifactId>hbase-metrics-api</artifactId>
1826         <groupId>org.apache.hbase</groupId>
1827         <version>${project.version}</version>
1828       </dependency>
1829       <dependency>
1830         <artifactId>hbase-metrics-api</artifactId>
1831         <groupId>org.apache.hbase</groupId>
1832         <version>${project.version}</version>
1833         <type>test-jar</type>
1834         <scope>test</scope>
1835       </dependency>
1836       <dependency>
1837         <artifactId>hbase-metrics</artifactId>
1838         <groupId>org.apache.hbase</groupId>
1839         <version>${project.version}</version>
1840       </dependency>
1841       <dependency>
1842         <artifactId>hbase-metrics</artifactId>
1843         <groupId>org.apache.hbase</groupId>
1844         <version>${project.version}</version>
1845         <type>test-jar</type>
1846         <scope>test</scope>
1847       </dependency>
1848       <dependency>
1849         <artifactId>hbase-rest</artifactId>
1850         <groupId>org.apache.hbase</groupId>
1851         <version>${project.version}</version>
1852       </dependency>
1853       <dependency>
1854         <artifactId>hbase-resource-bundle</artifactId>
1855         <groupId>org.apache.hbase</groupId>
1856         <version>${project.version}</version>
1857       </dependency>
1858       <dependency>
1859         <artifactId>hbase-zookeeper</artifactId>
1860         <groupId>org.apache.hbase</groupId>
1861         <version>${project.version}</version>
1862         <exclusions>
1863           <exclusion>
1864             <groupId>com.google.code.findbugs</groupId>
1865             <artifactId>jsr305</artifactId>
1866           </exclusion>
1867           <exclusion>
1868             <groupId>com.github.spotbugs</groupId>
1869             <artifactId>spotbugs-annotations</artifactId>
1870           </exclusion>
1871         </exclusions>
1872       </dependency>
1873       <dependency>
1874         <artifactId>hbase-zookeeper</artifactId>
1875         <groupId>org.apache.hbase</groupId>
1876         <version>${project.version}</version>
1877         <type>test-jar</type>
1878         <scope>test</scope>
1879       </dependency>
1880       <dependency>
1881         <artifactId>hbase-hbtop</artifactId>
1882         <groupId>org.apache.hbase</groupId>
1883         <version>${project.version}</version>
1884       </dependency>
1885       <dependency>
1886         <groupId>org.apache.hbase</groupId>
1887         <artifactId>hbase-shaded-client</artifactId>
1888         <version>${project.version}</version>
1889       </dependency>
1890       <dependency>
1891         <groupId>org.apache.hbase</groupId>
1892         <artifactId>hbase-shaded-client-byo-hadoop</artifactId>
1893         <version>${project.version}</version>
1894       </dependency>
1895       <dependency>
1896         <groupId>org.apache.hbase</groupId>
1897         <artifactId>hbase-shaded-mapreduce</artifactId>
1898         <version>${project.version}</version>
1899       </dependency>
1900       <!-- General dependencies -->
1901       <dependency>
1902         <groupId>com.github.stephenc.findbugs</groupId>
1903         <artifactId>findbugs-annotations</artifactId>
1904         <version>${findbugs-annotations.version}</version>
1905       </dependency>
1906       <!-- General dependencies -->
1907       <dependency>
1908         <groupId>org.codehaus.jettison</groupId>
1909         <artifactId>jettison</artifactId>
1910         <version>${jettison.version}</version>
1911       </dependency>
1912       <dependency>
1913         <groupId>org.slf4j</groupId>
1914         <artifactId>slf4j-log4j12</artifactId>
1915         <version>${slf4j.version}</version>
1916       </dependency>
1917       <dependency>
1918         <groupId>log4j</groupId>
1919         <artifactId>log4j</artifactId>
1920         <version>${log4j.version}</version>
1921       </dependency>
1922       <!-- Avro dependencies we mostly get transitively, manual version coallescing -->
1923       <dependency>
1924         <groupId>org.apache.avro</groupId>
1925         <artifactId>avro</artifactId>
1926         <version>${avro.version}</version>
1927       </dependency>
1928       <!--This is not used by hbase directly.  Used by thrift,
1929           dropwizard and zk.-->
1930       <dependency>
1931         <groupId>org.slf4j</groupId>
1932         <artifactId>slf4j-api</artifactId>
1933         <version>${slf4j.version}</version>
1934       </dependency>
1935       <dependency>
1936         <groupId>com.github.ben-manes.caffeine</groupId>
1937         <artifactId>caffeine</artifactId>
1938         <version>${caffeine.version}</version>
1939       </dependency>
1940       <dependency>
1941         <groupId>io.dropwizard.metrics</groupId>
1942         <artifactId>metrics-core</artifactId>
1943         <version>${metrics-core.version}</version>
1944       </dependency>
1945       <dependency>
1946         <groupId>org.apache.httpcomponents</groupId>
1947         <artifactId>httpclient</artifactId>
1948         <version>${httpclient.version}</version>
1949       </dependency>
1950       <dependency>
1951         <groupId>org.apache.httpcomponents</groupId>
1952         <artifactId>httpcore</artifactId>
1953         <version>${httpcore.version}</version>
1954       </dependency>
1955       <dependency>
1956         <groupId>commons-codec</groupId>
1957         <artifactId>commons-codec</artifactId>
1958         <version>${commons-codec.version}</version>
1959       </dependency>
1960       <dependency>
1961         <groupId>commons-validator</groupId>
1962         <artifactId>commons-validator</artifactId>
1963         <version>${commons-validator.version}</version>
1964       </dependency>
1965       <dependency>
1966         <groupId>commons-io</groupId>
1967         <artifactId>commons-io</artifactId>
1968         <version>${commons-io.version}</version>
1969       </dependency>
1970       <dependency>
1971         <groupId>org.apache.commons</groupId>
1972         <artifactId>commons-lang3</artifactId>
1973         <version>${commons-lang3.version}</version>
1974       </dependency>
1975       <dependency>
1976         <groupId>org.apache.commons</groupId>
1977         <artifactId>commons-math3</artifactId>
1978         <version>${commons-math.version}</version>
1979       </dependency>
1980       <dependency>
1981         <!-- commons-logging is only used by hbase-http's HttpRequestLog and hbase-server's
1982              HBaseTestingUtil.
1983           -->
1984         <groupId>commons-logging</groupId>
1985         <artifactId>commons-logging</artifactId>
1986         <version>1.2</version>
1987       </dependency>
1988       <dependency>
1989         <groupId>org.apache.zookeeper</groupId>
1990         <artifactId>zookeeper</artifactId>
1991         <version>${zookeeper.version}</version>
1992         <exclusions>
1993           <exclusion>
1994             <groupId>com.google.code.findbugs</groupId>
1995             <artifactId>jsr305</artifactId>
1996           </exclusion>
1997           <exclusion>
1998             <groupId>com.github.spotbugs</groupId>
1999             <artifactId>spotbugs-annotations</artifactId>
2000           </exclusion>
2001           <exclusion>
2002             <groupId>jline</groupId>
2003             <artifactId>jline</artifactId>
2004           </exclusion>
2005           <exclusion>
2006             <groupId>com.sun.jmx</groupId>
2007             <artifactId>jmxri</artifactId>
2008           </exclusion>
2009           <exclusion>
2010             <groupId>com.sun.jdmk</groupId>
2011             <artifactId>jmxtools</artifactId>
2012           </exclusion>
2013           <exclusion>
2014             <groupId>javax.jms</groupId>
2015             <artifactId>jms</artifactId>
2016           </exclusion>
2017           <exclusion>
2018             <groupId>io.netty</groupId>
2019             <artifactId>netty</artifactId>
2020           </exclusion>
2021         </exclusions>
2022       </dependency>
2023       <dependency>
2024         <groupId>jline</groupId>
2025         <artifactId>jline</artifactId>
2026         <version>${jline.version}</version>
2027       </dependency>
2028       <dependency>
2029         <groupId>org.apache.thrift</groupId>
2030         <artifactId>libthrift</artifactId>
2031         <version>${thrift.version}</version>
2032         <exclusions>
2033           <exclusion>
2034             <groupId>org.slf4j</groupId>
2035             <artifactId>slf4j-simple</artifactId>
2036           </exclusion>
2037         </exclusions>
2038       </dependency>
2039       <dependency>
2040         <groupId>org.jruby</groupId>
2041         <artifactId>jruby-complete</artifactId>
2042         <version>${jruby.version}</version>
2043       </dependency>
2044       <dependency>
2045         <groupId>org.jruby.jcodings</groupId>
2046         <artifactId>jcodings</artifactId>
2047         <version>${jcodings.version}</version>
2048       </dependency>
2049       <dependency>
2050         <groupId>org.jruby.joni</groupId>
2051         <artifactId>joni</artifactId>
2052         <version>${joni.version}</version>
2053       </dependency>
2054       <dependency>
2055         <groupId>com.fasterxml.jackson.jaxrs</groupId>
2056         <artifactId>jackson-jaxrs-json-provider</artifactId>
2057         <version>${jackson.version}</version>
2058       </dependency>
2059       <dependency>
2060         <groupId>com.fasterxml.jackson.core</groupId>
2061         <artifactId>jackson-annotations</artifactId>
2062         <version>${jackson.version}</version>
2063       </dependency>
2064       <dependency>
2065         <groupId>com.fasterxml.jackson.core</groupId>
2066         <artifactId>jackson-core</artifactId>
2067         <version>${jackson.version}</version>
2068       </dependency>
2069       <dependency>
2070         <groupId>com.fasterxml.jackson.core</groupId>
2071         <artifactId>jackson-databind</artifactId>
2072         <version>${jackson.databind.version}</version>
2073       </dependency>
2074       <dependency>
2075         <groupId>org.jamon</groupId>
2076         <artifactId>jamon-runtime</artifactId>
2077         <version>${jamon-runtime.version}</version>
2078       </dependency>
2079       <!-- REST dependencies -->
2080       <dependency>
2081         <groupId>javax.servlet</groupId>
2082         <artifactId>javax.servlet-api</artifactId>
2083         <version>${servlet.api.version}</version>
2084       </dependency>
2085       <dependency>
2086         <groupId>javax.ws.rs</groupId>
2087         <artifactId>javax.ws.rs-api</artifactId>
2088         <version>${wx.rs.api.version}</version>
2089       </dependency>
2090       <dependency>
2091         <groupId>com.sun.activation</groupId>
2092         <artifactId>javax.activation</artifactId>
2093         <version>1.2.0</version>
2094       </dependency>
2095       <dependency>
2096         <groupId>javax.annotation</groupId>
2097         <artifactId>javax.annotation-api</artifactId>
2098         <version>1.2</version>
2099       </dependency>
2100       <dependency>
2101         <groupId>org.eclipse.jetty</groupId>
2102         <artifactId>jetty-server</artifactId>
2103         <version>${jetty.version}</version>
2104       </dependency>
2105       <dependency>
2106         <groupId>org.eclipse.jetty</groupId>
2107         <artifactId>jetty-servlet</artifactId>
2108         <version>${jetty.version}</version>
2109         <exclusions>
2110           <exclusion>
2111             <groupId>org.eclipse.jetty</groupId>
2112             <artifactId>servlet-api</artifactId>
2113           </exclusion>
2114         </exclusions>
2115       </dependency>
2116       <dependency>
2117         <groupId>org.eclipse.jetty</groupId>
2118         <artifactId>jetty-security</artifactId>
2119         <version>${jetty.version}</version>
2120       </dependency>
2121       <dependency>
2122         <groupId>org.eclipse.jetty</groupId>
2123         <artifactId>jetty-http</artifactId>
2124         <version>${jetty.version}</version>
2125       </dependency>
2126       <dependency>
2127         <groupId>org.eclipse.jetty</groupId>
2128         <artifactId>jetty-util</artifactId>
2129         <version>${jetty.version}</version>
2130       </dependency>
2131       <dependency>
2132         <groupId>org.eclipse.jetty</groupId>
2133         <artifactId>jetty-io</artifactId>
2134         <version>${jetty.version}</version>
2135       </dependency>
2136       <dependency>
2137         <groupId>org.eclipse.jetty</groupId>
2138         <artifactId>jetty-jmx</artifactId>
2139         <version>${jetty.version}</version>
2140       </dependency>
2141       <dependency>
2142         <groupId>org.eclipse.jetty</groupId>
2143         <artifactId>jetty-webapp</artifactId>
2144         <version>${jetty.version}</version>
2145       </dependency>
2146       <dependency>
2147         <groupId>org.eclipse.jetty</groupId>
2148         <artifactId>jetty-util-ajax</artifactId>
2149         <version>${jetty.version}</version>
2150       </dependency>
2151       <dependency>
2152         <groupId>com.google.protobuf</groupId>
2153         <artifactId>protobuf-java</artifactId>
2154         <version>${external.protobuf.version}</version>
2155       </dependency>
2156       <dependency>
2157         <groupId>org.glassfish.jersey.containers</groupId>
2158         <artifactId>jersey-container-servlet-core</artifactId>
2159         <version>${jersey.version}</version>
2160       </dependency>
2161       <dependency>
2162         <groupId>org.glassfish.jersey.core</groupId>
2163         <artifactId>jersey-client</artifactId>
2164         <version>${jersey.version}</version>
2165       </dependency>
2166       <dependency>
2167         <groupId>org.glassfish.jersey.core</groupId>
2168         <artifactId>jersey-server</artifactId>
2169         <version>${jersey.version}</version>
2170       </dependency>
2171       <dependency>
2172         <!--This lib has JspC in it. Needed precompiling jsps in hbase-rest, etc.-->
2173         <groupId>org.glassfish.web</groupId>
2174         <artifactId>javax.servlet.jsp</artifactId>
2175         <version>${glassfish.jsp.version}</version>
2176       </dependency>
2177       <dependency>
2178         <!-- this lib is used by the compiled Jsp from the above JspC -->
2179         <groupId>javax.servlet.jsp</groupId>
2180         <artifactId>javax.servlet.jsp-api</artifactId>
2181         <version>2.3.1</version>
2182       </dependency>
2183       <dependency>
2184         <groupId>org.glassfish</groupId>
2185         <artifactId>javax.el</artifactId>
2186         <version>${glassfish.el.version}</version>
2187       </dependency>
2188       <dependency>
2189         <groupId>javax.xml.bind</groupId>
2190         <artifactId>jaxb-api</artifactId>
2191         <version>${jaxb-api.version}</version>
2192         <exclusions>
2193           <exclusion>
2194             <groupId>javax.xml.stream</groupId>
2195             <artifactId>stax-api</artifactId>
2196           </exclusion>
2197         </exclusions>
2198       </dependency>
2199       <dependency>
2200         <groupId>junit</groupId>
2201         <artifactId>junit</artifactId>
2202         <version>${junit.version}</version>
2203       </dependency>
2204       <dependency>
2205         <groupId>org.hamcrest</groupId>
2206         <artifactId>hamcrest-core</artifactId>
2207         <version>${hamcrest.version}</version>
2208         <scope>test</scope>
2209       </dependency>
2210       <dependency>
2211         <groupId>org.hamcrest</groupId>
2212         <artifactId>hamcrest-library</artifactId>
2213         <version>${hamcrest.version}</version>
2214         <scope>test</scope>
2215       </dependency>
2216       <dependency>
2217         <groupId>org.mockito</groupId>
2218         <artifactId>mockito-core</artifactId>
2219         <version>${mockito-core.version}</version>
2220         <scope>test</scope>
2221       </dependency>
2222       <dependency>
2223         <groupId>org.apache.htrace</groupId>
2224         <artifactId>htrace-core4</artifactId>
2225         <version>${htrace.version}</version>
2226       </dependency>
2227       <dependency>
2228         <groupId>com.lmax</groupId>
2229         <artifactId>disruptor</artifactId>
2230         <version>${disruptor.version}</version>
2231       </dependency>
2232       <dependency>
2233         <groupId>net.spy</groupId>
2234         <artifactId>spymemcached</artifactId>
2235         <version>${spy.version}</version>
2236         <optional>true</optional>
2237       </dependency>
2238       <dependency>
2239         <groupId>org.bouncycastle</groupId>
2240         <artifactId>bcprov-jdk15on</artifactId>
2241         <version>${bouncycastle.version}</version>
2242         <scope>test</scope>
2243       </dependency>
2244       <dependency>
2245         <groupId>org.apache.kerby</groupId>
2246         <artifactId>kerb-core</artifactId>
2247         <version>${kerby.version}</version>
2248       </dependency>
2249       <dependency>
2250         <groupId>org.apache.kerby</groupId>
2251         <artifactId>kerb-client</artifactId>
2252         <version>${kerby.version}</version>
2253       </dependency>
2254       <dependency>
2255         <groupId>org.apache.kerby</groupId>
2256         <artifactId>kerb-simplekdc</artifactId>
2257         <version>${kerby.version}</version>
2258       </dependency>
2259       <dependency>
2260         <groupId>org.apache.commons</groupId>
2261         <artifactId>commons-crypto</artifactId>
2262         <version>${commons-crypto.version}</version>
2263         <exclusions>
2264           <exclusion>
2265             <groupId>net.java.dev.jna</groupId>
2266             <artifactId>jna</artifactId>
2267           </exclusion>
2268         </exclusions>
2269       </dependency>
2270       <dependency>
2271         <groupId>org.apache.curator</groupId>
2272         <artifactId>curator-framework</artifactId>
2273         <version>${curator.version}</version>
2274         <exclusions>
2275           <exclusion>
2276             <groupId>org.apache.zookeeper</groupId>
2277             <artifactId>zookeeper</artifactId>
2278           </exclusion>
2279         </exclusions>
2280       </dependency>
2281       <dependency>
2282         <groupId>org.apache.curator</groupId>
2283         <artifactId>curator-client</artifactId>
2284         <version>${curator.version}</version>
2285         <exclusions>
2286           <exclusion>
2287             <groupId>com.google.guava</groupId>
2288             <artifactId>guava</artifactId>
2289           </exclusion>
2290           <exclusion>
2291             <groupId>org.apache.zookeeper</groupId>
2292             <artifactId>zookeeper</artifactId>
2293           </exclusion>
2294         </exclusions>
2295       </dependency>
2296       <dependency>
2297         <groupId>org.apache.curator</groupId>
2298         <artifactId>curator-recipes</artifactId>
2299         <version>${curator.version}</version>
2300         <exclusions>
2301           <exclusion>
2302             <groupId>com.google.guava</groupId>
2303             <artifactId>guava</artifactId>
2304           </exclusion>
2305           <exclusion>
2306             <groupId>org.apache.zookeeper</groupId>
2307             <artifactId>zookeeper</artifactId>
2308           </exclusion>
2309         </exclusions>
2310       </dependency>
2311       <dependency>
2312         <groupId>org.apache.yetus</groupId>
2313         <artifactId>audience-annotations</artifactId>
2314         <version>${audience-annotations.version}</version>
2315       </dependency>
2316       <dependency>
2317         <groupId>org.apache.hbase.thirdparty</groupId>
2318         <artifactId>hbase-shaded-gson</artifactId>
2319         <version>${hbase-thirdparty.version}</version>
2320       </dependency>
2321       <dependency>
2322         <groupId>org.apache.hbase.thirdparty</groupId>
2323         <artifactId>hbase-shaded-miscellaneous</artifactId>
2324         <version>${hbase-thirdparty.version}</version>
2325       </dependency>
2326       <dependency>
2327         <groupId>org.apache.hbase.thirdparty</groupId>
2328         <artifactId>hbase-shaded-netty</artifactId>
2329         <version>${hbase-thirdparty.version}</version>
2330       </dependency>
2331       <dependency>
2332         <groupId>org.apache.hbase.thirdparty</groupId>
2333         <artifactId>hbase-shaded-protobuf</artifactId>
2334         <version>${hbase-thirdparty.version}</version>
2335       </dependency>
2336       <dependency>
2337         <groupId>com.sun.xml.ws</groupId>
2338           <artifactId>jaxws-ri</artifactId>
2339         <version>2.3.2</version>
2340         <type>pom</type>
2341         <exclusions>
2342           <exclusion>
2343             <groupId>javax.activation</groupId>
2344             <artifactId>javax.activation-api</artifactId>
2345           </exclusion>
2346         </exclusions>
2347       </dependency>
2348     </dependencies>
2349   </dependencyManagement>
2350   <dependencies>
2351     <!--REMOVE THIS. HERE TEMPORARILY.
2352          Implication is that every module needs junit which is not so.
2353          Cannot undo though because build runs test on each module and
2354          it fails if no junit. TODO. -->
2355     <dependency>
2356       <groupId>junit</groupId>
2357       <artifactId>junit</artifactId>
2358       <scope>test</scope>
2359     </dependency>
2360   </dependencies>
2362   <!--
2363   To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml )
2365  <settings>
2366   <servers>
2367     <server>
2368       <id>apache.releases.https</id>
2369       <username>hbase_committer</username>
2370       <password>********</password>
2371     </server>
2373     <server>
2374       <id>apache.snapshots.https</id>
2375       <username>hbase_committer</username>
2376       <password>********</password>
2377     </server>
2379   </servers>
2380  </settings>
2382   $ mvn deploy
2383 (or)
2384   $ mvn -s /my/path/settings.xml deploy
2386   -->
2387   <profiles>
2388     <profile>
2389       <id>build-with-jdk8</id>
2390       <activation>
2391         <jdk>[1.8,)</jdk>
2392       </activation>
2393       <build>
2394         <pluginManagement>
2395           <plugins>
2396           </plugins>
2397         </pluginManagement>
2398       </build>
2399     </profile>
2400     <profile>
2401       <id>build-with-jdk11</id>
2402       <activation>
2403         <jdk>[1.11,)</jdk>
2404       </activation>
2405       <properties>
2406         <!-- TODO: replicate logic for windows support -->
2407         <argLine>--add-opens=java.base/jdk.internal.ref=ALL-UNNAMED ${hbase-surefire.argLine}</argLine>
2408         <!-- We need a minimum HDFS version of 3.2.0 for HADOOP-12760 -->
2409         <hadoop-three.version>3.2.0</hadoop-three.version>
2410         <!--
2411           JDK11 appears to consume more heap than JDK8 does; OOME are more common in
2412           -PrunLargeTests on this platform. Bump up heap allocated to tests (current default for
2413           JDK8 is 2800m.
2414           TODO: replicate logic for windows
2415         -->
2416         <surefire.Xmx>3200m</surefire.Xmx>
2417       </properties>
2418       <build>
2419         <plugins>
2420           <plugin>
2421             <groupId>org.apache.maven.plugins</groupId>
2422             <artifactId>maven-enforcer-plugin</artifactId>
2423             <executions>
2424               <execution>
2425                 <id>hadoop3-profile-required</id>
2426                 <goals>
2427                   <goal>enforce</goal>
2428                 </goals>
2429                 <configuration>
2430                   <rules>
2431                     <requireProperty>
2432                       <!--
2433                         $ JAVA_HOME=... mvn -Dhadoop.profile=3.0 -PrunSmallTests help:active-profiles enforcer:display-info clean test
2434                         enforcer plugin does not see active profiles on sub-modules, so enforce based
2435                         on the presence of the activation property and value.
2436                       -->
2437                       <property>hadoop.profile</property>
2438                       <regex>.*3\.0$</regex>
2439                       <message>
2440                         HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.
2441                       </message>
2442                       <regexMessage>
2443                         HBase with JDK11 requires Hadoop3. Activate the profile with `-Dhadoop.profile=3.0`.
2444                       </regexMessage>
2445                     </requireProperty>
2446                   </rules>
2447                 </configuration>
2448               </execution>
2449             </executions>
2450           </plugin>
2451         </plugins>
2452       </build>
2453     </profile>
2454     <!-- profile activated by the Jenkins patch testing job -->
2455     <profile>
2456       <id>jenkins.patch</id>
2457       <activation>
2458         <activeByDefault>false</activeByDefault>
2459         <property>
2460             <name>HBasePatchProcess</name>
2461         </property>
2462       </activation>
2463       <properties>
2464         <surefire.rerunFailingTestsCount>2</surefire.rerunFailingTestsCount>
2465       </properties>
2466       <build>
2467         <plugins>
2468           <plugin>
2469             <groupId>org.apache.maven.plugins</groupId>
2470             <artifactId>maven-antrun-plugin</artifactId>
2471             <inherited>false</inherited>
2472             <executions>
2473               <execution>
2474                 <phase>validate</phase>
2475                 <goals>
2476                   <goal>run</goal>
2477                 </goals>
2478                 <configuration>
2479                   <tasks>
2480                     <echo>Maven Execution Environment</echo>
2481                     <echo>MAVEN_OPTS="${env.MAVEN_OPTS}"</echo>
2482                   </tasks>
2483                 </configuration>
2484               </execution>
2485             </executions>
2486           </plugin>
2487         </plugins>
2488       </build>
2489     </profile>
2490     <profile>
2491       <id>jacoco</id>
2492       <activation>
2493         <activeByDefault>false</activeByDefault>
2494       </activation>
2495       <build>
2496         <plugins>
2497           <plugin>
2498             <groupId>org.jacoco</groupId>
2499             <artifactId>jacoco-maven-plugin</artifactId>
2500             <version>${jacoco.version}</version>
2501             <executions>
2502               <execution>
2503                 <id>prepare-agent</id>
2504                 <goals>
2505                   <goal>prepare-agent</goal>
2506                 </goals>
2507               </execution>
2508               <execution>
2509                 <id>report</id>
2510                 <phase>prepare-package</phase>
2511                 <goals>
2512                   <goal>report</goal>
2513                 </goals>
2514               </execution>
2515             </executions>
2516             <configuration>
2517               <systemPropertyVariables>
2518                 <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
2519               </systemPropertyVariables>
2520               <excludes>
2521                 <exclude>**/generated/**/*.class</exclude>
2522               </excludes>
2523             </configuration>
2524           </plugin>
2525         </plugins>
2526       </build>
2527     </profile>
2528     <profile>
2529       <id>os.linux</id>
2530       <activation>
2531         <activeByDefault>false</activeByDefault>
2532         <os>
2533           <family>Linux</family>
2534         </os>
2535       </activation>
2536       <properties>
2537         <build.platform>${os.name}-${os.arch}-${sun.arch.data.model}</build.platform>
2538       </properties>
2539     </profile>
2540     <profile>
2541       <id>os.mac</id>
2542       <activation>
2543         <os>
2544           <family>Mac</family>
2545         </os>
2546       </activation>
2547       <properties>
2548         <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform>
2549       </properties>
2550     </profile>
2551     <profile>
2552       <id>os.windows</id>
2553       <activation>
2554         <os>
2555           <family>Windows</family>
2556         </os>
2557       </activation>
2558       <properties>
2559         <build.platform>cygwin</build.platform>
2560         <argLine>${hbase-surefire.cygwin-argLine}</argLine>
2561       </properties>
2562     </profile>
2563     <!-- this profile should match the name of the release profile in the root asf pom -->
2564     <profile>
2565       <id>apache-release</id>
2566       <build>
2567         <plugins>
2568           <!-- This should insert itself in place of the normal deploy plugin and then
2569                handle either closing or dropping the staging repository for us depending
2570                on if the build succeeds.
2571             -->
2572           <plugin>
2573             <groupId>org.sonatype.plugins</groupId>
2574             <artifactId>nexus-staging-maven-plugin</artifactId>
2575             <version>1.6.8</version>
2576             <extensions>true</extensions>
2577             <configuration>
2578               <nexusUrl>https://repository.apache.org/</nexusUrl>
2579               <serverId>apache.releases.https</serverId>
2580             </configuration>
2581           </plugin>
2582         </plugins>
2583       </build>
2584     </profile>
2585     <!-- this profile should be activated for release builds -->
2586     <profile>
2587       <id>release</id>
2588       <build>
2589         <plugins>
2590           <plugin>
2591             <groupId>org.apache.rat</groupId>
2592             <artifactId>apache-rat-plugin</artifactId>
2593             <executions>
2594               <execution>
2595                 <phase>package</phase>
2596                 <goals>
2597                   <goal>check</goal>
2598                 </goals>
2599               </execution>
2600             </executions>
2601           </plugin>
2602           <plugin>
2603             <groupId>org.apache.maven.plugins</groupId>
2604             <artifactId>maven-enforcer-plugin</artifactId>
2605             <version>${enforcer.version}</version>
2606             <dependencies>
2607               <dependency>
2608                 <groupId>org.codehaus.mojo</groupId>
2609                 <artifactId>extra-enforcer-rules</artifactId>
2610                 <version>${extra.enforcer.version}</version>
2611               </dependency>
2612             </dependencies>
2613             <configuration>
2614               <rules>
2615                 <enforceBytecodeVersion>
2616                 <maxJdkVersion>${compileSource}</maxJdkVersion>
2617                 <message>HBase has unsupported dependencies.
2618   HBase requires that all dependencies be compiled with version ${compileSource} or earlier
2619   of the JDK to properly build from source.  You appear to be using a newer dependency. You can use
2620   either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
2621   Non-release builds can temporarily build with a newer JDK version by setting the
2622   'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
2623                 </message>
2624                 <ignoreClasses>
2625                   <ignoreClass>module-info</ignoreClass>
2626                 </ignoreClasses>
2627               </enforceBytecodeVersion>
2628             </rules>
2629           </configuration>
2630           </plugin>
2631         </plugins>
2632       </build>
2633     </profile>
2634     <!-- Dependency management profiles for submodules when building against specific hadoop branches.-->
2635     <!-- Submodules that need hadoop dependencies should declare
2636     profiles with activation properties matching the profile here.
2637     Generally, it should be sufficient to copy the first
2638     few lines of the profile you want to match.  -->
2639     <!-- profile for building against Hadoop 2.0.x
2640          This is the default.
2641          -->
2642     <profile>
2643       <id>hadoop-2.0</id>
2644       <activation>
2645         <property>
2646           <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
2647           <!--h2--><name>!hadoop.profile</name>
2648         </property>
2649       </activation>
2650       <modules>
2651         <module>hbase-hadoop2-compat</module>
2652       </modules>
2653       <properties>
2654         <hadoop.version>${hadoop-two.version}</hadoop.version>
2655         <compat.module>hbase-hadoop2-compat</compat.module>
2656         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2657         <!--This property is for hadoops netty. HBase netty
2658              comes in via hbase-thirdparty hbase-shaded-netty-->
2659         <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
2660       </properties>
2661       <dependencyManagement>
2662         <dependencies>
2663           <dependency>
2664             <groupId>org.apache.hadoop</groupId>
2665             <artifactId>hadoop-mapreduce-client-core</artifactId>
2666             <version>${hadoop-two.version}</version>
2667             <exclusions>
2668               <exclusion>
2669                 <groupId>com.sun.jersey</groupId>
2670                 <artifactId>jersey-core</artifactId>
2671               </exclusion>
2672               <exclusion>
2673                 <groupId>org.codehaus.jackson</groupId>
2674                 <artifactId>jackson-jaxrs</artifactId>
2675               </exclusion>
2676               <exclusion>
2677                 <groupId>org.codehaus.jackson</groupId>
2678                 <artifactId>jackson-xc</artifactId>
2679               </exclusion>
2680               <exclusion>
2681                 <groupId>io.netty</groupId>
2682                 <artifactId>netty</artifactId>
2683               </exclusion>
2684               <exclusion>
2685                 <groupId>javax.servlet</groupId>
2686                 <artifactId>servlet-api</artifactId>
2687               </exclusion>
2688               <exclusion>
2689                 <groupId>javax.inject</groupId>
2690                 <artifactId>javax.inject</artifactId>
2691               </exclusion>
2692               <exclusion>
2693                 <groupId>org.codehaus.jackson</groupId>
2694                 <artifactId>jackson-core-asl</artifactId>
2695               </exclusion>
2696               <exclusion>
2697                 <groupId>org.codehaus.jackson</groupId>
2698                 <artifactId>jackson-mapper-asl</artifactId>
2699               </exclusion>
2700             </exclusions>
2701           </dependency>
2702           <dependency>
2703             <groupId>org.apache.hadoop</groupId>
2704             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2705             <version>${hadoop-two.version}</version>
2706             <exclusions>
2707               <exclusion>
2708                 <groupId>com.sun.jersey</groupId>
2709                 <artifactId>jersey-core</artifactId>
2710               </exclusion>
2711               <exclusion>
2712                 <groupId>io.netty</groupId>
2713                 <artifactId>netty</artifactId>
2714               </exclusion>
2715               <exclusion>
2716                 <groupId>javax.servlet</groupId>
2717                 <artifactId>servlet-api</artifactId>
2718               </exclusion>
2719             </exclusions>
2720           </dependency>
2721           <dependency>
2722             <groupId>org.apache.hadoop</groupId>
2723             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2724             <version>${hadoop-two.version}</version>
2725             <type>test-jar</type>
2726             <scope>test</scope>
2727             <exclusions>
2728               <exclusion>
2729                 <groupId>com.sun.jersey</groupId>
2730                 <artifactId>jersey-core</artifactId>
2731               </exclusion>
2732               <exclusion>
2733                 <groupId>io.netty</groupId>
2734                 <artifactId>netty</artifactId>
2735               </exclusion>
2736               <exclusion>
2737                 <groupId>javax.servlet</groupId>
2738                 <artifactId>servlet-api</artifactId>
2739               </exclusion>
2740             </exclusions>
2741           </dependency>
2742           <dependency>
2743             <groupId>org.apache.hadoop</groupId>
2744             <artifactId>hadoop-hdfs</artifactId>
2745             <version>${hadoop-two.version}</version>
2746             <exclusions>
2747               <exclusion>
2748                 <groupId>com.sun.jersey</groupId>
2749                 <artifactId>jersey-core</artifactId>
2750               </exclusion>
2751               <exclusion>
2752                 <groupId>javax.servlet.jsp</groupId>
2753                 <artifactId>jsp-api</artifactId>
2754               </exclusion>
2755               <exclusion>
2756                 <groupId>javax.servlet</groupId>
2757                 <artifactId>servlet-api</artifactId>
2758               </exclusion>
2759               <exclusion>
2760                 <groupId>io.netty</groupId>
2761                 <artifactId>netty</artifactId>
2762               </exclusion>
2763               <exclusion>
2764                 <groupId>stax</groupId>
2765                 <artifactId>stax-api</artifactId>
2766               </exclusion>
2767               <exclusion>
2768                 <groupId>xerces</groupId>
2769                 <artifactId>xercesImpl</artifactId>
2770               </exclusion>
2771               <exclusion>
2772                 <groupId>org.codehaus.jackson</groupId>
2773                 <artifactId>jackson-core-asl</artifactId>
2774               </exclusion>
2775               <exclusion>
2776                 <groupId>org.codehaus.jackson</groupId>
2777                 <artifactId>jackson-mapper-asl</artifactId>
2778               </exclusion>
2779               <exclusion>
2780                 <groupId>com.google.guava</groupId>
2781                 <artifactId>guava</artifactId>
2782               </exclusion>
2783             </exclusions>
2784           </dependency>
2785           <dependency>
2786             <groupId>org.apache.hadoop</groupId>
2787             <artifactId>hadoop-hdfs</artifactId>
2788             <version>${hadoop-two.version}</version>
2789             <type>test-jar</type>
2790             <scope>test</scope>
2791             <exclusions>
2792               <exclusion>
2793                 <groupId>javax.servlet.jsp</groupId>
2794                 <artifactId>jsp-api</artifactId>
2795               </exclusion>
2796               <exclusion>
2797                 <groupId>javax.servlet</groupId>
2798                 <artifactId>servlet-api</artifactId>
2799               </exclusion>
2800               <exclusion>
2801                 <groupId>io.netty</groupId>
2802                 <artifactId>netty</artifactId>
2803               </exclusion>
2804               <exclusion>
2805                 <groupId>stax</groupId>
2806                 <artifactId>stax-api</artifactId>
2807               </exclusion>
2808               <exclusion>
2809                 <groupId>xerces</groupId>
2810                 <artifactId>xercesImpl</artifactId>
2811               </exclusion>
2812               <exclusion>
2813                 <groupId>org.codehaus.jackson</groupId>
2814                 <artifactId>jackson-core-asl</artifactId>
2815               </exclusion>
2816               <exclusion>
2817                 <groupId>org.codehaus.jackson</groupId>
2818                 <artifactId>jackson-mapper-asl</artifactId>
2819               </exclusion>
2820               <exclusion>
2821                 <groupId>com.google.guava</groupId>
2822                 <artifactId>guava</artifactId>
2823               </exclusion>
2824               <exclusion>
2825                 <groupId>com.sun.jersey</groupId>
2826                 <artifactId>jersey-core</artifactId>
2827               </exclusion>
2828             </exclusions>
2829           </dependency>
2830           <dependency>
2831             <groupId>org.apache.hadoop</groupId>
2832             <artifactId>hadoop-auth</artifactId>
2833             <version>${hadoop-two.version}</version>
2834             <exclusions>
2835               <exclusion>
2836                 <groupId>com.google.guava</groupId>
2837                 <artifactId>guava</artifactId>
2838               </exclusion>
2839               <exclusion>
2840                 <groupId>net.minidev</groupId>
2841                 <artifactId>json-smart</artifactId>
2842               </exclusion>
2843             </exclusions>
2844           </dependency>
2845           <dependency>
2846             <groupId>org.apache.hadoop</groupId>
2847             <artifactId>hadoop-common</artifactId>
2848             <version>${hadoop-two.version}</version>
2849             <exclusions>
2850               <exclusion>
2851                 <groupId>com.sun.jersey</groupId>
2852                 <artifactId>jersey-core</artifactId>
2853               </exclusion>
2854               <exclusion>
2855                 <groupId>org.codehaus.jackson</groupId>
2856                 <artifactId>jackson-jaxrs</artifactId>
2857               </exclusion>
2858               <exclusion>
2859                 <groupId>org.codehaus.jackson</groupId>
2860                 <artifactId>jackson-xc</artifactId>
2861               </exclusion>
2862               <exclusion>
2863                 <groupId>commons-beanutils</groupId>
2864                 <artifactId>commons-beanutils</artifactId>
2865               </exclusion>
2866               <exclusion>
2867                 <groupId>javax.servlet.jsp</groupId>
2868                 <artifactId>jsp-api</artifactId>
2869               </exclusion>
2870               <exclusion>
2871                 <groupId>javax.servlet</groupId>
2872                 <artifactId>servlet-api</artifactId>
2873               </exclusion>
2874               <exclusion>
2875                 <groupId>stax</groupId>
2876                 <artifactId>stax-api</artifactId>
2877               </exclusion>
2878               <exclusion>
2879                 <groupId>io.netty</groupId>
2880                 <artifactId>netty</artifactId>
2881               </exclusion>
2882               <exclusion>
2883                 <groupId>com.google.code.findbugs</groupId>
2884                 <artifactId>jsr305</artifactId>
2885               </exclusion>
2886               <exclusion>
2887                 <groupId>junit</groupId>
2888                 <artifactId>junit</artifactId>
2889               </exclusion>
2890              <exclusion>
2891                <groupId>org.codehaus.jackson</groupId>
2892                <artifactId>jackson-core-asl</artifactId>
2893              </exclusion>
2894              <exclusion>
2895                <groupId>org.codehaus.jackson</groupId>
2896                <artifactId>jackson-mapper-asl</artifactId>
2897              </exclusion>
2898             </exclusions>
2899           </dependency>
2900           <dependency>
2901             <groupId>org.apache.hadoop</groupId>
2902             <artifactId>hadoop-common</artifactId>
2903             <version>${hadoop-two.version}</version>
2904             <type>test-jar</type>
2905             <scope>test</scope>
2906             <exclusions>
2907               <exclusion>
2908                 <groupId>com.sun.jersey</groupId>
2909                 <artifactId>jersey-core</artifactId>
2910               </exclusion>
2911               <exclusion>
2912                 <groupId>com.google.code.findbugs</groupId>
2913                 <artifactId>jsr305</artifactId>
2914               </exclusion>
2915               <exclusion>
2916                 <groupId>org.codehaus.jackson</groupId>
2917                 <artifactId>jackson-jaxrs</artifactId>
2918               </exclusion>
2919               <exclusion>
2920                 <groupId>org.codehaus.jackson</groupId>
2921                 <artifactId>jackson-xc</artifactId>
2922               </exclusion>
2923             </exclusions>
2924           </dependency>
2925           <dependency>
2926             <!--
2927               a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
2928               duplicated here because hadoop-3.0 piggy-backs off the hadoop-2.0 profile.
2929             -->
2930             <groupId>javax.activation</groupId>
2931             <artifactId>javax.activation-api</artifactId>
2932             <version>1.2.0</version>
2933             <scope>test</scope>
2934           </dependency>
2935           <dependency>
2936             <groupId>org.apache.hadoop</groupId>
2937             <artifactId>hadoop-client</artifactId>
2938             <version>${hadoop-two.version}</version>
2939           </dependency>
2940           <!-- This was marked as test dep in earlier pom, but was scoped compile.
2941             Where do we actually need it? -->
2942           <dependency>
2943             <groupId>org.apache.hadoop</groupId>
2944             <artifactId>hadoop-minicluster</artifactId>
2945             <version>${hadoop-two.version}</version>
2946             <exclusions>
2947               <!--If we comment this in, a few tests in hbase-mapreduce
2948                    fail. They depend on jersey-core somehow. But excluding
2949                    jersey-core here messes up hbase-it because jersey-core
2950                    implements a 1.x jaxrs Response Interface when we depend
2951                    on the 2.x Interface... . Letting this jar come in
2952                    transitively here but will exclude it down in hbase-it.
2953                    See HBASE-22029.
2954               <exclusion>
2955                 <groupId>com.sun.jersey</groupId>
2956                 <artifactId>jersey-core</artifactId>
2957               </exclusion>
2958               -->
2959               <exclusion>
2960                 <groupId>commons-httpclient</groupId>
2961                 <artifactId>commons-httpclient</artifactId>
2962               </exclusion>
2963               <exclusion>
2964                 <groupId>javax.servlet.jsp</groupId>
2965                 <artifactId>jsp-api</artifactId>
2966               </exclusion>
2967               <exclusion>
2968                 <groupId>javax.servlet</groupId>
2969                 <artifactId>servlet-api</artifactId>
2970               </exclusion>
2971               <exclusion>
2972                 <groupId>stax</groupId>
2973                 <artifactId>stax-api</artifactId>
2974               </exclusion>
2975               <exclusion>
2976                 <groupId>io.netty</groupId>
2977                 <artifactId>netty</artifactId>
2978               </exclusion>
2979               <exclusion>
2980                 <groupId>com.google.code.findbugs</groupId>
2981                 <artifactId>jsr305</artifactId>
2982               </exclusion>
2983             </exclusions>
2984           </dependency>
2985           <dependency>
2986             <groupId>org.apache.hadoop</groupId>
2987             <artifactId>hadoop-minikdc</artifactId>
2988             <version>${hadoop-two.version}</version>
2989             <scope>test</scope>
2990           </dependency>
2991          <dependency>
2992            <groupId>org.apache.hadoop</groupId>
2993            <artifactId>hadoop-annotations</artifactId>
2994            <version>${hadoop-two.version}</version>
2995          </dependency>
2997           <dependency>
2998             <groupId>org.apache.hadoop</groupId>
2999             <artifactId>hadoop-distcp</artifactId>
3000             <version>${hadoop-two.version}</version>
3001           </dependency>
3003           <dependency>
3004             <groupId>org.apache.hadoop</groupId>
3005             <artifactId>hadoop-hdfs-client</artifactId>
3006             <version>${hadoop-two.version}</version>
3007           </dependency>
3008         </dependencies>
3009       </dependencyManagement>
3010     </profile>
3011     <!--
3012       profile for building against Hadoop 3.0.0. Activate using:
3013        mvn -Dhadoop.profile=3.0
3014     -->
3015     <profile>
3016       <id>hadoop-3.0</id>
3017       <activation>
3018         <property>
3019           <name>hadoop.profile</name>
3020           <value>3.0</value>
3021         </property>
3022       </activation>
3023       <modules>
3024         <!--For now, use hadoop2 compat module-->
3025         <module>hbase-hadoop2-compat</module>
3026       </modules>
3027       <properties>
3028         <hadoop.version>${hadoop-three.version}</hadoop.version>
3029         <!--Use this compat module for now. TODO: Make h3 one if we need one-->
3030         <compat.module>hbase-hadoop2-compat</compat.module>
3031         <assembly.file>src/main/assembly/hadoop-three-compat.xml</assembly.file>
3032         <!--This property is for hadoops netty. HBase netty
3033              comes in via hbase-thirdparty hbase-shaded-netty-->
3034         <netty.hadoop.version>3.10.5.Final</netty.hadoop.version>
3035       </properties>
3036      <dependencyManagement>
3037        <dependencies>
3038          <dependency>
3039            <groupId>org.apache.hadoop</groupId>
3040            <artifactId>hadoop-mapreduce-client-core</artifactId>
3041            <version>${hadoop-three.version}</version>
3042            <exclusions>
3043              <exclusion>
3044                <groupId>com.sun.jersey</groupId>
3045                <artifactId>jersey-core</artifactId>
3046              </exclusion>
3047              <exclusion>
3048                <groupId>org.codehaus.jackson</groupId>
3049                <artifactId>jackson-jaxrs</artifactId>
3050              </exclusion>
3051              <exclusion>
3052                <groupId>org.codehaus.jackson</groupId>
3053                <artifactId>jackson-xc</artifactId>
3054              </exclusion>
3055              <exclusion>
3056                <groupId>io.netty</groupId>
3057                <artifactId>netty</artifactId>
3058              </exclusion>
3059               <exclusion>
3060                 <groupId>javax.inject</groupId>
3061                 <artifactId>javax.inject</artifactId>
3062               </exclusion>
3063               <exclusion>
3064                 <groupId>org.codehaus.jackson</groupId>
3065                 <artifactId>jackson-core-asl</artifactId>
3066               </exclusion>
3067               <exclusion>
3068                 <groupId>org.codehaus.jackson</groupId>
3069                 <artifactId>jackson-mapper-asl</artifactId>
3070               </exclusion>
3071              <exclusion>
3072                <groupId>com.google.guava</groupId>
3073                <artifactId>guava</artifactId>
3074              </exclusion>
3075            </exclusions>
3076          </dependency>
3077          <dependency>
3078            <groupId>org.apache.hadoop</groupId>
3079            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
3080            <version>${hadoop-three.version}</version>
3081            <exclusions>
3082              <exclusion>
3083                <groupId>com.sun.jersey</groupId>
3084                <artifactId>jersey-core</artifactId>
3085              </exclusion>
3086              <exclusion>
3087                <groupId>io.netty</groupId>
3088                <artifactId>netty</artifactId>
3089              </exclusion>
3090            </exclusions>
3091          </dependency>
3092          <dependency>
3093            <groupId>org.apache.hadoop</groupId>
3094            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
3095            <version>${hadoop-three.version}</version>
3096            <type>test-jar</type>
3097            <scope>test</scope>
3098            <exclusions>
3099              <exclusion>
3100                <groupId>com.sun.jersey</groupId>
3101                <artifactId>jersey-core</artifactId>
3102              </exclusion>
3103              <exclusion>
3104                <groupId>io.netty</groupId>
3105                <artifactId>netty</artifactId>
3106              </exclusion>
3107            </exclusions>
3108          </dependency>
3109          <dependency>
3110            <groupId>org.apache.hadoop</groupId>
3111            <artifactId>hadoop-hdfs</artifactId>
3112            <version>${hadoop-three.version}</version>
3113            <exclusions>
3114              <exclusion>
3115                <groupId>com.sun.jersey</groupId>
3116                <artifactId>jersey-core</artifactId>
3117              </exclusion>
3118              <exclusion>
3119                <groupId>com.sun.jersey</groupId>
3120                <artifactId>jersey-server</artifactId>
3121              </exclusion>
3122              <exclusion>
3123                <groupId>javax.servlet.jsp</groupId>
3124                <artifactId>jsp-api</artifactId>
3125              </exclusion>
3126              <exclusion>
3127                <groupId>javax.servlet</groupId>
3128                <artifactId>servlet-api</artifactId>
3129              </exclusion>
3130              <exclusion>
3131                <groupId>stax</groupId>
3132                <artifactId>stax-api</artifactId>
3133              </exclusion>
3134              <exclusion>
3135                <groupId>xerces</groupId>
3136                <artifactId>xercesImpl</artifactId>
3137              </exclusion>
3138              <exclusion>
3139                <groupId>org.codehaus.jackson</groupId>
3140                <artifactId>jackson-core-asl</artifactId>
3141              </exclusion>
3142              <exclusion>
3143                <groupId>org.codehaus.jackson</groupId>
3144                <artifactId>jackson-mapper-asl</artifactId>
3145              </exclusion>
3146               <exclusion>
3147                 <groupId>com.google.guava</groupId>
3148                 <artifactId>guava</artifactId>
3149               </exclusion>
3150            </exclusions>
3151          </dependency>
3152          <dependency>
3153            <groupId>org.apache.hadoop</groupId>
3154            <artifactId>hadoop-hdfs</artifactId>
3155            <version>${hadoop-three.version}</version>
3156            <type>test-jar</type>
3157            <scope>test</scope>
3158            <exclusions>
3159              <exclusion>
3160                <groupId>javax.servlet.jsp</groupId>
3161                <artifactId>jsp-api</artifactId>
3162              </exclusion>
3163              <exclusion>
3164                <groupId>javax.servlet</groupId>
3165                <artifactId>servlet-api</artifactId>
3166              </exclusion>
3167              <exclusion>
3168                <groupId>stax</groupId>
3169                <artifactId>stax-api</artifactId>
3170              </exclusion>
3171              <exclusion>
3172                <groupId>xerces</groupId>
3173                <artifactId>xercesImpl</artifactId>
3174              </exclusion>
3175              <exclusion>
3176                <groupId>org.codehaus.jackson</groupId>
3177                <artifactId>jackson-core-asl</artifactId>
3178              </exclusion>
3179              <exclusion>
3180                <groupId>org.codehaus.jackson</groupId>
3181                <artifactId>jackson-mapper-asl</artifactId>
3182              </exclusion>
3183              <exclusion>
3184                <groupId>com.google.guava</groupId>
3185                <artifactId>guava</artifactId>
3186              </exclusion>
3187              <exclusion>
3188                <groupId>com.sun.jersey</groupId>
3189                <artifactId>jersey-core</artifactId>
3190              </exclusion>
3191            </exclusions>
3192          </dependency>
3193          <dependency>
3194            <groupId>org.apache.hadoop</groupId>
3195            <artifactId>hadoop-hdfs</artifactId>
3196            <version>${hadoop-three.version}</version>
3197            <type>test-jar</type>
3198            <classifier>tests</classifier>
3199            <scope>test</scope>
3200            <exclusions>
3201              <exclusion>
3202                <groupId>com.sun.jersey</groupId>
3203                <artifactId>jersey-core</artifactId>
3204              </exclusion>
3205            </exclusions>
3206          </dependency>
3207          <dependency>
3208            <groupId>org.apache.hadoop</groupId>
3209            <artifactId>hadoop-auth</artifactId>
3210            <version>${hadoop-three.version}</version>
3211            <exclusions>
3212              <exclusion>
3213                <groupId>com.google.guava</groupId>
3214                <artifactId>guava</artifactId>
3215              </exclusion>
3216              <exclusion>
3217                <groupId>net.minidev</groupId>
3218                <artifactId>json-smart</artifactId>
3219              </exclusion>
3220            </exclusions>
3221          </dependency>
3222          <dependency>
3223            <groupId>org.apache.hadoop</groupId>
3224            <artifactId>hadoop-common</artifactId>
3225            <version>${hadoop-three.version}</version>
3226            <exclusions>
3227              <exclusion>
3228                <groupId>com.sun.jersey</groupId>
3229                <artifactId>jersey-core</artifactId>
3230              </exclusion>
3231              <exclusion>
3232                <groupId>com.sun.jersey</groupId>
3233                <artifactId>jersey-json</artifactId>
3234              </exclusion>
3235              <exclusion>
3236                <groupId>com.sun.jersey</groupId>
3237                <artifactId>jersey-servlet</artifactId>
3238              </exclusion>
3239              <exclusion>
3240               <groupId>com.sun.jersey</groupId>
3241                <artifactId>jersey-server</artifactId>
3242              </exclusion>
3243              <exclusion>
3244                <groupId>javax.servlet.jsp</groupId>
3245                <artifactId>jsp-api</artifactId>
3246              </exclusion>
3247              <exclusion>
3248                <groupId>javax.servlet</groupId>
3249                <artifactId>javax.servlet-api</artifactId>
3250              </exclusion>
3251              <exclusion>
3252                <groupId>stax</groupId>
3253                <artifactId>stax-api</artifactId>
3254              </exclusion>
3255              <exclusion>
3256                <groupId>io.netty</groupId>
3257                <artifactId>netty</artifactId>
3258              </exclusion>
3259              <exclusion>
3260                <groupId>com.google.code.findbugs</groupId>
3261                <artifactId>jsr305</artifactId>
3262              </exclusion>
3263              <exclusion>
3264                <groupId>junit</groupId>
3265                <artifactId>junit</artifactId>
3266              </exclusion>
3267              <exclusion>
3268                <groupId>org.codehause.jackson</groupId>
3269                <artifactId>jackson-core-asl</artifactId>
3270              </exclusion>
3271              <exclusion>
3272                <groupId>org.codehause.jackson</groupId>
3273                <artifactId>jackson-mapper-asl</artifactId>
3274              </exclusion>
3275            </exclusions>
3276          </dependency>
3277          <dependency>
3278            <!--
3279              a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
3280            -->
3281            <groupId>javax.activation</groupId>
3282            <artifactId>javax.activation-api</artifactId>
3283            <version>1.2.0</version>
3284            <scope>test</scope>
3285          </dependency>
3286          <dependency>
3287            <groupId>org.apache.hadoop</groupId>
3288            <artifactId>hadoop-common</artifactId>
3289            <type>test-jar</type>
3290            <classifier>tests</classifier>
3291            <version>${hadoop-three.version}</version>
3292            <exclusions>
3293              <exclusion>
3294                <groupId>com.sun.jersey</groupId>
3295                <artifactId>jersey-core</artifactId>
3296              </exclusion>
3297              <exclusion>
3298                <groupId>com.google.code.findbugs</groupId>
3299                <artifactId>jsr305</artifactId>
3300              </exclusion>
3301            </exclusions>
3302          </dependency>
3303          <dependency>
3304            <groupId>org.apache.hadoop</groupId>
3305            <artifactId>hadoop-client</artifactId>
3306            <version>${hadoop-three.version}</version>
3307          </dependency>
3308          <dependency>
3309            <groupId>org.apache.hadoop</groupId>
3310            <artifactId>hadoop-annotations</artifactId>
3311            <version>${hadoop-three.version}</version>
3312          </dependency>
3313          <!-- This was marked as test dep in earlier pom, but was scoped compile.
3314            Where do we actually need it? -->
3315          <dependency>
3316            <groupId>org.apache.hadoop</groupId>
3317            <artifactId>hadoop-minicluster</artifactId>
3318            <version>${hadoop-three.version}</version>
3319            <exclusions>
3320               <!--If we comment this in, a few tests in hbase-mapreduce
3321                    fail. They depend on jersey-core somehow. But excluding
3322                    jersey-core here messes up hbase-it because jersey-core
3323                    implements a 1.x jaxrs Response Interface when we depend
3324                    on the 2.x Interface... . Letting this jar come in
3325                    transitively here but will exclude it down in hbase-it.
3326                    See HBASE-22029.
3327              <exclusion>
3328                <groupId>com.sun.jersey</groupId>
3329                <artifactId>jersey-core</artifactId>
3330              </exclusion>
3331              -->
3332              <exclusion>
3333                <groupId>commons-httpclient</groupId>
3334                <artifactId>commons-httpclient</artifactId>
3335              </exclusion>
3336              <exclusion>
3337                <groupId>javax.servlet.jsp</groupId>
3338                <artifactId>jsp-api</artifactId>
3339              </exclusion>
3340              <exclusion>
3341                <groupId>javax.servlet</groupId>
3342                <artifactId>servlet-api</artifactId>
3343              </exclusion>
3344              <exclusion>
3345                <groupId>stax</groupId>
3346                <artifactId>stax-api</artifactId>
3347              </exclusion>
3348              <exclusion>
3349                <groupId>io.netty</groupId>
3350                <artifactId>netty</artifactId>
3351              </exclusion>
3352              <exclusion>
3353                <groupId>com.google.code.findbugs</groupId>
3354                <artifactId>jsr305</artifactId>
3355              </exclusion>
3356            </exclusions>
3357          </dependency>
3358          <dependency>
3359             <groupId>org.apache.hadoop</groupId>
3360             <artifactId>hadoop-minikdc</artifactId>
3361             <version>${hadoop-three.version}</version>
3362             <scope>test</scope>
3363           </dependency>
3365          <dependency>
3366            <groupId>org.apache.hadoop</groupId>
3367            <artifactId>hadoop-distcp</artifactId>
3368            <version>${hadoop-three.version}</version>
3369          </dependency>
3371          <dependency>
3372            <groupId>org.apache.hadoop</groupId>
3373            <artifactId>hadoop-hdfs-client</artifactId>
3374            <version>${hadoop-three.version}</version>
3375          </dependency>
3376        </dependencies>
3377      </dependencyManagement>
3379     </profile>
3380     <!-- profiles for the tests
3381          See as well the properties of the project for the values
3382          when no profile is active.     -->
3383     <profile>
3384       <!-- Use it to launch all tests in the same JVM  -->
3385       <id>singleJVMTests</id>
3386       <activation>
3387         <activeByDefault>false</activeByDefault>
3388       </activation>
3389       <properties>
3390         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3391         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3392         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3393         <surefire.firstPartGroups/>
3394       </properties>
3395     </profile>
3396     <profile>
3397       <!-- Use it to launch small tests only -->
3398       <id>runSmallTests</id>
3399       <activation>
3400         <activeByDefault>false</activeByDefault>
3401       </activation>
3402       <properties>
3403         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3404         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3405         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3406         <surefire.secondPartGroups/>
3407       </properties>
3408     </profile>
3409     <profile>
3410       <!-- Use it to launch medium tests only -->
3411       <id>runMediumTests</id>
3412       <activation>
3413         <activeByDefault>false</activeByDefault>
3414       </activation>
3415       <properties>
3416         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3417         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3418         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.firstPartGroups>
3419         <surefire.secondPartGroups/>
3420       </properties>
3421     </profile>
3422     <profile>
3423       <!-- Use it to launch large tests only -->
3424       <id>runLargeTests</id>
3425       <activation>
3426         <activeByDefault>false</activeByDefault>
3427       </activation>
3428       <properties>
3429         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3430         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3431         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.LargeTests</surefire.firstPartGroups>
3432         <surefire.secondPartGroups/>
3433       </properties>
3434     </profile>
3435     <profile>
3436       <!-- Use it to launch small & medium tests -->
3437       <id>runDevTests</id>
3438       <activation>
3439         <activeByDefault>false</activeByDefault>
3440       </activation>
3441       <properties>
3442         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3443         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3444         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3445         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3446         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
3447       </properties>
3448     </profile>
3449     <profile>
3450       <!-- Use it to launch all tests -->
3451       <id>runAllTests</id>
3452       <activation>
3453         <activeByDefault>false</activeByDefault>
3454       </activation>
3455       <properties>
3456         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3457         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3458         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3459         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests,org.apache.hadoop.hbase.testclassification.LargeTests</surefire.secondPartGroups>
3460       </properties>
3461     </profile>
3462     <profile>
3463       <id>runMiscTests</id>
3464       <activation>
3465         <activeByDefault>false</activeByDefault>
3466       </activation>
3467       <properties>
3468         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3469         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3470         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests
3471         </surefire.firstPartGroups>
3472         <surefire.secondPartGroups></surefire.secondPartGroups>
3473       </properties>
3474     </profile>
3475     <profile>
3476       <id>runCoprocessorTests</id>
3477       <activation>
3478         <activeByDefault>false</activeByDefault>
3479       </activation>
3480       <properties>
3481         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3482         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3483         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3484         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3485         <surefire.firstPartGroups>
3486           org.apache.hadoop.hbase.testclassification.CoprocessorTests
3487         </surefire.firstPartGroups>
3488         <surefire.secondPartGroups></surefire.secondPartGroups>
3489       </properties>
3490     </profile>
3491     <profile>
3492       <id>runClientTests</id>
3493       <activation>
3494         <activeByDefault>false</activeByDefault>
3495       </activation>
3496       <properties>
3497         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3498         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3499         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3500         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3501         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests
3502         </surefire.firstPartGroups>
3503         <surefire.secondPartGroups></surefire.secondPartGroups>
3504       </properties>
3505     </profile>
3506     <profile>
3507       <id>runMasterTests</id>
3508       <activation>
3509         <activeByDefault>false</activeByDefault>
3510       </activation>
3511       <properties>
3512         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3513         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3514         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3515         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3516         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests
3517         </surefire.firstPartGroups>
3518         <surefire.secondPartGroups></surefire.secondPartGroups>
3519       </properties>
3520     </profile>
3521     <profile>
3522       <id>runMapredTests</id>
3523       <activation>
3524         <activeByDefault>false</activeByDefault>
3525       </activation>
3526       <properties>
3527         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3528         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3529         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3530         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3531         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests
3532         </surefire.firstPartGroups>
3533         <surefire.secondPartGroups></surefire.secondPartGroups>
3534       </properties>
3535     </profile>
3536     <profile>
3537       <id>runMapreduceTests</id>
3538       <activation>
3539         <activeByDefault>false</activeByDefault>
3540       </activation>
3541       <properties>
3542         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3543         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3544         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3545         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3546         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests
3547         </surefire.firstPartGroups>
3548         <surefire.secondPartGroups></surefire.secondPartGroups>
3549       </properties>
3550     </profile>
3551     <profile>
3552       <id>runRegionServerTests</id>
3553       <activation>
3554         <activeByDefault>false</activeByDefault>
3555       </activation>
3556       <properties>
3557         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3558         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3559         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3560         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3561         <surefire.firstPartGroups>
3562           org.apache.hadoop.hbase.testclassification.RegionServerTests
3563         </surefire.firstPartGroups>
3564         <surefire.secondPartGroups></surefire.secondPartGroups>
3565       </properties>
3566     </profile>
3567     <profile>
3568       <id>runVerySlowMapReduceTests</id>
3569       <activation>
3570         <activeByDefault>false</activeByDefault>
3571       </activation>
3572       <properties>
3573         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3574         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3575         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3576         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3577         <surefire.firstPartGroups>
3578           org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests
3579         </surefire.firstPartGroups>
3580         <surefire.secondPartGroups></surefire.secondPartGroups>
3581       </properties>
3582     </profile>
3584     <profile>
3585       <id>runVerySlowRegionServerTests</id>
3586       <activation>
3587         <activeByDefault>false</activeByDefault>
3588       </activation>
3589       <properties>
3590         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3591         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3592         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3593         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3594         <surefire.firstPartGroups>
3595           org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests
3596         </surefire.firstPartGroups>
3597         <surefire.secondPartGroups></surefire.secondPartGroups>
3598       </properties>
3599     </profile>
3601     <profile>
3602       <id>runFilterTests</id>
3603       <activation>
3604         <activeByDefault>false</activeByDefault>
3605       </activation>
3606       <properties>
3607         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3608         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3609         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3610         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3611         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests
3612         </surefire.firstPartGroups>
3613         <surefire.secondPartGroups></surefire.secondPartGroups>
3614       </properties>
3615     </profile>
3616     <profile>
3617       <id>runIOTests</id>
3618       <activation>
3619         <activeByDefault>false</activeByDefault>
3620       </activation>
3621       <properties>
3622         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3623         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3624         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3625         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3626         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests
3627         </surefire.firstPartGroups>
3628         <surefire.secondPartGroups></surefire.secondPartGroups>
3629       </properties>
3630     </profile>
3631     <profile>
3632       <id>runRestTests</id>
3633       <activation>
3634         <activeByDefault>false</activeByDefault>
3635       </activation>
3636       <properties>
3637         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3638         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3639         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3640         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3641         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests
3642         </surefire.firstPartGroups>
3643         <surefire.secondPartGroups></surefire.secondPartGroups>
3644       </properties>
3645     </profile>
3646     <profile>
3647       <id>runRPCTests</id>
3648       <activation>
3649         <activeByDefault>false</activeByDefault>
3650       </activation>
3651       <properties>
3652         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3653         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3654         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3655         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3656         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests
3657         </surefire.firstPartGroups>
3658         <surefire.secondPartGroups></surefire.secondPartGroups>
3659       </properties>
3660     </profile>
3661     <profile>
3662       <id>runReplicationTests</id>
3663       <activation>
3664         <activeByDefault>false</activeByDefault>
3665       </activation>
3666       <properties>
3667         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3668         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3669         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3670         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3671         <surefire.firstPartGroups>
3672           org.apache.hadoop.hbase.testclassification.ReplicationTests
3673         </surefire.firstPartGroups>
3674         <surefire.secondPartGroups></surefire.secondPartGroups>
3675       </properties>
3676     </profile>
3677     <profile>
3678       <id>runSecurityTests</id>
3679       <activation>
3680         <activeByDefault>false</activeByDefault>
3681       </activation>
3682       <properties>
3683         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3684         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3685         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3686         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3687         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests
3688         </surefire.firstPartGroups>
3689         <surefire.secondPartGroups></surefire.secondPartGroups>
3690       </properties>
3691     </profile>
3692     <profile>
3693       <id>runFlakeyTests</id>
3694       <activation>
3695         <activeByDefault>false</activeByDefault>
3696       </activation>
3697       <properties>
3698         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3699         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3700         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3701         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3702         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests
3703         </surefire.firstPartGroups>
3704         <surefire.secondPartGroups></surefire.secondPartGroups>
3705       </properties>
3706     </profile>
3707     <profile>
3708       <id>runZKTests</id>
3709       <activation>
3710         <activeByDefault>false</activeByDefault>
3711       </activation>
3712       <properties>
3713         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3714         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3715         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3716         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3717         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests
3718         </surefire.firstPartGroups>
3719         <surefire.secondPartGroups></surefire.secondPartGroups>
3720       </properties>
3721     </profile>
3722     <profile>
3723       <id>runRSGroupTests</id>
3724       <activation>
3725         <activeByDefault>false</activeByDefault>
3726       </activation>
3727       <properties>
3728         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3729         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3730         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3731         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3732         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RSGroupTests
3733         </surefire.firstPartGroups>
3734         <surefire.secondPartGroups></surefire.secondPartGroups>
3735       </properties>
3736     </profile>
3738     <profile>
3739       <!-- Use it to launch tests locally-->
3740       <id>localTests</id>
3741       <activation>
3742         <property>
3743           <name>test</name>
3744         </property>
3745       </activation>
3746       <properties>
3747         <surefire.provider>surefire-junit4</surefire.provider>
3748         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3749         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3750         <surefire.firstPartGroups/>
3751       </properties>
3752     </profile>
3753     <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
3754          or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
3755          the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
3756          The report will be generated under target/site/clover/index.html when you run
3757          MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
3758     <profile>
3759       <id>clover</id>
3760       <activation>
3761         <activeByDefault>false</activeByDefault>
3762         <property>
3763           <name>clover</name>
3764         </property>
3765       </activation>
3766       <properties>
3767         <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
3768       </properties>
3769       <build>
3770         <plugins>
3771         <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
3772              our instrumented classes for the doclet will fail
3773           -->
3774           <plugin>
3775             <groupId>org.apache.maven.plugins</groupId>
3776             <artifactId>maven-javadoc-plugin</artifactId>
3777             <dependencies>
3778               <dependency>
3779                 <groupId>com.atlassian.maven.plugins</groupId>
3780                 <artifactId>maven-clover2-plugin</artifactId>
3781                 <version>${clover.version}</version>
3782               </dependency>
3783             </dependencies>
3784           </plugin>
3785           <plugin>
3786             <groupId>com.atlassian.maven.plugins</groupId>
3787             <artifactId>maven-clover2-plugin</artifactId>
3788             <version>${clover.version}</version>
3789             <configuration>
3790               <includesAllSourceRoots>true</includesAllSourceRoots>
3791               <includesTestSourceRoots>true</includesTestSourceRoots>
3792               <targetPercentage>50%</targetPercentage>
3793               <generateHtml>true</generateHtml>
3794               <generateXml>true</generateXml>
3795               <excludes>
3796                 <exclude>**/generated/**</exclude>
3797               </excludes>
3798             </configuration>
3799             <executions>
3800               <execution>
3801                 <id>clover-setup</id>
3802                 <phase>process-sources</phase>
3803                 <goals>
3804                   <goal>setup</goal>
3805                 </goals>
3806               </execution>
3807               <execution>
3808                 <id>clover</id>
3809                 <phase>site</phase>
3810                 <goals>
3811                   <goal>clover</goal>
3812                 </goals>
3813               </execution>
3814             </executions>
3815           </plugin>
3816         </plugins>
3817       </build>
3818     </profile>
3819     <profile>
3820       <!-- Used by the website generation script on jenkins to
3821            do a local install of the jars we need to run a normal
3822            site build w/o forking.
3823         -->
3824       <id>site-install-step</id>
3825       <properties>
3826         <skipTests>true</skipTests>
3827         <maven.javadoc.skip>true</maven.javadoc.skip>
3828         <enforcer.skip>true</enforcer.skip>
3829         <checkstyle.skip>true</checkstyle.skip>
3830         <spotbugs.skip>true</spotbugs.skip>
3831         <warbucks.skip>true</warbucks.skip>
3832       </properties>
3833     </profile>
3834     <profile>
3835       <!-- Used by the website generation script on jenkins to
3836            mitigate the impact of unneeded build forks while building
3837            our javadocs.
3838         -->
3839       <id>site-build-step</id>
3840       <properties>
3841         <skipTests>true</skipTests>
3842         <enforcer.skip>true</enforcer.skip>
3843         <maven.main.skip>true</maven.main.skip>
3844         <maven.test.skip>true</maven.test.skip>
3845         <warbucks.skip>true</warbucks.skip>
3846         <protoc.skip>true</protoc.skip>
3847         <remoteresources.skip>true</remoteresources.skip>
3848       </properties>
3849     </profile>
3850     <profile>
3851       <id>eclipse-specific</id>
3852       <activation>
3853         <property>
3854           <name>m2e.version</name>
3855         </property>
3856       </activation>
3857       <build>
3858         <pluginManagement>
3859           <plugins>
3860             <!-- General config for eclipse classpath/settings -->
3861             <plugin>
3862               <groupId>org.apache.maven.plugins</groupId>
3863               <artifactId>maven-eclipse-plugin</artifactId>
3864               <version>${maven.eclipse.version}</version>
3865             </plugin>
3866             <!--This plugin's configuration is used to store Eclipse m2e settings
3867                 only. It has no influence on the Maven build itself. m2e does not
3868                 provide any safeguards against rogue maven plugins that leak
3869                 classloaders, modify random files inside workspace or throw nasty
3870                 exceptions to fail the build.
3871                 Top level doesn't do any specific configuration currently - left
3872                 to modules to decide what they want to bind, sans those plugins
3873                 defined in this pom. -->
3874             <plugin>
3875               <groupId>org.eclipse.m2e</groupId>
3876               <artifactId>lifecycle-mapping</artifactId>
3877               <version>${lifecycle.mapping.version}</version>
3878               <configuration>
3879                 <lifecycleMappingMetadata>
3880                   <pluginExecutions>
3881                     <pluginExecution>
3882                       <pluginExecutionFilter>
3883                         <groupId>org.jacoco</groupId>
3884                         <artifactId>jacoco-maven-plugin</artifactId>
3885                         <versionRange>[0.6.2.201302030002,)</versionRange>
3886                         <goals>
3887                           <goal>prepare-agent</goal>
3888                         </goals>
3889                       </pluginExecutionFilter>
3890                       <action>
3891                         <ignore></ignore>
3892                       </action>
3893                     </pluginExecution>
3894                     <pluginExecution>
3895                       <pluginExecutionFilter>
3896                         <groupId>org.apache.maven.plugins</groupId>
3897                         <artifactId>maven-enforcer-plugin</artifactId>
3898                         <versionRange>${enforcer.version}</versionRange>
3899                         <goals>
3900                           <goal>enforce</goal>
3901                         </goals>
3902                       </pluginExecutionFilter>
3903                       <action>
3904                         <ignore />
3905                       </action>
3906                     </pluginExecution>
3907                     <pluginExecution>
3908                       <pluginExecutionFilter>
3909                         <groupId>org.apache.maven.plugins</groupId>
3910                         <artifactId>maven-remote-resources-plugin</artifactId>
3911                         <versionRange>[1.5,)</versionRange>
3912                         <goals>
3913                           <goal>process</goal>
3914                           <goal>bundle</goal>
3915                         </goals>
3916                       </pluginExecutionFilter>
3917                       <action>
3918                         <ignore />
3919                       </action>
3920                     </pluginExecution>
3921                       <pluginExecution>
3922                         <pluginExecutionFilter>
3923                           <groupId>org.codehaus.mojo</groupId>
3924                           <artifactId>buildnumber-maven-plugin</artifactId>
3925                           <versionRange>[1.3,)</versionRange>
3926                           <goals>
3927                             <goal>create-timestamp</goal>
3928                           </goals>
3929                         </pluginExecutionFilter>
3930                         <action>
3931                           <execute>
3932                             <runOnConfiguration>true</runOnConfiguration>
3933                             <runOnIncremental>true</runOnIncremental>
3934                           </execute>
3935                         </action>
3936                       </pluginExecution>
3937                   </pluginExecutions>
3938                 </lifecycleMappingMetadata>
3939               </configuration>
3940             </plugin>
3941           </plugins>
3942         </pluginManagement>
3943       </build>
3944     </profile>
3945     <profile>
3946       <id>aarch64</id>
3947       <properties>
3948         <external.protobuf.groupid>org.openlabtesting.protobuf</external.protobuf.groupid>
3949       </properties>
3950       <activation>
3951         <os>
3952           <family>linux</family>
3953           <arch>aarch64</arch>
3954         </os>
3955       </activation>
3956     </profile>
3957   </profiles>
3958   <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
3959   <reporting>
3960     <plugins>
3961       <plugin>
3962         <artifactId>maven-project-info-reports-plugin</artifactId>
3963         <version>${maven.project.info.report.version}</version>
3964         <reportSets>
3965           <reportSet>
3966             <reports>
3967               <report>dependencies</report>
3968               <report>dependency-convergence</report>
3969               <report>dependency-info</report>
3970               <report>dependency-management</report>
3971               <report>index</report>
3972               <report>issue-tracking</report>
3973               <report>mailing-list</report>
3974               <report>plugin-management</report>
3975               <report>plugins</report>
3976               <report>project-team</report>
3977               <report>scm</report>
3978               <report>summary</report>
3979             </reports>
3980           </reportSet>
3981         </reportSets>
3982         <!-- see src/site/site.xml for selected reports -->
3983         <configuration>
3984           <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
3985         </configuration>
3986       </plugin>
3988       <plugin>
3989         <groupId>org.apache.maven.plugins</groupId>
3990         <artifactId>maven-javadoc-plugin</artifactId>
3991         <configuration>
3992           <tags>
3993             <tag>
3994               <name>apiNote</name>
3995               <placement>a</placement>
3996               <head>API Note:</head>
3997             </tag>
3998           </tags>
3999         </configuration>
4000         <reportSets>
4001           <!-- Dev API -->
4002           <reportSet>
4003             <id>devapi</id>
4004             <reports>
4005               <report>aggregate</report>
4006             </reports>
4007             <configuration>
4008               <destDir>devapidocs</destDir>
4009               <name>Developer API</name>
4010               <description>The full HBase API, including private and unstable APIs</description>
4011               <sourceFileExcludes>
4012                 <exclude>**/generated/*</exclude>
4013                 <exclude>**/protobuf/*</exclude>
4014               </sourceFileExcludes>
4015               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
4016               <show>private</show> <!-- (shows all classes and members) -->
4017               <quiet>true</quiet>
4018               <linksource>true</linksource>
4019               <sourcetab>2</sourcetab>
4020               <validateLinks>true</validateLinks>
4021               <fixClassComment>true</fixClassComment>
4022               <fixFieldComment>true</fixFieldComment>
4023               <fixMethodComment>true</fixMethodComment>
4024               <fixTags>all</fixTags>
4025               <notimestamp>true</notimestamp>
4026               <locale>en_US</locale>
4027               <!-- Pass some options straight to the javadoc executable since it is easier -->
4028               <additionalJOption>-J-Xmx2G</additionalJOption>
4029               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4030               <additionalDependencies>
4031                 <additionalDependency>
4032                   <groupId>org.mockito</groupId>
4033                   <artifactId>mockito-core</artifactId>
4034                   <version>${mockito-core.version}</version>
4035                 </additionalDependency>
4036                 <additionalDependency>
4037                   <groupId>org.hamcrest</groupId>
4038                   <artifactId>hamcrest-core</artifactId>
4039                   <version>${hamcrest.version}</version>
4040                 </additionalDependency>
4041               </additionalDependencies>
4042               <inherited>false</inherited>
4043             </configuration>
4044           </reportSet>
4045           <reportSet>
4046             <id>testdevapi</id>
4047             <reports>
4048               <report>test-aggregate</report>
4049             </reports>
4050             <configuration>
4051               <destDir>testdevapidocs</destDir>
4052               <name>Developer API</name>
4053               <description>The full HBase API test code, including private and unstable APIs</description>
4054               <sourceFileExcludes>
4055                 <exclude>**/generated/*</exclude>
4056                 <exclude>**/protobuf/*</exclude>
4057               </sourceFileExcludes>
4058               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
4059               <show>private</show> <!-- (shows all classes and members) -->
4060               <quiet>true</quiet>
4061               <linksource>true</linksource>
4062               <sourcetab>2</sourcetab>
4063               <validateLinks>true</validateLinks>
4064               <fixClassComment>true</fixClassComment>
4065               <fixFieldComment>true</fixFieldComment>
4066               <fixMethodComment>true</fixMethodComment>
4067               <fixTags>all</fixTags>
4068               <notimestamp>true</notimestamp>
4069               <locale>en_US</locale>
4070               <!-- Pass some options straight to the javadoc executable since it is easier -->
4071               <additionalJOption>-J-Xmx2G</additionalJOption>
4072               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4073               <additionalDependencies>
4074                 <additionalDependency>
4075                   <groupId>org.mockito</groupId>
4076                   <artifactId>mockito-core</artifactId>
4077                   <version>${mockito-core.version}</version>
4078                 </additionalDependency>
4079                 <additionalDependency>
4080                   <groupId>org.hamcrest</groupId>
4081                   <artifactId>hamcrest-core</artifactId>
4082                   <version>${hamcrest.version}</version>
4083                 </additionalDependency>
4084               </additionalDependencies>
4085               <inherited>false</inherited>
4086             </configuration>
4087           </reportSet>
4089           <!-- User API -->
4090           <reportSet>
4091             <id>userapi</id>
4092             <reports>
4093               <report>aggregate</report>
4094             </reports>
4095             <configuration>
4096               <doclet>
4097                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
4098               </doclet>
4099               <docletArtifact>
4100                 <groupId>org.apache.yetus</groupId>
4101                 <artifactId>audience-annotations</artifactId>
4102                 <version>${audience-annotations.version}</version>
4103               </docletArtifact>
4104               <useStandardDocletOptions>true</useStandardDocletOptions>
4105               <destDir>apidocs</destDir>
4106               <name>User API</name>
4107               <description>The HBase Application Programmer's API</description>
4108               <excludePackageNames>
4109                 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*
4110               </excludePackageNames>
4111               <!-- switch on dependency-driven aggregation -->
4112               <includeDependencySources>false</includeDependencySources>
4113               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
4114               <show>protected</show> <!-- (shows only public and protected classes and members) -->
4115               <quiet>true</quiet>
4116               <linksource>true</linksource>
4117               <sourcetab>2</sourcetab>
4118               <validateLinks>true</validateLinks>
4119               <fixClassComment>true</fixClassComment>
4120               <fixFieldComment>true</fixFieldComment>
4121               <fixMethodComment>true</fixMethodComment>
4122               <fixTags>all</fixTags>
4123               <notimestamp>true</notimestamp>
4124               <locale>en_US</locale>
4125               <!-- Pass some options straight to the javadoc executable since it is easier -->
4126               <additionalJOption>-J-Xmx2G</additionalJOption>
4127               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4128               <additionalDependencies>
4129                 <additionalDependency>
4130                   <groupId>org.mockito</groupId>
4131                   <artifactId>mockito-core</artifactId>
4132                   <version>${mockito-core.version}</version>
4133                 </additionalDependency>
4134                 <additionalDependency>
4135                   <groupId>org.hamcrest</groupId>
4136                   <artifactId>hamcrest-core</artifactId>
4137                   <version>${hamcrest.version}</version>
4138                 </additionalDependency>
4139               </additionalDependencies>
4140               <inherited>false</inherited>
4141             </configuration>
4142           </reportSet>
4143           <!-- User Test API -->
4144           <reportSet>
4145             <id>testuserapi</id>
4146             <reports>
4147               <report>test-aggregate</report>
4148             </reports>
4149             <configuration>
4150               <doclet>
4151                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
4152               </doclet>
4153               <docletArtifact>
4154                 <groupId>org.apache.yetus</groupId>
4155                 <artifactId>audience-annotations</artifactId>
4156                 <version>${audience-annotations.version}</version>
4157               </docletArtifact>
4158               <useStandardDocletOptions>true</useStandardDocletOptions>
4159               <destDir>testapidocs</destDir>
4160               <name>User API</name>
4161               <description>The HBase Application Programmer's API</description>
4162               <excludePackageNames>
4163                 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*
4164               </excludePackageNames>
4165               <!-- switch on dependency-driven aggregation -->
4166               <includeDependencySources>false</includeDependencySources>
4167               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
4168               <show>protected</show> <!-- (shows only public and protected classes and members) -->
4169               <quiet>true</quiet>
4170               <linksource>true</linksource>
4171               <sourcetab>2</sourcetab>
4172               <validateLinks>true</validateLinks>
4173               <fixClassComment>true</fixClassComment>
4174               <fixFieldComment>true</fixFieldComment>
4175               <fixMethodComment>true</fixMethodComment>
4176               <fixTags>all</fixTags>
4177               <notimestamp>true</notimestamp>
4178               <locale>en_US</locale>
4179               <!-- Pass some options straight to the javadoc executable since it is easier -->
4180               <additionalJOption>-J-Xmx2G</additionalJOption>
4181               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4182               <additionalDependencies>
4183                 <additionalDependency>
4184                   <groupId>org.mockito</groupId>
4185                   <artifactId>mockito-core</artifactId>
4186                   <version>${mockito-core.version}</version>
4187                 </additionalDependency>
4188                 <additionalDependency>
4189                   <groupId>org.hamcrest</groupId>
4190                   <artifactId>hamcrest-core</artifactId>
4191                   <version>${hamcrest.version}</version>
4192                 </additionalDependency>
4193               </additionalDependencies>
4194               <inherited>false</inherited>
4195             </configuration>
4196           </reportSet>
4197         </reportSets>
4198       </plugin>
4200       <plugin>
4201         <groupId>org.apache.maven.plugins</groupId>
4202         <artifactId>maven-checkstyle-plugin</artifactId>
4203         <version>${maven.checkstyle.version}</version>
4204         <configuration>
4205           <excludes>target/**</excludes>
4206         </configuration>
4207       </plugin>
4209     </plugins>
4210   </reporting>
4211   <distributionManagement>
4212     <site>
4213       <id>hbase.apache.org</id>
4214       <name>HBase Website at hbase.apache.org</name>
4215       <!-- On why this is the tmp dir and not hbase.apache.org, see
4216                https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
4217                -->
4218       <url>file:///tmp</url>
4219     </site>
4220   </distributionManagement>
4221 </project>