HBASE-23216 Add 2.2.2 to download page (#758)
[hbase.git] / pom.xml
blob1beed4673a24d8a4dbd9b874e74e31b84e84ce13
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</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 be activated for release builds -->
2485     <profile>
2486       <id>release</id>
2487       <build>
2488         <plugins>
2489           <plugin>
2490             <groupId>org.apache.rat</groupId>
2491             <artifactId>apache-rat-plugin</artifactId>
2492             <executions>
2493               <execution>
2494                 <phase>package</phase>
2495                 <goals>
2496                   <goal>check</goal>
2497                 </goals>
2498               </execution>
2499             </executions>
2500           </plugin>
2501           <plugin>
2502             <groupId>org.apache.maven.plugins</groupId>
2503             <artifactId>maven-enforcer-plugin</artifactId>
2504             <version>${enforcer.version}</version>
2505             <dependencies>
2506               <dependency>
2507                 <groupId>org.codehaus.mojo</groupId>
2508                 <artifactId>extra-enforcer-rules</artifactId>
2509                 <version>${extra.enforcer.version}</version>
2510               </dependency>
2511             </dependencies>
2512             <configuration>
2513               <rules>
2514                 <enforceBytecodeVersion>
2515                 <maxJdkVersion>${compileSource}</maxJdkVersion>
2516                 <message>HBase has unsupported dependencies.
2517   HBase requires that all dependencies be compiled with version ${compileSource} or earlier
2518   of the JDK to properly build from source.  You appear to be using a newer dependency. You can use
2519   either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
2520   Non-release builds can temporarily build with a newer JDK version by setting the
2521   'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
2522                 </message>
2523                 <ignoreClasses>
2524                   <ignoreClass>module-info</ignoreClass>
2525                 </ignoreClasses>
2526               </enforceBytecodeVersion>
2527             </rules>
2528           </configuration>
2529           </plugin>
2530         </plugins>
2531       </build>
2532     </profile>
2533     <!-- Dependency management profiles for submodules when building against specific hadoop branches.-->
2534     <!-- Submodules that need hadoop dependencies should declare
2535     profiles with activation properties matching the profile here.
2536     Generally, it should be sufficient to copy the first
2537     few lines of the profile you want to match.  -->
2538     <!-- profile for building against Hadoop 2.0.x
2539          This is the default.
2540          -->
2541     <profile>
2542       <id>hadoop-2.0</id>
2543       <activation>
2544         <property>
2545           <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
2546           <!--h2--><name>!hadoop.profile</name>
2547         </property>
2548       </activation>
2549       <modules>
2550         <module>hbase-hadoop2-compat</module>
2551       </modules>
2552       <properties>
2553         <hadoop.version>${hadoop-two.version}</hadoop.version>
2554         <compat.module>hbase-hadoop2-compat</compat.module>
2555         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2556         <!--This property is for hadoops netty. HBase netty
2557              comes in via hbase-thirdparty hbase-shaded-netty-->
2558         <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
2559       </properties>
2560       <dependencyManagement>
2561         <dependencies>
2562           <dependency>
2563             <groupId>org.apache.hadoop</groupId>
2564             <artifactId>hadoop-mapreduce-client-core</artifactId>
2565             <version>${hadoop-two.version}</version>
2566             <exclusions>
2567               <exclusion>
2568                 <groupId>com.sun.jersey</groupId>
2569                 <artifactId>jersey-core</artifactId>
2570               </exclusion>
2571               <exclusion>
2572                 <groupId>org.codehaus.jackson</groupId>
2573                 <artifactId>jackson-jaxrs</artifactId>
2574               </exclusion>
2575               <exclusion>
2576                 <groupId>org.codehaus.jackson</groupId>
2577                 <artifactId>jackson-xc</artifactId>
2578               </exclusion>
2579               <exclusion>
2580                 <groupId>io.netty</groupId>
2581                 <artifactId>netty</artifactId>
2582               </exclusion>
2583               <exclusion>
2584                 <groupId>javax.servlet</groupId>
2585                 <artifactId>servlet-api</artifactId>
2586               </exclusion>
2587               <exclusion>
2588                 <groupId>javax.inject</groupId>
2589                 <artifactId>javax.inject</artifactId>
2590               </exclusion>
2591               <exclusion>
2592                 <groupId>org.codehaus.jackson</groupId>
2593                 <artifactId>jackson-core-asl</artifactId>
2594               </exclusion>
2595               <exclusion>
2596                 <groupId>org.codehaus.jackson</groupId>
2597                 <artifactId>jackson-mapper-asl</artifactId>
2598               </exclusion>
2599             </exclusions>
2600           </dependency>
2601           <dependency>
2602             <groupId>org.apache.hadoop</groupId>
2603             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2604             <version>${hadoop-two.version}</version>
2605             <exclusions>
2606               <exclusion>
2607                 <groupId>com.sun.jersey</groupId>
2608                 <artifactId>jersey-core</artifactId>
2609               </exclusion>
2610               <exclusion>
2611                 <groupId>io.netty</groupId>
2612                 <artifactId>netty</artifactId>
2613               </exclusion>
2614               <exclusion>
2615                 <groupId>javax.servlet</groupId>
2616                 <artifactId>servlet-api</artifactId>
2617               </exclusion>
2618             </exclusions>
2619           </dependency>
2620           <dependency>
2621             <groupId>org.apache.hadoop</groupId>
2622             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2623             <version>${hadoop-two.version}</version>
2624             <type>test-jar</type>
2625             <scope>test</scope>
2626             <exclusions>
2627               <exclusion>
2628                 <groupId>com.sun.jersey</groupId>
2629                 <artifactId>jersey-core</artifactId>
2630               </exclusion>
2631               <exclusion>
2632                 <groupId>io.netty</groupId>
2633                 <artifactId>netty</artifactId>
2634               </exclusion>
2635               <exclusion>
2636                 <groupId>javax.servlet</groupId>
2637                 <artifactId>servlet-api</artifactId>
2638               </exclusion>
2639             </exclusions>
2640           </dependency>
2641           <dependency>
2642             <groupId>org.apache.hadoop</groupId>
2643             <artifactId>hadoop-hdfs</artifactId>
2644             <version>${hadoop-two.version}</version>
2645             <exclusions>
2646               <exclusion>
2647                 <groupId>com.sun.jersey</groupId>
2648                 <artifactId>jersey-core</artifactId>
2649               </exclusion>
2650               <exclusion>
2651                 <groupId>javax.servlet.jsp</groupId>
2652                 <artifactId>jsp-api</artifactId>
2653               </exclusion>
2654               <exclusion>
2655                 <groupId>javax.servlet</groupId>
2656                 <artifactId>servlet-api</artifactId>
2657               </exclusion>
2658               <exclusion>
2659                 <groupId>io.netty</groupId>
2660                 <artifactId>netty</artifactId>
2661               </exclusion>
2662               <exclusion>
2663                 <groupId>stax</groupId>
2664                 <artifactId>stax-api</artifactId>
2665               </exclusion>
2666               <exclusion>
2667                 <groupId>xerces</groupId>
2668                 <artifactId>xercesImpl</artifactId>
2669               </exclusion>
2670               <exclusion>
2671                 <groupId>org.codehaus.jackson</groupId>
2672                 <artifactId>jackson-core-asl</artifactId>
2673               </exclusion>
2674               <exclusion>
2675                 <groupId>org.codehaus.jackson</groupId>
2676                 <artifactId>jackson-mapper-asl</artifactId>
2677               </exclusion>
2678               <exclusion>
2679                 <groupId>com.google.guava</groupId>
2680                 <artifactId>guava</artifactId>
2681               </exclusion>
2682             </exclusions>
2683           </dependency>
2684           <dependency>
2685             <groupId>org.apache.hadoop</groupId>
2686             <artifactId>hadoop-hdfs</artifactId>
2687             <version>${hadoop-two.version}</version>
2688             <type>test-jar</type>
2689             <scope>test</scope>
2690             <exclusions>
2691               <exclusion>
2692                 <groupId>javax.servlet.jsp</groupId>
2693                 <artifactId>jsp-api</artifactId>
2694               </exclusion>
2695               <exclusion>
2696                 <groupId>javax.servlet</groupId>
2697                 <artifactId>servlet-api</artifactId>
2698               </exclusion>
2699               <exclusion>
2700                 <groupId>io.netty</groupId>
2701                 <artifactId>netty</artifactId>
2702               </exclusion>
2703               <exclusion>
2704                 <groupId>stax</groupId>
2705                 <artifactId>stax-api</artifactId>
2706               </exclusion>
2707               <exclusion>
2708                 <groupId>xerces</groupId>
2709                 <artifactId>xercesImpl</artifactId>
2710               </exclusion>
2711               <exclusion>
2712                 <groupId>org.codehaus.jackson</groupId>
2713                 <artifactId>jackson-core-asl</artifactId>
2714               </exclusion>
2715               <exclusion>
2716                 <groupId>org.codehaus.jackson</groupId>
2717                 <artifactId>jackson-mapper-asl</artifactId>
2718               </exclusion>
2719               <exclusion>
2720                 <groupId>com.google.guava</groupId>
2721                 <artifactId>guava</artifactId>
2722               </exclusion>
2723               <exclusion>
2724                 <groupId>com.sun.jersey</groupId>
2725                 <artifactId>jersey-core</artifactId>
2726               </exclusion>
2727             </exclusions>
2728           </dependency>
2729           <dependency>
2730             <groupId>org.apache.hadoop</groupId>
2731             <artifactId>hadoop-auth</artifactId>
2732             <version>${hadoop-two.version}</version>
2733             <exclusions>
2734               <exclusion>
2735                 <groupId>com.google.guava</groupId>
2736                 <artifactId>guava</artifactId>
2737               </exclusion>
2738               <exclusion>
2739                 <groupId>net.minidev</groupId>
2740                 <artifactId>json-smart</artifactId>
2741               </exclusion>
2742             </exclusions>
2743           </dependency>
2744           <dependency>
2745             <groupId>org.apache.hadoop</groupId>
2746             <artifactId>hadoop-common</artifactId>
2747             <version>${hadoop-two.version}</version>
2748             <exclusions>
2749               <exclusion>
2750                 <groupId>com.sun.jersey</groupId>
2751                 <artifactId>jersey-core</artifactId>
2752               </exclusion>
2753               <exclusion>
2754                 <groupId>org.codehaus.jackson</groupId>
2755                 <artifactId>jackson-jaxrs</artifactId>
2756               </exclusion>
2757               <exclusion>
2758                 <groupId>org.codehaus.jackson</groupId>
2759                 <artifactId>jackson-xc</artifactId>
2760               </exclusion>
2761               <exclusion>
2762                 <groupId>commons-beanutils</groupId>
2763                 <artifactId>commons-beanutils</artifactId>
2764               </exclusion>
2765               <exclusion>
2766                 <groupId>javax.servlet.jsp</groupId>
2767                 <artifactId>jsp-api</artifactId>
2768               </exclusion>
2769               <exclusion>
2770                 <groupId>javax.servlet</groupId>
2771                 <artifactId>servlet-api</artifactId>
2772               </exclusion>
2773               <exclusion>
2774                 <groupId>stax</groupId>
2775                 <artifactId>stax-api</artifactId>
2776               </exclusion>
2777               <exclusion>
2778                 <groupId>io.netty</groupId>
2779                 <artifactId>netty</artifactId>
2780               </exclusion>
2781               <exclusion>
2782                 <groupId>com.google.code.findbugs</groupId>
2783                 <artifactId>jsr305</artifactId>
2784               </exclusion>
2785               <exclusion>
2786                 <groupId>junit</groupId>
2787                 <artifactId>junit</artifactId>
2788               </exclusion>
2789              <exclusion>
2790                <groupId>org.codehaus.jackson</groupId>
2791                <artifactId>jackson-core-asl</artifactId>
2792              </exclusion>
2793              <exclusion>
2794                <groupId>org.codehaus.jackson</groupId>
2795                <artifactId>jackson-mapper-asl</artifactId>
2796              </exclusion>
2797             </exclusions>
2798           </dependency>
2799           <dependency>
2800             <groupId>org.apache.hadoop</groupId>
2801             <artifactId>hadoop-common</artifactId>
2802             <version>${hadoop-two.version}</version>
2803             <type>test-jar</type>
2804             <scope>test</scope>
2805             <exclusions>
2806               <exclusion>
2807                 <groupId>com.sun.jersey</groupId>
2808                 <artifactId>jersey-core</artifactId>
2809               </exclusion>
2810               <exclusion>
2811                 <groupId>com.google.code.findbugs</groupId>
2812                 <artifactId>jsr305</artifactId>
2813               </exclusion>
2814               <exclusion>
2815                 <groupId>org.codehaus.jackson</groupId>
2816                 <artifactId>jackson-jaxrs</artifactId>
2817               </exclusion>
2818               <exclusion>
2819                 <groupId>org.codehaus.jackson</groupId>
2820                 <artifactId>jackson-xc</artifactId>
2821               </exclusion>
2822             </exclusions>
2823           </dependency>
2824           <dependency>
2825             <groupId>org.apache.hadoop</groupId>
2826             <artifactId>hadoop-client</artifactId>
2827             <version>${hadoop-two.version}</version>
2828           </dependency>
2829           <!-- This was marked as test dep in earlier pom, but was scoped compile.
2830             Where do we actually need it? -->
2831           <dependency>
2832             <groupId>org.apache.hadoop</groupId>
2833             <artifactId>hadoop-minicluster</artifactId>
2834             <version>${hadoop-two.version}</version>
2835             <exclusions>
2836               <!--If we comment this in, a few tests in hbase-mapreduce
2837                    fail. They depend on jersey-core somehow. But excluding
2838                    jersey-core here messes up hbase-it because jersey-core
2839                    implements a 1.x jaxrs Response Interface when we depend
2840                    on the 2.x Interface... . Letting this jar come in
2841                    transitively here but will exclude it down in hbase-it.
2842                    See HBASE-22029.
2843               <exclusion>
2844                 <groupId>com.sun.jersey</groupId>
2845                 <artifactId>jersey-core</artifactId>
2846               </exclusion>
2847               -->
2848               <exclusion>
2849                 <groupId>commons-httpclient</groupId>
2850                 <artifactId>commons-httpclient</artifactId>
2851               </exclusion>
2852               <exclusion>
2853                 <groupId>javax.servlet.jsp</groupId>
2854                 <artifactId>jsp-api</artifactId>
2855               </exclusion>
2856               <exclusion>
2857                 <groupId>javax.servlet</groupId>
2858                 <artifactId>servlet-api</artifactId>
2859               </exclusion>
2860               <exclusion>
2861                 <groupId>stax</groupId>
2862                 <artifactId>stax-api</artifactId>
2863               </exclusion>
2864               <exclusion>
2865                 <groupId>io.netty</groupId>
2866                 <artifactId>netty</artifactId>
2867               </exclusion>
2868               <exclusion>
2869                 <groupId>com.google.code.findbugs</groupId>
2870                 <artifactId>jsr305</artifactId>
2871               </exclusion>
2872             </exclusions>
2873           </dependency>
2874           <dependency>
2875             <groupId>org.apache.hadoop</groupId>
2876             <artifactId>hadoop-minikdc</artifactId>
2877             <version>${hadoop-two.version}</version>
2878             <scope>test</scope>
2879           </dependency>
2880          <dependency>
2881            <groupId>org.apache.hadoop</groupId>
2882            <artifactId>hadoop-annotations</artifactId>
2883            <version>${hadoop-two.version}</version>
2884          </dependency>
2885         </dependencies>
2886       </dependencyManagement>
2887     </profile>
2888     <!--
2889       profile for building against Hadoop 3.0.0. Activate using:
2890        mvn -Dhadoop.profile=3.0
2891     -->
2892     <profile>
2893       <id>hadoop-3.0</id>
2894       <activation>
2895         <property>
2896           <name>hadoop.profile</name>
2897           <value>3.0</value>
2898         </property>
2899       </activation>
2900       <modules>
2901         <!--For now, use hadoop2 compat module-->
2902         <module>hbase-hadoop2-compat</module>
2903       </modules>
2904       <properties>
2905         <hadoop.version>${hadoop-three.version}</hadoop.version>
2906         <!--Use this compat module for now. TODO: Make h3 one if we need one-->
2907         <compat.module>hbase-hadoop2-compat</compat.module>
2908         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2909         <!--This property is for hadoops netty. HBase netty
2910              comes in via hbase-thirdparty hbase-shaded-netty-->
2911         <netty.hadoop.version>3.10.5.Final</netty.hadoop.version>
2912       </properties>
2913      <dependencyManagement>
2914        <dependencies>
2915          <dependency>
2916            <groupId>org.apache.hadoop</groupId>
2917            <artifactId>hadoop-mapreduce-client-core</artifactId>
2918            <version>${hadoop-three.version}</version>
2919            <exclusions>
2920              <exclusion>
2921                <groupId>com.sun.jersey</groupId>
2922                <artifactId>jersey-core</artifactId>
2923              </exclusion>
2924              <exclusion>
2925                <groupId>org.codehaus.jackson</groupId>
2926                <artifactId>jackson-jaxrs</artifactId>
2927              </exclusion>
2928              <exclusion>
2929                <groupId>org.codehaus.jackson</groupId>
2930                <artifactId>jackson-xc</artifactId>
2931              </exclusion>
2932              <exclusion>
2933                <groupId>io.netty</groupId>
2934                <artifactId>netty</artifactId>
2935              </exclusion>
2936               <exclusion>
2937                 <groupId>javax.inject</groupId>
2938                 <artifactId>javax.inject</artifactId>
2939               </exclusion>
2940               <exclusion>
2941                 <groupId>org.codehaus.jackson</groupId>
2942                 <artifactId>jackson-core-asl</artifactId>
2943               </exclusion>
2944               <exclusion>
2945                 <groupId>org.codehaus.jackson</groupId>
2946                 <artifactId>jackson-mapper-asl</artifactId>
2947               </exclusion>
2948              <exclusion>
2949                <groupId>com.google.guava</groupId>
2950                <artifactId>guava</artifactId>
2951              </exclusion>
2952            </exclusions>
2953          </dependency>
2954          <dependency>
2955            <groupId>org.apache.hadoop</groupId>
2956            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2957            <version>${hadoop-three.version}</version>
2958            <exclusions>
2959              <exclusion>
2960                <groupId>com.sun.jersey</groupId>
2961                <artifactId>jersey-core</artifactId>
2962              </exclusion>
2963              <exclusion>
2964                <groupId>io.netty</groupId>
2965                <artifactId>netty</artifactId>
2966              </exclusion>
2967            </exclusions>
2968          </dependency>
2969          <dependency>
2970            <groupId>org.apache.hadoop</groupId>
2971            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2972            <version>${hadoop-three.version}</version>
2973            <type>test-jar</type>
2974            <scope>test</scope>
2975            <exclusions>
2976              <exclusion>
2977                <groupId>com.sun.jersey</groupId>
2978                <artifactId>jersey-core</artifactId>
2979              </exclusion>
2980              <exclusion>
2981                <groupId>io.netty</groupId>
2982                <artifactId>netty</artifactId>
2983              </exclusion>
2984            </exclusions>
2985          </dependency>
2986          <dependency>
2987            <groupId>org.apache.hadoop</groupId>
2988            <artifactId>hadoop-hdfs</artifactId>
2989            <version>${hadoop-three.version}</version>
2990            <exclusions>
2991              <exclusion>
2992                <groupId>com.sun.jersey</groupId>
2993                <artifactId>jersey-core</artifactId>
2994              </exclusion>
2995              <exclusion>
2996                <groupId>com.sun.jersey</groupId>
2997                <artifactId>jersey-server</artifactId>
2998              </exclusion>
2999              <exclusion>
3000                <groupId>javax.servlet.jsp</groupId>
3001                <artifactId>jsp-api</artifactId>
3002              </exclusion>
3003              <exclusion>
3004                <groupId>javax.servlet</groupId>
3005                <artifactId>servlet-api</artifactId>
3006              </exclusion>
3007              <exclusion>
3008                <groupId>stax</groupId>
3009                <artifactId>stax-api</artifactId>
3010              </exclusion>
3011              <exclusion>
3012                <groupId>xerces</groupId>
3013                <artifactId>xercesImpl</artifactId>
3014              </exclusion>
3015              <exclusion>
3016                <groupId>org.codehaus.jackson</groupId>
3017                <artifactId>jackson-core-asl</artifactId>
3018              </exclusion>
3019              <exclusion>
3020                <groupId>org.codehaus.jackson</groupId>
3021                <artifactId>jackson-mapper-asl</artifactId>
3022              </exclusion>
3023               <exclusion>
3024                 <groupId>com.google.guava</groupId>
3025                 <artifactId>guava</artifactId>
3026               </exclusion>
3027            </exclusions>
3028          </dependency>
3029          <dependency>
3030            <groupId>org.apache.hadoop</groupId>
3031            <artifactId>hadoop-hdfs</artifactId>
3032            <version>${hadoop-three.version}</version>
3033            <type>test-jar</type>
3034            <scope>test</scope>
3035            <exclusions>
3036              <exclusion>
3037                <groupId>javax.servlet.jsp</groupId>
3038                <artifactId>jsp-api</artifactId>
3039              </exclusion>
3040              <exclusion>
3041                <groupId>javax.servlet</groupId>
3042                <artifactId>servlet-api</artifactId>
3043              </exclusion>
3044              <exclusion>
3045                <groupId>stax</groupId>
3046                <artifactId>stax-api</artifactId>
3047              </exclusion>
3048              <exclusion>
3049                <groupId>xerces</groupId>
3050                <artifactId>xercesImpl</artifactId>
3051              </exclusion>
3052              <exclusion>
3053                <groupId>org.codehaus.jackson</groupId>
3054                <artifactId>jackson-core-asl</artifactId>
3055              </exclusion>
3056              <exclusion>
3057                <groupId>org.codehaus.jackson</groupId>
3058                <artifactId>jackson-mapper-asl</artifactId>
3059              </exclusion>
3060              <exclusion>
3061                <groupId>com.google.guava</groupId>
3062                <artifactId>guava</artifactId>
3063              </exclusion>
3064              <exclusion>
3065                <groupId>com.sun.jersey</groupId>
3066                <artifactId>jersey-core</artifactId>
3067              </exclusion>
3068            </exclusions>
3069          </dependency>
3070          <dependency>
3071            <groupId>org.apache.hadoop</groupId>
3072            <artifactId>hadoop-hdfs</artifactId>
3073            <version>${hadoop-three.version}</version>
3074            <type>test-jar</type>
3075            <classifier>tests</classifier>
3076            <scope>test</scope>
3077            <exclusions>
3078              <exclusion>
3079                <groupId>com.sun.jersey</groupId>
3080                <artifactId>jersey-core</artifactId>
3081              </exclusion>
3082            </exclusions>
3083          </dependency>
3084          <dependency>
3085            <groupId>org.apache.hadoop</groupId>
3086            <artifactId>hadoop-auth</artifactId>
3087            <version>${hadoop-three.version}</version>
3088            <exclusions>
3089              <exclusion>
3090                <groupId>com.google.guava</groupId>
3091                <artifactId>guava</artifactId>
3092              </exclusion>
3093              <exclusion>
3094                <groupId>net.minidev</groupId>
3095                <artifactId>json-smart</artifactId>
3096              </exclusion>
3097            </exclusions>
3098          </dependency>
3099          <dependency>
3100            <groupId>org.apache.hadoop</groupId>
3101            <artifactId>hadoop-common</artifactId>
3102            <version>${hadoop-three.version}</version>
3103            <exclusions>
3104              <exclusion>
3105                <groupId>com.sun.jersey</groupId>
3106                <artifactId>jersey-core</artifactId>
3107              </exclusion>
3108              <exclusion>
3109                <groupId>com.sun.jersey</groupId>
3110                <artifactId>jersey-json</artifactId>
3111              </exclusion>
3112              <exclusion>
3113                <groupId>com.sun.jersey</groupId>
3114                <artifactId>jersey-servlet</artifactId>
3115              </exclusion>
3116              <exclusion>
3117               <groupId>com.sun.jersey</groupId>
3118                <artifactId>jersey-server</artifactId>
3119              </exclusion>
3120              <exclusion>
3121                <groupId>javax.servlet.jsp</groupId>
3122                <artifactId>jsp-api</artifactId>
3123              </exclusion>
3124              <exclusion>
3125                <groupId>javax.servlet</groupId>
3126                <artifactId>javax.servlet-api</artifactId>
3127              </exclusion>
3128              <exclusion>
3129                <groupId>stax</groupId>
3130                <artifactId>stax-api</artifactId>
3131              </exclusion>
3132              <exclusion>
3133                <groupId>io.netty</groupId>
3134                <artifactId>netty</artifactId>
3135              </exclusion>
3136              <exclusion>
3137                <groupId>com.google.code.findbugs</groupId>
3138                <artifactId>jsr305</artifactId>
3139              </exclusion>
3140              <exclusion>
3141                <groupId>junit</groupId>
3142                <artifactId>junit</artifactId>
3143              </exclusion>
3144              <exclusion>
3145                <groupId>org.codehause.jackson</groupId>
3146                <artifactId>jackson-core-asl</artifactId>
3147              </exclusion>
3148              <exclusion>
3149                <groupId>org.codehause.jackson</groupId>
3150                <artifactId>jackson-mapper-asl</artifactId>
3151              </exclusion>
3152            </exclusions>
3153          </dependency>
3154          <dependency>
3155            <groupId>org.apache.hadoop</groupId>
3156            <artifactId>hadoop-common</artifactId>
3157            <type>test-jar</type>
3158            <classifier>tests</classifier>
3159            <version>${hadoop-three.version}</version>
3160            <exclusions>
3161              <exclusion>
3162                <groupId>com.sun.jersey</groupId>
3163                <artifactId>jersey-core</artifactId>
3164              </exclusion>
3165              <exclusion>
3166                <groupId>com.google.code.findbugs</groupId>
3167                <artifactId>jsr305</artifactId>
3168              </exclusion>
3169            </exclusions>
3170          </dependency>
3171          <dependency>
3172            <groupId>org.apache.hadoop</groupId>
3173            <artifactId>hadoop-client</artifactId>
3174            <version>${hadoop-three.version}</version>
3175          </dependency>
3176          <dependency>
3177            <groupId>org.apache.hadoop</groupId>
3178            <artifactId>hadoop-annotations</artifactId>
3179            <version>${hadoop-three.version}</version>
3180          </dependency>
3181          <!-- This was marked as test dep in earlier pom, but was scoped compile.
3182            Where do we actually need it? -->
3183          <dependency>
3184            <groupId>org.apache.hadoop</groupId>
3185            <artifactId>hadoop-minicluster</artifactId>
3186            <version>${hadoop-three.version}</version>
3187            <exclusions>
3188               <!--If we comment this in, a few tests in hbase-mapreduce
3189                    fail. They depend on jersey-core somehow. But excluding
3190                    jersey-core here messes up hbase-it because jersey-core
3191                    implements a 1.x jaxrs Response Interface when we depend
3192                    on the 2.x Interface... . Letting this jar come in
3193                    transitively here but will exclude it down in hbase-it.
3194                    See HBASE-22029.
3195              <exclusion>
3196                <groupId>com.sun.jersey</groupId>
3197                <artifactId>jersey-core</artifactId>
3198              </exclusion>
3199              -->
3200              <exclusion>
3201                <groupId>commons-httpclient</groupId>
3202                <artifactId>commons-httpclient</artifactId>
3203              </exclusion>
3204              <exclusion>
3205                <groupId>javax.servlet.jsp</groupId>
3206                <artifactId>jsp-api</artifactId>
3207              </exclusion>
3208              <exclusion>
3209                <groupId>javax.servlet</groupId>
3210                <artifactId>servlet-api</artifactId>
3211              </exclusion>
3212              <exclusion>
3213                <groupId>stax</groupId>
3214                <artifactId>stax-api</artifactId>
3215              </exclusion>
3216              <exclusion>
3217                <groupId>io.netty</groupId>
3218                <artifactId>netty</artifactId>
3219              </exclusion>
3220              <exclusion>
3221                <groupId>com.google.code.findbugs</groupId>
3222                <artifactId>jsr305</artifactId>
3223              </exclusion>
3224            </exclusions>
3225          </dependency>
3226          <dependency>
3227             <groupId>org.apache.hadoop</groupId>
3228             <artifactId>hadoop-minikdc</artifactId>
3229             <version>${hadoop-three.version}</version>
3230             <scope>test</scope>
3231           </dependency>
3232        </dependencies>
3233      </dependencyManagement>
3235     </profile>
3236     <!-- profiles for the tests
3237          See as well the properties of the project for the values
3238          when no profile is active.     -->
3239     <profile>
3240       <!-- Use it to launch all tests in the same JVM  -->
3241       <id>singleJVMTests</id>
3242       <activation>
3243         <activeByDefault>false</activeByDefault>
3244       </activation>
3245       <properties>
3246         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3247         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3248         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3249         <surefire.firstPartGroups/>
3250       </properties>
3251     </profile>
3252     <profile>
3253       <!-- Use it to launch small tests only -->
3254       <id>runSmallTests</id>
3255       <activation>
3256         <activeByDefault>false</activeByDefault>
3257       </activation>
3258       <properties>
3259         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3260         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3261         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3262         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3263         <surefire.secondPartGroups/>
3264       </properties>
3265     </profile>
3266     <profile>
3267       <!-- Use it to launch medium tests only -->
3268       <id>runMediumTests</id>
3269       <activation>
3270         <activeByDefault>false</activeByDefault>
3271       </activation>
3272       <properties>
3273         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3274         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3275         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.firstPartGroups>
3276         <surefire.secondPartGroups/>
3277       </properties>
3278     </profile>
3279     <profile>
3280       <!-- Use it to launch large tests only -->
3281       <id>runLargeTests</id>
3282       <activation>
3283         <activeByDefault>false</activeByDefault>
3284       </activation>
3285       <properties>
3286         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3287         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3288         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.LargeTests</surefire.firstPartGroups>
3289         <surefire.secondPartGroups/>
3290       </properties>
3291     </profile>
3292     <profile>
3293       <!-- Use it to launch small & medium tests -->
3294       <id>runDevTests</id>
3295       <activation>
3296         <activeByDefault>false</activeByDefault>
3297       </activation>
3298       <properties>
3299         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3300         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3301         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3302         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3303         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
3304       </properties>
3305     </profile>
3306     <profile>
3307       <!-- Use it to launch all tests -->
3308       <id>runAllTests</id>
3309       <activation>
3310         <activeByDefault>false</activeByDefault>
3311       </activation>
3312       <properties>
3313         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3314         <surefire.secondPartForkCount>5</surefire.secondPartForkCount>
3315         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3316         <surefire.skipSecondPart>false</surefire.skipSecondPart>
3317         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
3318         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests,org.apache.hadoop.hbase.testclassification.LargeTests</surefire.secondPartGroups>
3319       </properties>
3320     </profile>
3321     <profile>
3322       <id>runMiscTests</id>
3323       <activation>
3324         <activeByDefault>false</activeByDefault>
3325       </activation>
3326       <properties>
3327         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3328         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3329         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3330         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3331         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests
3332         </surefire.firstPartGroups>
3333         <surefire.secondPartGroups></surefire.secondPartGroups>
3334       </properties>
3335     </profile>
3336     <profile>
3337       <id>runCoprocessorTests</id>
3338       <activation>
3339         <activeByDefault>false</activeByDefault>
3340       </activation>
3341       <properties>
3342         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3343         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3344         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3345         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3346         <surefire.firstPartGroups>
3347           org.apache.hadoop.hbase.testclassification.CoprocessorTests
3348         </surefire.firstPartGroups>
3349         <surefire.secondPartGroups></surefire.secondPartGroups>
3350       </properties>
3351     </profile>
3352     <profile>
3353       <id>runClientTests</id>
3354       <activation>
3355         <activeByDefault>false</activeByDefault>
3356       </activation>
3357       <properties>
3358         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3359         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3360         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3361         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3362         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests
3363         </surefire.firstPartGroups>
3364         <surefire.secondPartGroups></surefire.secondPartGroups>
3365       </properties>
3366     </profile>
3367     <profile>
3368       <id>runMasterTests</id>
3369       <activation>
3370         <activeByDefault>false</activeByDefault>
3371       </activation>
3372       <properties>
3373         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3374         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3375         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3376         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3377         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests
3378         </surefire.firstPartGroups>
3379         <surefire.secondPartGroups></surefire.secondPartGroups>
3380       </properties>
3381     </profile>
3382     <profile>
3383       <id>runMapredTests</id>
3384       <activation>
3385         <activeByDefault>false</activeByDefault>
3386       </activation>
3387       <properties>
3388         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3389         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3390         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3391         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3392         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests
3393         </surefire.firstPartGroups>
3394         <surefire.secondPartGroups></surefire.secondPartGroups>
3395       </properties>
3396     </profile>
3397     <profile>
3398       <id>runMapreduceTests</id>
3399       <activation>
3400         <activeByDefault>false</activeByDefault>
3401       </activation>
3402       <properties>
3403         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3404         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3405         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3406         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3407         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests
3408         </surefire.firstPartGroups>
3409         <surefire.secondPartGroups></surefire.secondPartGroups>
3410       </properties>
3411     </profile>
3412     <profile>
3413       <id>runRegionServerTests</id>
3414       <activation>
3415         <activeByDefault>false</activeByDefault>
3416       </activation>
3417       <properties>
3418         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3419         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3420         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3421         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3422         <surefire.firstPartGroups>
3423           org.apache.hadoop.hbase.testclassification.RegionServerTests
3424         </surefire.firstPartGroups>
3425         <surefire.secondPartGroups></surefire.secondPartGroups>
3426       </properties>
3427     </profile>
3428     <profile>
3429       <id>runVerySlowMapReduceTests</id>
3430       <activation>
3431         <activeByDefault>false</activeByDefault>
3432       </activation>
3433       <properties>
3434         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3435         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3436         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3437         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3438         <surefire.firstPartGroups>
3439           org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests
3440         </surefire.firstPartGroups>
3441         <surefire.secondPartGroups></surefire.secondPartGroups>
3442       </properties>
3443     </profile>
3445     <profile>
3446       <id>runVerySlowRegionServerTests</id>
3447       <activation>
3448         <activeByDefault>false</activeByDefault>
3449       </activation>
3450       <properties>
3451         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
3452         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3453         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3454         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3455         <surefire.firstPartGroups>
3456           org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests
3457         </surefire.firstPartGroups>
3458         <surefire.secondPartGroups></surefire.secondPartGroups>
3459       </properties>
3460     </profile>
3462     <profile>
3463       <id>runFilterTests</id>
3464       <activation>
3465         <activeByDefault>false</activeByDefault>
3466       </activation>
3467       <properties>
3468         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3469         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3470         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3471         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3472         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests
3473         </surefire.firstPartGroups>
3474         <surefire.secondPartGroups></surefire.secondPartGroups>
3475       </properties>
3476     </profile>
3477     <profile>
3478       <id>runIOTests</id>
3479       <activation>
3480         <activeByDefault>false</activeByDefault>
3481       </activation>
3482       <properties>
3483         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3484         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3485         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3486         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3487         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests
3488         </surefire.firstPartGroups>
3489         <surefire.secondPartGroups></surefire.secondPartGroups>
3490       </properties>
3491     </profile>
3492     <profile>
3493       <id>runRestTests</id>
3494       <activation>
3495         <activeByDefault>false</activeByDefault>
3496       </activation>
3497       <properties>
3498         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3499         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3500         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3501         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3502         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests
3503         </surefire.firstPartGroups>
3504         <surefire.secondPartGroups></surefire.secondPartGroups>
3505       </properties>
3506     </profile>
3507     <profile>
3508       <id>runRPCTests</id>
3509       <activation>
3510         <activeByDefault>false</activeByDefault>
3511       </activation>
3512       <properties>
3513         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3514         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3515         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3516         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3517         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests
3518         </surefire.firstPartGroups>
3519         <surefire.secondPartGroups></surefire.secondPartGroups>
3520       </properties>
3521     </profile>
3522     <profile>
3523       <id>runReplicationTests</id>
3524       <activation>
3525         <activeByDefault>false</activeByDefault>
3526       </activation>
3527       <properties>
3528         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3529         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3530         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3531         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3532         <surefire.firstPartGroups>
3533           org.apache.hadoop.hbase.testclassification.ReplicationTests
3534         </surefire.firstPartGroups>
3535         <surefire.secondPartGroups></surefire.secondPartGroups>
3536       </properties>
3537     </profile>
3538     <profile>
3539       <id>runSecurityTests</id>
3540       <activation>
3541         <activeByDefault>false</activeByDefault>
3542       </activation>
3543       <properties>
3544         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3545         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3546         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3547         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3548         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests
3549         </surefire.firstPartGroups>
3550         <surefire.secondPartGroups></surefire.secondPartGroups>
3551       </properties>
3552     </profile>
3553     <profile>
3554       <id>runFlakeyTests</id>
3555       <activation>
3556         <activeByDefault>false</activeByDefault>
3557       </activation>
3558       <properties>
3559         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3560         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3561         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3562         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3563         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests
3564         </surefire.firstPartGroups>
3565         <surefire.secondPartGroups></surefire.secondPartGroups>
3566       </properties>
3567     </profile>
3568     <profile>
3569       <id>runZKTests</id>
3570       <activation>
3571         <activeByDefault>false</activeByDefault>
3572       </activation>
3573       <properties>
3574         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3575         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3576         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3577         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3578         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests
3579         </surefire.firstPartGroups>
3580         <surefire.secondPartGroups></surefire.secondPartGroups>
3581       </properties>
3582     </profile>
3584     <profile>
3585       <!-- Use it to launch tests locally-->
3586       <id>localTests</id>
3587       <activation>
3588         <property>
3589           <name>test</name>
3590         </property>
3591       </activation>
3592       <properties>
3593         <surefire.provider>surefire-junit4</surefire.provider>
3594         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3595         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3596         <surefire.firstPartGroups/>
3597       </properties>
3598     </profile>
3599     <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
3600          or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
3601          the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
3602          The report will be generated under target/site/clover/index.html when you run
3603          MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
3604     <profile>
3605       <id>clover</id>
3606       <activation>
3607         <activeByDefault>false</activeByDefault>
3608         <property>
3609           <name>clover</name>
3610         </property>
3611       </activation>
3612       <properties>
3613         <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
3614       </properties>
3615       <build>
3616         <plugins>
3617         <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
3618              our instrumented classes for the doclet will fail
3619           -->
3620           <plugin>
3621             <groupId>org.apache.maven.plugins</groupId>
3622             <artifactId>maven-javadoc-plugin</artifactId>
3623             <dependencies>
3624               <dependency>
3625                 <groupId>com.atlassian.maven.plugins</groupId>
3626                 <artifactId>maven-clover2-plugin</artifactId>
3627                 <version>${clover.version}</version>
3628               </dependency>
3629             </dependencies>
3630           </plugin>
3631           <plugin>
3632             <groupId>com.atlassian.maven.plugins</groupId>
3633             <artifactId>maven-clover2-plugin</artifactId>
3634             <version>${clover.version}</version>
3635             <configuration>
3636               <includesAllSourceRoots>true</includesAllSourceRoots>
3637               <includesTestSourceRoots>true</includesTestSourceRoots>
3638               <targetPercentage>50%</targetPercentage>
3639               <generateHtml>true</generateHtml>
3640               <generateXml>true</generateXml>
3641               <excludes>
3642                 <exclude>**/generated/**</exclude>
3643               </excludes>
3644             </configuration>
3645             <executions>
3646               <execution>
3647                 <id>clover-setup</id>
3648                 <phase>process-sources</phase>
3649                 <goals>
3650                   <goal>setup</goal>
3651                 </goals>
3652               </execution>
3653               <execution>
3654                 <id>clover</id>
3655                 <phase>site</phase>
3656                 <goals>
3657                   <goal>clover</goal>
3658                 </goals>
3659               </execution>
3660             </executions>
3661           </plugin>
3662         </plugins>
3663       </build>
3664     </profile>
3665     <profile>
3666       <!-- Used by the website generation script on jenkins to
3667            do a local install of the jars we need to run a normal
3668            site build w/o forking.
3669         -->
3670       <id>site-install-step</id>
3671       <properties>
3672         <skipTests>true</skipTests>
3673         <maven.javadoc.skip>true</maven.javadoc.skip>
3674         <enforcer.skip>true</enforcer.skip>
3675         <checkstyle.skip>true</checkstyle.skip>
3676         <findbugs.skip>true</findbugs.skip>
3677         <warbucks.skip>true</warbucks.skip>
3678       </properties>
3679     </profile>
3680     <profile>
3681       <!-- Used by the website generation script on jenkins to
3682            mitigate the impact of unneeded build forks while building
3683            our javadocs.
3684         -->
3685       <id>site-build-step</id>
3686       <properties>
3687         <skipTests>true</skipTests>
3688         <enforcer.skip>true</enforcer.skip>
3689         <maven.main.skip>true</maven.main.skip>
3690         <maven.test.skip>true</maven.test.skip>
3691         <warbucks.skip>true</warbucks.skip>
3692         <protoc.skip>true</protoc.skip>
3693         <remoteresources.skip>true</remoteresources.skip>
3694       </properties>
3695     </profile>
3696     <profile>
3697       <id>eclipse-specific</id>
3698       <activation>
3699         <property>
3700           <name>m2e.version</name>
3701         </property>
3702       </activation>
3703       <build>
3704         <pluginManagement>
3705           <plugins>
3706             <!-- General config for eclipse classpath/settings -->
3707             <plugin>
3708               <groupId>org.apache.maven.plugins</groupId>
3709               <artifactId>maven-eclipse-plugin</artifactId>
3710               <version>${maven.eclipse.version}</version>
3711             </plugin>
3712             <!--This plugin's configuration is used to store Eclipse m2e settings
3713                 only. It has no influence on the Maven build itself. m2e does not
3714                 provide any safeguards against rogue maven plugins that leak
3715                 classloaders, modify random files inside workspace or throw nasty
3716                 exceptions to fail the build.
3717                 Top level doesn't do any specific configuration currently - left
3718                 to modules to decide what they want to bind, sans those plugins
3719                 defined in this pom. -->
3720             <plugin>
3721               <groupId>org.eclipse.m2e</groupId>
3722               <artifactId>lifecycle-mapping</artifactId>
3723               <version>${lifecycle.mapping.version}</version>
3724               <configuration>
3725                 <lifecycleMappingMetadata>
3726                   <pluginExecutions>
3727                     <pluginExecution>
3728                       <pluginExecutionFilter>
3729                         <groupId>org.jacoco</groupId>
3730                         <artifactId>jacoco-maven-plugin</artifactId>
3731                         <versionRange>[0.6.2.201302030002,)</versionRange>
3732                         <goals>
3733                           <goal>prepare-agent</goal>
3734                         </goals>
3735                       </pluginExecutionFilter>
3736                       <action>
3737                         <ignore></ignore>
3738                       </action>
3739                     </pluginExecution>
3740                     <pluginExecution>
3741                       <pluginExecutionFilter>
3742                         <groupId>org.apache.maven.plugins</groupId>
3743                         <artifactId>maven-enforcer-plugin</artifactId>
3744                         <versionRange>${enforcer.version}</versionRange>
3745                         <goals>
3746                           <goal>enforce</goal>
3747                         </goals>
3748                       </pluginExecutionFilter>
3749                       <action>
3750                         <ignore />
3751                       </action>
3752                     </pluginExecution>
3753                     <pluginExecution>
3754                       <pluginExecutionFilter>
3755                         <groupId>org.apache.maven.plugins</groupId>
3756                         <artifactId>maven-remote-resources-plugin</artifactId>
3757                         <versionRange>[1.5,)</versionRange>
3758                         <goals>
3759                           <goal>process</goal>
3760                           <goal>bundle</goal>
3761                         </goals>
3762                       </pluginExecutionFilter>
3763                       <action>
3764                         <ignore />
3765                       </action>
3766                     </pluginExecution>
3767                       <pluginExecution>
3768                         <pluginExecutionFilter>
3769                           <groupId>org.codehaus.mojo</groupId>
3770                           <artifactId>buildnumber-maven-plugin</artifactId>
3771                           <versionRange>[1.3,)</versionRange>
3772                           <goals>
3773                             <goal>create-timestamp</goal>
3774                           </goals>
3775                         </pluginExecutionFilter>
3776                         <action>
3777                           <execute>
3778                             <runOnConfiguration>true</runOnConfiguration>
3779                             <runOnIncremental>true</runOnIncremental>
3780                           </execute>
3781                         </action>
3782                       </pluginExecution>
3783                   </pluginExecutions>
3784                 </lifecycleMappingMetadata>
3785               </configuration>
3786             </plugin>
3787           </plugins>
3788         </pluginManagement>
3789       </build>
3790     </profile>
3791   </profiles>
3792   <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
3793   <reporting>
3794     <plugins>
3795       <plugin>
3796         <artifactId>maven-project-info-reports-plugin</artifactId>
3797         <version>${maven.project.info.report.version}</version>
3798         <reportSets>
3799           <reportSet>
3800             <reports>
3801               <report>dependencies</report>
3802               <report>dependency-convergence</report>
3803               <report>dependency-info</report>
3804               <report>dependency-management</report>
3805               <report>index</report>
3806               <report>issue-tracking</report>
3807               <report>mailing-list</report>
3808               <report>plugin-management</report>
3809               <report>plugins</report>
3810               <report>project-team</report>
3811               <report>scm</report>
3812               <report>summary</report>
3813             </reports>
3814           </reportSet>
3815         </reportSets>
3816         <!-- see src/site/site.xml for selected reports -->
3817         <configuration>
3818           <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
3819         </configuration>
3820       </plugin>
3822       <plugin>
3823         <groupId>org.apache.maven.plugins</groupId>
3824         <artifactId>maven-javadoc-plugin</artifactId>
3825         <configuration>
3826           <tags>
3827             <tag>
3828               <name>apiNote</name>
3829               <placement>a</placement>
3830               <head>API Note:</head>
3831             </tag>
3832           </tags>
3833         </configuration>
3834         <reportSets>
3835           <!-- Dev API -->
3836           <reportSet>
3837             <id>devapi</id>
3838             <reports>
3839               <report>aggregate</report>
3840             </reports>
3841             <configuration>
3842               <destDir>devapidocs</destDir>
3843               <name>Developer API</name>
3844               <description>The full HBase API, including private and unstable APIs</description>
3845               <sourceFileExcludes>
3846                 <exclude>**/generated/*</exclude>
3847                 <exclude>**/protobuf/*</exclude>
3848               </sourceFileExcludes>
3849               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
3850               <show>private</show> <!-- (shows all classes and members) -->
3851               <quiet>true</quiet>
3852               <linksource>true</linksource>
3853               <sourcetab>2</sourcetab>
3854               <validateLinks>true</validateLinks>
3855               <fixClassComment>true</fixClassComment>
3856               <fixFieldComment>true</fixFieldComment>
3857               <fixMethodComment>true</fixMethodComment>
3858               <fixTags>all</fixTags>
3859               <notimestamp>true</notimestamp>
3860               <locale>en_US</locale>
3861               <!-- Pass some options straight to the javadoc executable since it is easier -->
3862               <additionalJOption>-J-Xmx2G</additionalJOption>
3863               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3864               <additionalDependencies>
3865                 <additionalDependency>
3866                   <groupId>org.mockito</groupId>
3867                   <artifactId>mockito-core</artifactId>
3868                   <version>${mockito-core.version}</version>
3869                 </additionalDependency>
3870                 <additionalDependency>
3871                   <groupId>org.hamcrest</groupId>
3872                   <artifactId>hamcrest-core</artifactId>
3873                   <version>${hamcrest.version}</version>
3874                 </additionalDependency>
3875               </additionalDependencies>
3876               <inherited>false</inherited>
3877             </configuration>
3878           </reportSet>
3879           <reportSet>
3880             <id>testdevapi</id>
3881             <reports>
3882               <report>test-aggregate</report>
3883             </reports>
3884             <configuration>
3885               <destDir>testdevapidocs</destDir>
3886               <name>Developer API</name>
3887               <description>The full HBase API test code, including private and unstable APIs</description>
3888               <sourceFileExcludes>
3889                 <exclude>**/generated/*</exclude>
3890                 <exclude>**/protobuf/*</exclude>
3891               </sourceFileExcludes>
3892               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
3893               <show>private</show> <!-- (shows all classes and members) -->
3894               <quiet>true</quiet>
3895               <linksource>true</linksource>
3896               <sourcetab>2</sourcetab>
3897               <validateLinks>true</validateLinks>
3898               <fixClassComment>true</fixClassComment>
3899               <fixFieldComment>true</fixFieldComment>
3900               <fixMethodComment>true</fixMethodComment>
3901               <fixTags>all</fixTags>
3902               <notimestamp>true</notimestamp>
3903               <locale>en_US</locale>
3904               <!-- Pass some options straight to the javadoc executable since it is easier -->
3905               <additionalJOption>-J-Xmx2G</additionalJOption>
3906               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3907               <additionalDependencies>
3908                 <additionalDependency>
3909                   <groupId>org.mockito</groupId>
3910                   <artifactId>mockito-core</artifactId>
3911                   <version>${mockito-core.version}</version>
3912                 </additionalDependency>
3913                 <additionalDependency>
3914                   <groupId>org.hamcrest</groupId>
3915                   <artifactId>hamcrest-core</artifactId>
3916                   <version>${hamcrest.version}</version>
3917                 </additionalDependency>
3918               </additionalDependencies>
3919               <inherited>false</inherited>
3920             </configuration>
3921           </reportSet>
3923           <!-- User API -->
3924           <reportSet>
3925             <id>userapi</id>
3926             <reports>
3927               <report>aggregate</report>
3928             </reports>
3929             <configuration>
3930               <doclet>
3931                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
3932               </doclet>
3933               <docletArtifact>
3934                 <groupId>org.apache.yetus</groupId>
3935                 <artifactId>audience-annotations</artifactId>
3936                 <version>${audience-annotations.version}</version>
3937               </docletArtifact>
3938               <useStandardDocletOptions>true</useStandardDocletOptions>
3939               <destDir>apidocs</destDir>
3940               <name>User API</name>
3941               <description>The HBase Application Programmer's API</description>
3942               <excludePackageNames>
3943                 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*
3944               </excludePackageNames>
3945               <!-- switch on dependency-driven aggregation -->
3946               <includeDependencySources>false</includeDependencySources>
3947               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
3948               <show>protected</show> <!-- (shows only public and protected classes and members) -->
3949               <quiet>true</quiet>
3950               <linksource>true</linksource>
3951               <sourcetab>2</sourcetab>
3952               <validateLinks>true</validateLinks>
3953               <fixClassComment>true</fixClassComment>
3954               <fixFieldComment>true</fixFieldComment>
3955               <fixMethodComment>true</fixMethodComment>
3956               <fixTags>all</fixTags>
3957               <notimestamp>true</notimestamp>
3958               <locale>en_US</locale>
3959               <!-- Pass some options straight to the javadoc executable since it is easier -->
3960               <additionalJOption>-J-Xmx2G</additionalJOption>
3961               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3962               <additionalDependencies>
3963                 <additionalDependency>
3964                   <groupId>org.mockito</groupId>
3965                   <artifactId>mockito-core</artifactId>
3966                   <version>${mockito-core.version}</version>
3967                 </additionalDependency>
3968                 <additionalDependency>
3969                   <groupId>org.hamcrest</groupId>
3970                   <artifactId>hamcrest-core</artifactId>
3971                   <version>${hamcrest.version}</version>
3972                 </additionalDependency>
3973               </additionalDependencies>
3974               <inherited>false</inherited>
3975             </configuration>
3976           </reportSet>
3977           <!-- User Test API -->
3978           <reportSet>
3979             <id>testuserapi</id>
3980             <reports>
3981               <report>test-aggregate</report>
3982             </reports>
3983             <configuration>
3984               <doclet>
3985                 org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
3986               </doclet>
3987               <docletArtifact>
3988                 <groupId>org.apache.yetus</groupId>
3989                 <artifactId>audience-annotations</artifactId>
3990                 <version>${audience-annotations.version}</version>
3991               </docletArtifact>
3992               <useStandardDocletOptions>true</useStandardDocletOptions>
3993               <destDir>testapidocs</destDir>
3994               <name>User API</name>
3995               <description>The HBase Application Programmer's API</description>
3996               <excludePackageNames>
3997                 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*
3998               </excludePackageNames>
3999               <!-- switch on dependency-driven aggregation -->
4000               <includeDependencySources>false</includeDependencySources>
4001               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
4002               <show>protected</show> <!-- (shows only public and protected classes and members) -->
4003               <quiet>true</quiet>
4004               <linksource>true</linksource>
4005               <sourcetab>2</sourcetab>
4006               <validateLinks>true</validateLinks>
4007               <fixClassComment>true</fixClassComment>
4008               <fixFieldComment>true</fixFieldComment>
4009               <fixMethodComment>true</fixMethodComment>
4010               <fixTags>all</fixTags>
4011               <notimestamp>true</notimestamp>
4012               <locale>en_US</locale>
4013               <!-- Pass some options straight to the javadoc executable since it is easier -->
4014               <additionalJOption>-J-Xmx2G</additionalJOption>
4015               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
4016               <additionalDependencies>
4017                 <additionalDependency>
4018                   <groupId>org.mockito</groupId>
4019                   <artifactId>mockito-core</artifactId>
4020                   <version>${mockito-core.version}</version>
4021                 </additionalDependency>
4022                 <additionalDependency>
4023                   <groupId>org.hamcrest</groupId>
4024                   <artifactId>hamcrest-core</artifactId>
4025                   <version>${hamcrest.version}</version>
4026                 </additionalDependency>
4027               </additionalDependencies>
4028               <inherited>false</inherited>
4029             </configuration>
4030           </reportSet>
4031         </reportSets>
4032       </plugin>
4034       <plugin>
4035         <groupId>org.apache.maven.plugins</groupId>
4036         <artifactId>maven-checkstyle-plugin</artifactId>
4037         <version>${maven.checkstyle.version}</version>
4038         <configuration>
4039           <excludes>target/**</excludes>
4040         </configuration>
4041       </plugin>
4043     </plugins>
4044   </reporting>
4045   <distributionManagement>
4046     <site>
4047       <id>hbase.apache.org</id>
4048       <name>HBase Website at hbase.apache.org</name>
4049       <!-- On why this is the tmp dir and not hbase.apache.org, see
4050                https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
4051                -->
4052       <url>file:///tmp</url>
4053     </site>
4054   </distributionManagement>
4055 </project>