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