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