HBASE-18002 Investigate why bucket cache filling up in file mode in an
[hbase.git] / pom.xml
blob1c0f3a2c4ebca84673eefa31827c37e885f37e10
1 <?xml version="1.0" encoding="UTF-8"?>
2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>18</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>http://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-resource-bundle</module>
65     <module>hbase-server</module>
66     <module>hbase-thrift</module>
67     <module>hbase-shell</module>
68     <module>hbase-protocol-shaded</module>
69     <module>hbase-protocol</module>
70     <module>hbase-client</module>
71     <module>hbase-hadoop-compat</module>
72     <module>hbase-common</module>
73     <module>hbase-procedure</module>
74     <module>hbase-endpoint</module>
75     <module>hbase-it</module>
76     <module>hbase-examples</module>
77     <module>hbase-prefix-tree</module>
78     <module>hbase-assembly</module>
79     <module>hbase-testing-util</module>
80     <module>hbase-annotations</module>
81     <module>hbase-rest</module>
82     <module>hbase-checkstyle</module>
83     <module>hbase-external-blockcache</module>
84     <module>hbase-shaded</module>
85     <module>hbase-spark</module>
86     <module>hbase-archetypes</module>
87     <module>hbase-metrics-api</module>
88     <module>hbase-metrics</module>
89   </modules>
90   <!--Add apache snapshots in case we want to use unreleased versions of plugins:
91       e.g. surefire 2.18-SNAPSHOT-->
92   <pluginRepositories>
93     <pluginRepository>
94       <id>apache.snapshots</id>
95       <url>http://repository.apache.org/snapshots/</url>
96     </pluginRepository>
97   </pluginRepositories>
98   <scm>
99     <connection>scm:git:git://git.apache.org/hbase.git</connection>
100     <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/hbase.git</developerConnection>
101     <url>https://git-wip-us.apache.org/repos/asf?p=hbase.git</url>
102   </scm>
103   <issueManagement>
104     <system>JIRA</system>
105     <url>http://issues.apache.org/jira/browse/HBASE</url>
106   </issueManagement>
107   <ciManagement>
108     <system>hudson</system>
109     <url>http://hudson.zones.apache.org/hudson/view/HBase/job/HBase-TRUNK/</url>
110   </ciManagement>
111   <mailingLists>
112     <mailingList>
113       <name>User List</name>
114       <subscribe>user-subscribe@hbase.apache.org</subscribe>
115       <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe>
116       <post>user@hbase.apache.org</post>
117       <archive>http://mail-archives.apache.org/mod_mbox/hbase-user/</archive>
118       <otherArchives>
119         <otherArchive>http://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
120         <otherArchive>http://search-hadoop.com/?q=&amp;fc_project=HBase</otherArchive>
121       </otherArchives>
122     </mailingList>
123     <mailingList>
124       <name>Developer List</name>
125       <subscribe>dev-subscribe@hbase.apache.org</subscribe>
126       <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe>
127       <post>dev@hbase.apache.org</post>
128       <archive>http://mail-archives.apache.org/mod_mbox/hbase-dev/</archive>
129       <otherArchives>
130         <otherArchive>http://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
131         <otherArchive>http://search-hadoop.com/?q=&amp;fc_project=HBase</otherArchive>
132       </otherArchives>
133     </mailingList>
134     <mailingList>
135       <name>Commits List</name>
136       <subscribe>commits-subscribe@hbase.apache.org</subscribe>
137       <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
138       <archive>http://mail-archives.apache.org/mod_mbox/hbase-commits/</archive>
139     </mailingList>
140     <mailingList>
141       <name>Issues List</name>
142       <subscribe>issues-subscribe@hbase.apache.org</subscribe>
143       <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe>
144       <archive>http://mail-archives.apache.org/mod_mbox/hbase-issues/</archive>
145     </mailingList>
146     <mailingList>
147       <name>Builds List</name>
148       <subscribe>builds-subscribe@hbase.apache.org</subscribe>
149       <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe>
150       <archive>http://mail-archives.apache.org/mod_mbox/hbase-builds/</archive>
151     </mailingList>
152   </mailingLists>
153   <developers>
154     <developer>
155       <id>acube123</id>
156       <name>Amitanand S. Aiyer</name>
157       <email>acube123@apache.org</email>
158       <timezone>-8</timezone>
159     </developer>
160     <developer>
161       <id>allan163</id>
162       <name>Allan Yang</name>
163       <email>allan163@apache.org</email>
164       <timezone>+8</timezone>
165     </developer>
166     <developer>
167       <id>appy</id>
168       <name>Apekshit Sharma</name>
169       <email>appy@apache.org</email>
170       <timezone>-8</timezone>
171     </developer>
172     <developer>
173       <id>anastasia</id>
174       <name>Anastasia Braginsky</name>
175       <email>anastasia@apache.org</email>
176       <timezone>+2</timezone>
177     </developer>
178     <developer>
179       <id>apurtell</id>
180       <name>Andrew Purtell</name>
181       <email>apurtell@apache.org</email>
182       <timezone>-8</timezone>
183     </developer>
184     <developer>
185       <id>anoopsamjohn</id>
186       <name>Anoop Sam John</name>
187       <email>anoopsamjohn@apache.org</email>
188       <timezone>+5</timezone>
189     </developer>
190     <developer>
191       <id>antonov</id>
192       <name>Mikhail Antonov</name>
193       <email>antonov@apache.org</email>
194       <timezone>-8</timezone>
195     </developer>
196     <developer>
197       <id>ashishsinghi</id>
198       <name>Ashish Singhi</name>
199       <email>ashishsinghi@apache.org</email>
200       <timezone>+5</timezone>
201     </developer>
202     <developer>
203       <id>ashu</id>
204       <name>Ashu Pachauri</name>
205       <email>ashu@apache.org</email>
206       <timezone>-8</timezone>
207     </developer>
208     <developer>
209       <id>binlijin</id>
210       <name>Lijin Bin</name>
211       <email>binlijin@apache.org</email>
212       <timezone>+8</timezone>
213     </developer>
214     <developer>
215       <id>busbey</id>
216       <name>Sean Busbey</name>
217       <email>busbey@apache.org</email>
218       <timezone>-6</timezone>
219     </developer>
220     <developer>
221       <id>chenheng</id>
222       <name>Heng Chen</name>
223       <email>chenheng@apache.org</email>
224       <timezone>+8</timezone>
225     </developer>
226     <developer>
227       <id>chia7712</id>
228       <name>Chia-Ping Tsai</name>
229       <email>chia7712@apache.org</email>
230       <timezone>+8</timezone>
231     </developer>
232     <developer>
233       <id>ddas</id>
234       <name>Devaraj Das</name>
235       <email>ddas@apache.org</email>
236       <timezone>-8</timezone>
237     </developer>
238     <developer>
239       <id>dimaspivak</id>
240       <name>Dima Spivak</name>
241       <email>dimaspivak@apache.org</email>
242       <timezone>-8</timezone>
243     </developer>
244     <developer>
245       <id>dmeil</id>
246       <name>Doug Meil</name>
247       <email>dmeil@apache.org</email>
248       <timezone>-5</timezone>
249     </developer>
250     <developer>
251       <id>eclark</id>
252       <name>Elliott Clark</name>
253       <email>eclark@apache.org</email>
254       <timezone>-8</timezone>
255     </developer>
256     <developer>
257       <id>elserj</id>
258       <name>Josh Elser</name>
259       <email>elserj@apache.org</email>
260       <timezone>-5</timezone>
261     </developer>
262     <developer>
263       <id>enis</id>
264       <name>Enis Soztutar</name>
265       <email>enis@apache.org</email>
266       <timezone>-8</timezone>
267     </developer>
268     <developer>
269       <id>eshcar</id>
270       <name>Eshcar Hillel</name>
271       <email>eshcar@apache.org</email>
272       <timezone>+2</timezone>
273     </developer>
274     <developer>
275       <id>fenghh</id>
276       <name>Honghua Feng</name>
277       <email>fenghh@apache.org</email>
278       <timezone>+8</timezone>
279     </developer>
280     <developer>
281       <id>garyh</id>
282       <name>Gary Helmling</name>
283       <email>garyh@apache.org</email>
284       <timezone>-8</timezone>
285     </developer>
286     <developer>
287       <id>gchanan</id>
288       <name>Gregory Chanan</name>
289       <email>gchanan@apache.org</email>
290       <timezone>-8</timezone>
291     </developer>
292     <developer>
293       <id>jdcryans</id>
294       <name>Jean-Daniel Cryans</name>
295       <email>jdcryans@apache.org</email>
296       <timezone>-8</timezone>
297     </developer>
298     <developer>
299       <id>jeffreyz</id>
300       <name>Jeffrey Zhong</name>
301       <email>jeffreyz@apache.org</email>
302       <timezone>-8</timezone>
303     </developer>
304     <developer>
305       <id>jerryjch</id>
306       <name>Jing Chen (Jerry) He</name>
307       <email>jerryjch@apache.org</email>
308       <timezone>-8</timezone>
309     </developer>
310     <developer>
311       <id>jyates</id>
312       <name>Jesse Yates</name>
313       <email>jyates@apache.org</email>
314       <timezone>-8</timezone>
315     </developer>
316     <developer>
317       <id>jgray</id>
318       <name>Jonathan Gray</name>
319       <email>jgray@fb.com</email>
320       <timezone>-8</timezone>
321     </developer>
322     <developer>
323       <id>jingchengdu</id>
324       <name>Jingcheng Du</name>
325       <email>jingchengdu@apache.org</email>
326       <timezone>+8</timezone>
327     </developer>
328     <developer>
329       <id>esteban</id>
330       <name>Esteban Gutierrez</name>
331       <email>esteban@apache.org</email>
332       <timezone>-8</timezone>
333     </developer>
334     <developer>
335       <id>jmhsieh</id>
336       <name>Jonathan Hsieh</name>
337       <email>jmhsieh@apache.org</email>
338       <timezone>-8</timezone>
339     </developer>
340     <developer>
341       <id>jxiang</id>
342       <name>Jimmy Xiang</name>
343       <email>jxiang@apache.org</email>
344       <timezone>-8</timezone>
345     </developer>
346     <developer>
347       <id>kannan</id>
348       <name>Kannan Muthukkaruppan</name>
349       <email>kannan@fb.com</email>
350       <timezone>-8</timezone>
351     </developer>
352     <developer>
353       <id>karthik</id>
354       <name>Karthik Ranganathan</name>
355       <email>kranganathan@fb.com</email>
356       <timezone>-8</timezone>
357     </developer>
358     <developer>
359       <id>larsgeorge</id>
360       <name>Lars George</name>
361       <email>larsgeorge@apache.org</email>
362       <timezone>+1</timezone>
363     </developer>
364     <developer>
365       <id>larsh</id>
366       <name>Lars Hofhansl</name>
367       <email>larsh@apache.org</email>
368       <timezone>-8</timezone>
369     </developer>
370     <developer>
371       <id>liangxie</id>
372       <name>Liang Xie</name>
373       <email>liangxie@apache.org</email>
374       <timezone>+8</timezone>
375     </developer>
376     <developer>
377       <id>liushaohui</id>
378       <name>Shaohui Liu</name>
379       <email>liushaohui@apache.org</email>
380       <timezone>+8</timezone>
381     </developer>
382     <developer>
383       <id>liyin</id>
384       <name>Liyin Tang</name>
385       <email>liyin.tang@fb.com</email>
386       <timezone>-8</timezone>
387     </developer>
388     <developer>
389       <id>liyu</id>
390       <name>Yu Li</name>
391       <email>liyu@apache.org</email>
392       <timezone>+8</timezone>
393     </developer>
394     <developer>
395       <id>mbautin</id>
396       <name>Mikhail Bautin</name>
397       <email>mbautin@apache.org</email>
398       <timezone>-8</timezone>
399     </developer>
400     <developer>
401       <id>mbertozzi</id>
402       <name>Matteo Bertozzi</name>
403       <email>mbertozzi@apache.org</email>
404       <timezone>0</timezone>
405     </developer>
406     <developer>
407       <id>misty</id>
408       <name>Misty Stanley-Jones</name>
409       <email>misty@apache.org</email>
410       <timezone>+10</timezone>
411     </developer>
412     <developer>
413       <id>ndimiduk</id>
414       <name>Nick Dimiduk</name>
415       <email>ndimiduk@apache.org</email>
416       <timezone>-8</timezone>
417     </developer>
418     <developer>
419       <id>nkeywal</id>
420       <name>Nicolas Liochon</name>
421       <email>nkeywal@apache.org</email>
422       <timezone>+1</timezone>
423     </developer>
424     <developer>
425       <id>nspiegelberg</id>
426       <name>Nicolas Spiegelberg</name>
427       <email>nspiegelberg@fb.com</email>
428       <timezone>-8</timezone>
429     </developer>
430     <developer>
431       <id>octo47</id>
432       <name>Andrey Stepachev</name>
433       <email>octo47@gmail.com</email>
434       <timezone>0</timezone>
435     </developer>
436     <developer>
437       <id>rajeshbabu</id>
438       <name>Rajeshbabu Chintaguntla</name>
439       <email>rajeshbabu@apache.org</email>
440       <timezone>+5</timezone>
441     </developer>
442     <developer>
443       <id>ramkrishna</id>
444       <name>Ramkrishna S Vasudevan</name>
445       <email>ramkrishna@apache.org</email>
446       <timezone>+5</timezone>
447     </developer>
448     <developer>
449       <id>rawson</id>
450       <name>Ryan Rawson</name>
451       <email>rawson@apache.org</email>
452       <timezone>-8</timezone>
453     </developer>
454     <developer>
455       <id>sershe</id>
456       <name>Sergey Shelukhin</name>
457       <email>sershe@apache.org</email>
458       <timezone>-8</timezone>
459     </developer>
460     <developer>
461       <id>ssrungarapu</id>
462       <name>Srikanth Srungarapu</name>
463       <email>ssrungarapu@apache.org</email>
464       <timezone>-8</timezone>
465     </developer>
466     <developer>
467       <id>stack</id>
468       <name>Michael Stack</name>
469       <email>stack@apache.org</email>
470       <timezone>-8</timezone>
471     </developer>
472     <developer>
473       <id>syuanjiang</id>
474       <name>Stephen Yuan Jiang</name>
475       <email>syuanjiang@apache.org</email>
476       <timezone>-8</timezone>
477     </developer>
478     <developer>
479       <id>tedyu</id>
480       <name>Ted Yu</name>
481       <email>yuzhihong@gmail.com</email>
482       <timezone>-8</timezone>
483     </developer>
484     <developer>
485       <id>todd</id>
486       <name>Todd Lipcon</name>
487       <email>todd@apache.org</email>
488       <timezone>-8</timezone>
489     </developer>
490     <developer>
491       <id>toffer</id>
492       <name>Francis Liu</name>
493       <email>toffer@apache.org</email>
494       <timezone>-8</timezone>
495     </developer>
496     <developer>
497       <id>virag</id>
498       <name>Virag Kothari</name>
499       <email>virag@yahoo-inc.com</email>
500       <timezone>-8</timezone>
501     </developer>
502     <developer>
503       <id>yangzhe1991</id>
504       <name>Phil Yang</name>
505       <email>yangzhe1991@apache.org</email>
506       <timezone>+8</timezone>
507     </developer>
508     <developer>
509       <id>zghao</id>
510       <name>Guanghao Zhang</name>
511       <email>zghao@apache.org</email>
512       <timezone>+8</timezone>
513     </developer>
514     <developer>
515       <id>zhangduo</id>
516       <name>Duo Zhang</name>
517       <email>zhangduo@apache.org</email>
518       <timezone>+8</timezone>
519     </developer>
520     <developer>
521       <id>zjushch</id>
522       <name>Chunhui Shen</name>
523       <email>zjushch@apache.org</email>
524       <timezone>+8</timezone>
525     </developer>
526   </developers>
527   <build>
528     <extensions>
529       <extension>
530         <groupId>kr.motd.maven</groupId>
531         <artifactId>os-maven-plugin</artifactId>
532         <version>${os.maven.version}</version>
533       </extension>
534     </extensions>
535     <!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
536          For specific version use a property and define it in the parent pom.
537      -->
538     <pluginManagement>
539       <plugins>
540         <plugin>
541           <groupId>org.apache.maven.plugins</groupId>
542            <artifactId>maven-javadoc-plugin</artifactId>
543         </plugin>
544         <plugin>
545           <groupId>org.apache.maven.plugins</groupId>
546           <artifactId>maven-remote-resources-plugin</artifactId>
547         </plugin>
548         <plugin>
549           <groupId>org.apache.maven.plugins</groupId>
550           <artifactId>maven-shade-plugin</artifactId>
551           <version>${maven.shade.version}</version>
552         </plugin>
553         <plugin>
554           <groupId>org.apache.maven.plugins</groupId>
555           <artifactId>maven-release-plugin</artifactId>
556           <configuration>
557             <!--You need this profile. It'll sign your artifacts.
558                 I'm not sure if this config. actually works though.
559                 I've been specifying -Papache-release on the command-line
560              -->
561             <releaseProfiles>apache-release</releaseProfiles>
562             <!--This stops our running tests for each stage of maven release.
563                 But it builds the test jar.  From SUREFIRE-172.
564               -->
565             <arguments>-Dmaven.test.skip.exec ${arguments}</arguments>
566             <goals>${goals}</goals>
567             <pomFileName>pom.xml</pomFileName>
568           </configuration>
569         </plugin>
570         <plugin>
571           <groupId>org.apache.maven.plugins</groupId>
572           <artifactId>maven-compiler-plugin</artifactId>
573           <version>${maven.compiler.version}</version>
574           <configuration>
575             <source>${compileSource}</source>
576             <target>${compileSource}</target>
577             <showWarnings>true</showWarnings>
578             <showDeprecation>false</showDeprecation>
579             <useIncrementalCompilation>false</useIncrementalCompilation>
580             <compilerArgument>-Xlint:-options</compilerArgument>
581           </configuration>
582         </plugin>
583         <!-- Test oriented plugins -->
584         <plugin>
585           <groupId>org.apache.maven.plugins</groupId>
586           <artifactId>maven-surefire-plugin</artifactId>
587           <version>${surefire.version}</version>
588           <dependencies>
589             <!-- by default surefire selects dynamically the connector to the unit tests
590               tool. We want to use always the same as the different connectors can have different
591               bugs and behaviour. -->
592             <dependency>
593               <groupId>org.apache.maven.surefire</groupId>
594               <artifactId>${surefire.provider}</artifactId>
595               <version>${surefire.version}</version>
596             </dependency>
597           </dependencies>
598           <!-- Generic testing configuration for all packages -->
599           <configuration>
600             <groups>${surefire.firstPartGroups}</groups>
601             <failIfNoTests>false</failIfNoTests>
602             <skip>${surefire.skipFirstPart}</skip>
603             <forkCount>${surefire.firstPartForkCount}</forkCount>
604             <reuseForks>false</reuseForks>
605             <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
606             <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
607             <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
608             <systemPropertyVariables>
609               <test.build.classes>${test.build.classes}</test.build.classes>
610             </systemPropertyVariables>
612             <excludes>
613               <!-- users can add -D option to skip particular test classes
614                    ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java
615               -->
616               <exclude>${test.exclude.pattern}</exclude>
617             </excludes>
618           </configuration>
619           <executions>
620             <execution>
621               <id>secondPartTestsExecution</id>
622               <phase>test</phase>
623               <goals>
624                 <goal>test</goal>
625               </goals>
626               <configuration>
627                 <skip>${surefire.skipSecondPart}</skip>
628                 <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
629                 <reuseForks>false</reuseForks>
630                 <forkCount>${surefire.secondPartForkCount}</forkCount>
631                 <groups>${surefire.secondPartGroups}</groups>
632                 <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
633               </configuration>
634             </execution>
635           </executions>
636         </plugin>
637         <plugin>
638           <groupId>org.apache.maven.plugins</groupId>
639           <artifactId>maven-surefire-report-plugin</artifactId>
640           <version>${surefire.version}</version>
641         </plugin>
642         <plugin>
643           <groupId>org.apache.maven.plugins</groupId>
644           <artifactId>maven-clean-plugin</artifactId>
645           <configuration>
646             <filesets>
647               <fileset>
648                 <!--dfs tests have build dir hardcoded. Clean it as part of
649                clean target-->
650                 <directory>build</directory>
651               </fileset>
652             </filesets>
653           </configuration>
654         </plugin>
655         <plugin>
656           <groupId>org.codehaus.mojo</groupId>
657           <artifactId>buildnumber-maven-plugin</artifactId>
658           <version>${buildnumber.maven.version}</version>
659         </plugin>
660         <plugin>
661           <groupId>org.codehaus.mojo</groupId>
662           <artifactId>findbugs-maven-plugin</artifactId>
663           <version>${findbugs.maven.version}</version>
664           <!--NOTE: Findbugs 3.0.0 requires jdk7-->
665           <configuration>
666             <excludeFilterFile>${project.basedir}/../dev-support/findbugs-exclude.xml</excludeFilterFile>
667             <findbugsXmlOutput>true</findbugsXmlOutput>
668             <xmlOutput>true</xmlOutput>
669             <effort>Max</effort>
670           </configuration>
671         </plugin>
672         <plugin>
673           <groupId>org.codehaus.mojo</groupId>
674           <artifactId>build-helper-maven-plugin</artifactId>
675           <version>${build.helper.maven.version}</version>
676         </plugin>
677         <plugin>
678           <artifactId>maven-antrun-plugin</artifactId>
679           <version>${maven.antrun.version}</version>
680         </plugin>
681         <plugin>
682           <groupId>org.jamon</groupId>
683           <artifactId>jamon-maven-plugin</artifactId>
684           <version>${jamon.plugin.version}</version>
685         </plugin>
686         <!-- Make a jar and put the sources in the jar.
687         In the parent pom, so submodules will do the right thing. -->
688         <plugin>
689           <groupId>org.apache.maven.plugins</groupId>
690           <artifactId>maven-source-plugin</artifactId>
691           <executions>
692             <execution>
693               <id>attach-sources</id>
694               <phase>prepare-package</phase>
695               <goals>
696                 <goal>jar-no-fork</goal>
697               </goals>
698             </execution>
699           </executions>
700         </plugin>
701         <!-- General configuration for submodules who want to build a test jar -->
702         <plugin>
703           <groupId>org.apache.maven.plugins</groupId>
704           <artifactId>maven-jar-plugin</artifactId>
705           <executions>
706             <execution>
707               <phase>prepare-package</phase>
708               <goals>
709                   <!--This goal will install a -test.jar when we do install
710                       See http://maven.apache.org/guides/mini/guide-attached-tests.html
711                    -->
712                 <goal>test-jar</goal>
713               </goals>
714             </execution>
715           </executions>
716           <configuration>
717             <skipIfEmpty>true</skipIfEmpty>
718             <excludes>
719               <exclude>hbase-site.xml</exclude>
720               <exclude>hdfs-site.xml</exclude>
721               <exclude>log4j.properties</exclude>
722               <exclude>mapred-queues.xml</exclude>
723               <exclude>mapred-site.xml</exclude>
724               <!--I was seeing this w/o the below addition:
725                    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.4:jar (default-jar) on project hbase-protocol-shaded: Error assembling JAR: A zip file cannot include itself -> [Help 1]
726                 -->
727               <exclude>*.jar</exclude>
728             </excludes>
729           </configuration>
730         </plugin>
731         <!-- General config for eclipse classpath/settings -->
732         <plugin>
733           <groupId>org.apache.maven.plugins</groupId>
734           <artifactId>maven-eclipse-plugin</artifactId>
735           <version>${maven.eclipse.version}</version>
736         </plugin>
737         <!--This plugin's configuration is used to store Eclipse m2e settings
738             only. It has no influence on the Maven build itself. m2e does not
739             provide any safeguards against rogue maven plugins that leak
740             classloaders, modify random files inside workspace or throw nasty
741             exceptions to fail the build.
742             Top level doesn't do any specific configuration currently - left
743             to modules to decide what they want to bind, sans those plugins
744             defined in this pom. -->
745         <plugin>
746           <groupId>org.eclipse.m2e</groupId>
747           <artifactId>lifecycle-mapping</artifactId>
748           <version>${lifecycle.mapping.version}</version>
749           <configuration>
750             <lifecycleMappingMetadata>
751               <pluginExecutions>
752                 <pluginExecution>
753                   <pluginExecutionFilter>
754                     <groupId>org.jacoco</groupId>
755                     <artifactId>jacoco-maven-plugin</artifactId>
756                     <versionRange>[0.6.2.201302030002,)</versionRange>
757                     <goals>
758                       <goal>prepare-agent</goal>
759                     </goals>
760                   </pluginExecutionFilter>
761                   <action>
762                     <ignore></ignore>
763                   </action>
764                 </pluginExecution>
765                 <pluginExecution>
766                   <pluginExecutionFilter>
767                     <groupId>org.apache.maven.plugins</groupId>
768                     <artifactId>maven-enforcer-plugin</artifactId>
769                     <versionRange>[1.0.1,)</versionRange>
770                     <goals>
771                       <goal>enforce</goal>
772                     </goals>
773                   </pluginExecutionFilter>
774                   <action>
775                     <ignore />
776                   </action>
777                 </pluginExecution>
778                 <pluginExecution>
779                   <pluginExecutionFilter>
780                     <groupId>org.apache.maven.plugins</groupId>
781                     <artifactId>maven-remote-resources-plugin</artifactId>
782                     <versionRange>[1.5,)</versionRange>
783                     <goals>
784                       <goal>process</goal>
785                       <goal>bundle</goal>
786                     </goals>
787                   </pluginExecutionFilter>
788                   <action>
789                     <ignore />
790                   </action>
791                 </pluginExecution>
792                   <pluginExecution>
793                     <pluginExecutionFilter>
794                       <groupId>org.codehaus.mojo</groupId>
795                       <artifactId>buildnumber-maven-plugin</artifactId>
796                       <versionRange>[1.3,)</versionRange>
797                       <goals>
798                         <goal>create-timestamp</goal>
799                       </goals>
800                     </pluginExecutionFilter>
801                     <action>
802                       <execute>
803                         <runOnConfiguration>true</runOnConfiguration>
804                         <runOnIncremental>true</runOnIncremental>
805                       </execute>
806                     </action>
807                   </pluginExecution>
808               </pluginExecutions>
809             </lifecycleMappingMetadata>
810           </configuration>
811         </plugin>
812         <plugin>
813           <!-- excludes are inherited -->
814           <groupId>org.apache.rat</groupId>
815           <artifactId>apache-rat-plugin</artifactId>
816           <version>${apache.rat.version}</version>
817           <configuration>
818             <excludes>
819               <exclude>**/*.versionsBackup</exclude>
820               <exclude>**/*.log</exclude>
821               <exclude>**/.*</exclude>
822               <exclude>**/*.tgz</exclude>
823               <exclude>**/*.orig</exclude>
824               <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
825               <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
826               <exclude>**/0000000000000016310</exclude>
827               <exclude>**/.idea/**</exclude>
828               <exclude>**/*.iml</exclude>
829               <exclude>**/CHANGES.txt</exclude>
830               <exclude>**/generated/**</exclude>
831               <exclude>**/gen-*/**</exclude>
832               <!-- No material contents -->
833               <exclude>conf/regionservers</exclude>
834               <exclude>**/*.avpr</exclude>
835               <exclude>**/*.svg</exclude>
836               <!-- non-standard notice file from jruby included by reference -->
837               <exclude>**/src/main/resources/META-INF/LEGAL</exclude>
838               <!-- MIT: https://github.com/asciidoctor/asciidoctor/blob/master/LICENSE.adoc -->
839               <exclude>**/src/main/asciidoc/hbase.css</exclude>
840               <!-- MIT http://jquery.org/license -->
841               <exclude>**/jquery.min.js</exclude>
842               <!-- vector graphics -->
843               <exclude>**/*.vm</exclude>
844               <!-- apache doxia generated -->
845               <exclude>**/control</exclude>
846               <exclude>**/conffile</exclude>
847               <!-- auto-gen docs -->
848               <exclude>docs/*</exclude>
849               <exclude>logs/*</exclude>
850               <!--  exclude source control files -->
851               <exclude>.git/**</exclude>
852               <exclude>.svn/**</exclude>
853               <exclude>**/.settings/**</exclude>
854               <exclude>**/patchprocess/**</exclude>
855               <exclude>src/main/site/resources/repo/**</exclude>
856               <exclude>**/dependency-reduced-pom.xml</exclude>
857               <exclude>**/rat.txt</exclude>
858               <!-- exclude the shaded protobuf files -->
859               <exclude>**/shaded/com/google/protobuf/**</exclude>
860               <exclude>**/src/main/patches/**</exclude>
861             </excludes>
862           </configuration>
863         </plugin>
864         <plugin>
865           <artifactId>maven-assembly-plugin</artifactId>
866           <configuration>
867             <!--Defer to the hbase-assembly sub-module.  It
868              does all assembly-->
869             <skipAssembly>true</skipAssembly>
870           </configuration>
871         </plugin>
872         <plugin>
873           <groupId>org.xolstice.maven.plugins</groupId>
874           <artifactId>protobuf-maven-plugin</artifactId>
875           <version>${protobuf.plugin.version}</version>
876           <configuration>
877             <protocArtifact>com.google.protobuf:protoc:${external.protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
878             <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
879             <clearOutputDirectory>false</clearOutputDirectory>
880             <checkStaleness>true</checkStaleness>
881           </configuration>
882         </plugin>
883         <plugin>
884           <groupId>org.apache.maven.plugins</groupId>
885           <artifactId>maven-checkstyle-plugin</artifactId>
886           <version>${maven.checkstyle.version}</version>
887           <dependencies>
888             <dependency>
889               <groupId>org.apache.hbase</groupId>
890               <artifactId>hbase-checkstyle</artifactId>
891               <version>${project.version}</version>
892             </dependency>
893             <dependency>
894               <groupId>com.puppycrawl.tools</groupId>
895               <artifactId>checkstyle</artifactId>
896               <version>${checkstyle.version}</version>
897             </dependency>
898           </dependencies>
899           <configuration>
900             <configLocation>hbase/checkstyle.xml</configLocation>
901             <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
902           </configuration>
903         </plugin>
904       </plugins>
905     </pluginManagement>
906     <plugins>
907       <plugin>
908         <groupId>org.codehaus.mojo</groupId>
909         <artifactId>build-helper-maven-plugin</artifactId>
910         <executions>
911           <execution>
912             <id>negate-license-bundles-property</id>
913             <goals>
914               <goal>bsh-property</goal>
915             </goals>
916             <configuration>
917               <source>skip.license.check = !${license.bundles.dependencies};</source>
918               <properties>
919                 <property>skip.license.check</property>
920               </properties>
921             </configuration>
922           </execution>
923         </executions>
924       </plugin>
925       <plugin>
926         <groupId>org.apache.maven.plugins</groupId>
927         <artifactId>maven-enforcer-plugin</artifactId>
928         <dependencies>
929           <dependency>
930             <groupId>org.codehaus.mojo</groupId>
931             <artifactId>extra-enforcer-rules</artifactId>
932             <version>${extra.enforcer.version}</version>
933           </dependency>
934         </dependencies>
935         <!-- version set by parent -->
936         <executions>
937           <execution>
938             <id>min-maven-min-java-banned-xerces</id>
939             <goals>
940               <goal>enforce</goal>
941             </goals>
942             <configuration>
943               <rules>
944                 <!-- The earliest maven version we verify builds for via ASF Jenkins -->
945                 <requireMavenVersion>
946                   <version>[${maven.min.version},)</version>
947                   <message>Maven is out of date.
948   HBase requires at least version ${maven.min.version} of Maven to properly build from source.
949   You appear to be using an older version. You can use either "mvn -version" or
950   "mvn enforcer:display-info" to verify what version is active.
951   See the reference guide on building for more information: http://hbase.apache.org/book.html#build
952                   </message>
953                 </requireMavenVersion>
954                 <!-- The earliest JVM version we verify builds for via ASF Jenkins -->
955                 <requireJavaVersion>
956                   <version>[${java.min.version},)</version>
957                   <message>Java is out of date.
958   HBase requirs at least version ${java.min.version} of the JDK to properly build from source.
959   You appear to be using an older version. You can use either "mvn -version" or
960   "mvn enforcer:display-info" to verify what version is active.
961   See the reference guide on building for more information: http://hbase.apache.org/book.html#build
962                   </message>
963                 </requireJavaVersion>
964                 <bannedDependencies>
965                   <excludes>
966                     <exclude>xerces:xercesImpl</exclude>
967                   </excludes>
968                   <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message>
969                 </bannedDependencies>
970               </rules>
971             </configuration>
972           </execution>
973           <execution>
974             <id>banned-jsr305</id>
975             <goals>
976               <goal>enforce</goal>
977             </goals>
978             <configuration>
979               <rules>
980                 <bannedDependencies>
981                   <excludes>
982                     <exclude>com.google.code.findbugs:jsr305</exclude>
983                   </excludes>
984                   <message>We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321.</message>
985                 </bannedDependencies>
986               </rules>
987             </configuration>
988           </execution>
989           <execution>
990             <id>banned-scala</id>
991             <goals>
992               <goal>enforce</goal>
993             </goals>
994             <configuration>
995               <rules>
996                 <bannedDependencies>
997                   <excludes>
998                     <exclude>org.scala-lang:scala-library</exclude>
999                   </excludes>
1000                   <message>We don't allow Scala outside of the hbase-spark module, see HBASE-13992.</message>
1001                 </bannedDependencies>
1002               </rules>
1003             </configuration>
1004           </execution>
1005           <execution>
1006             <id>banned-hbase-spark</id>
1007             <goals>
1008               <goal>enforce</goal>
1009             </goals>
1010             <configuration>
1011               <rules>
1012                 <bannedDependencies>
1013                   <excludes>
1014                     <exclude>org.apache.hbase:hbase-spark</exclude>
1015                   </excludes>
1016                   <message>We don't allow other modules to depend on hbase-spark, see HBASE-13992.</message>
1017                 </bannedDependencies>
1018               </rules>
1019             </configuration>
1020           </execution>
1021           <execution>
1022             <id>check-aggregate-license</id>
1023             <!-- must check after LICENSE is built at 'generate-resources' -->
1024             <phase>process-resources</phase>
1025             <goals>
1026               <goal>enforce</goal>
1027             </goals>
1028             <configuration>
1029               <rules>
1030                 <evaluateBeanshell>
1031                   <condition>
1032                     File license = new File("${license.aggregate.path}");
1034                     // Beanshell does not support try-with-resources,
1035                     // so we must close this scanner manually
1036                     Scanner scanner = new Scanner(license);
1038                     while (scanner.hasNextLine()) {
1039                       if (scanner.nextLine().startsWith("ERROR:")) {
1040                         scanner.close();
1041                         return false;
1042                       }
1043                     }
1044                     scanner.close();
1045                     return true;
1046                   </condition>
1047                   <message>
1048                     License errors detected, for more detail find ERROR in
1049                     ${license.aggregate.path}
1050                   </message>
1051                 </evaluateBeanshell>
1052               </rules>
1053               <skip>${skip.license.check}</skip>
1054             </configuration>
1055           </execution>
1056         </executions>
1057       </plugin>
1058       <!-- parent-module only plugins -->
1059       <plugin>
1060         <groupId>org.codehaus.mojo</groupId>
1061         <artifactId>xml-maven-plugin</artifactId>
1062         <version>${xml.maven.version}</version>
1063         <inherited>false</inherited>
1064         <executions>
1065           <execution>
1066             <!-- Run the hbase-default.xml through a stylesheet so can show it in doc-->
1067             <goals>
1068               <goal>transform</goal>
1069             </goals>
1070             <phase>site</phase>
1071           </execution>
1072         </executions>
1073         <configuration>
1074           <transformationSets>
1075             <!-- For asciidoc -->
1076             <transformationSet>
1077               <!--Reaching up and over into common sub-module for hbase-default.xml-->
1078               <dir>${basedir}/hbase-common/src/main/resources/</dir>
1079               <includes>
1080                 <include>hbase-default.xml</include>
1081               </includes>
1082               <stylesheet>${basedir}/src/main/xslt/configuration_to_asciidoc_chapter.xsl</stylesheet>
1083               <fileMappers>
1084                 <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
1085                   <pattern>^(.*)\.xml$</pattern>
1086                   <replacement>$1.adoc</replacement>
1087                 </fileMapper>
1088               </fileMappers>
1089               <outputDir>${basedir}/target/asciidoc</outputDir>
1090             </transformationSet>
1091           </transformationSets>
1092         </configuration>
1093       </plugin>
1094       <!-- Special configuration for findbugs just in the parent so
1095       the filter file location can be more general (see definition in pluginManagement) -->
1096       <plugin>
1097         <groupId>org.codehaus.mojo</groupId>
1098         <artifactId>findbugs-maven-plugin</artifactId>
1099         <executions>
1100           <execution>
1101             <inherited>false</inherited>
1102             <goals>
1103               <goal>findbugs</goal>
1104             </goals>
1105             <configuration>
1106               <excludeFilterFile>${basedir}/dev-support/findbugs-exclude.xml</excludeFilterFile>
1107             </configuration>
1108           </execution>
1109         </executions>
1110       </plugin>
1111       <plugin>
1112         <groupId>org.apache.maven.plugins</groupId>
1113         <artifactId>maven-checkstyle-plugin</artifactId>
1114         <dependencies>
1115           <dependency>
1116             <groupId>org.apache.hbase</groupId>
1117             <artifactId>hbase-checkstyle</artifactId>
1118             <version>${project.version}</version>
1119           </dependency>
1120           <dependency>
1121             <groupId>com.puppycrawl.tools</groupId>
1122             <artifactId>checkstyle</artifactId>
1123             <version>${checkstyle.version}</version>
1124           </dependency>
1125         </dependencies>
1126         <configuration>
1127           <configLocation>hbase/checkstyle.xml</configLocation>
1128           <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
1129         </configuration>
1130       </plugin>
1131       <plugin>
1132         <groupId>org.apache.maven.plugins</groupId>
1133         <artifactId>maven-site-plugin</artifactId>
1134         <version>${maven.site.version}</version>
1135         <inherited>false</inherited>
1136         <dependencies>
1137           <dependency>
1138             <!-- add support for ssh/scp -->
1139             <groupId>org.apache.maven.wagon</groupId>
1140             <artifactId>wagon-ssh</artifactId>
1141             <version>${wagon.ssh.version}</version>
1142           </dependency>
1143         </dependencies>
1144         <configuration>
1145           <siteDirectory>${basedir}/src/main/site</siteDirectory>
1146           <customBundle>${basedir}/src/main/site/custom/project-info-report.properties</customBundle>
1147           <inputEncoding>UTF-8</inputEncoding>
1148           <outputEncoding>UTF-8</outputEncoding>
1149         </configuration>
1150       </plugin>
1151       <!-- For AsciiDoc docs building -->
1152       <plugin>
1153         <groupId>org.asciidoctor</groupId>
1154         <artifactId>asciidoctor-maven-plugin</artifactId>
1155         <version>${asciidoctor.plugin.version}</version>
1156         <inherited>false</inherited>
1157         <dependencies>
1158           <dependency>
1159             <groupId>org.asciidoctor</groupId>
1160             <artifactId>asciidoctorj-pdf</artifactId>
1161             <version>${asciidoctorj.pdf.version}</version>
1162           </dependency>
1163         </dependencies>
1164         <configuration>
1165           <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1166           <doctype>book</doctype>
1167           <imagesDir>images</imagesDir>
1168           <sourceHighlighter>coderay</sourceHighlighter>
1169           <attributes>
1170             <docVersion>${project.version}</docVersion>
1171           </attributes>
1172         </configuration>
1173         <executions>
1174           <execution>
1175             <id>output-html</id>
1176             <phase>site</phase>
1177             <goals>
1178               <goal>process-asciidoc</goal>
1179             </goals>
1180             <configuration>
1181               <attributes>
1182                 <stylesheet>hbase.css</stylesheet>
1183               </attributes>
1184               <backend>html5</backend>
1185             </configuration>
1186           </execution>
1187           <execution>
1188             <id>output-pdf</id>
1189             <phase>site</phase>
1190             <goals>
1191               <goal>process-asciidoc</goal>
1192             </goals>
1193             <configuration>
1194               <backend>pdf</backend>
1195               <attributes>
1196                 <pagenums/>
1197                 <toc/>
1198                 <idprefix/>
1199                 <idseparator>-</idseparator>
1200               </attributes>
1201             </configuration>
1202           </execution>
1203         </executions>
1204       </plugin>
1205       <plugin>
1206         <groupId>org.apache.maven.plugins</groupId>
1207         <artifactId>maven-resources-plugin</artifactId>
1208         <!--$NO-MVN-MAN-VER$ -->
1209         <inherited>false</inherited>
1210         <executions>
1211           <execution>
1212             <id>copy-htaccess</id>
1213             <goals>
1214               <goal>copy-resources</goal>
1215             </goals>
1216             <phase>site</phase>
1217             <configuration>
1218               <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1219               <resources>
1220                 <resource>
1221                   <directory>${basedir}/src/main/site/resources/</directory>
1222                   <includes>
1223                     <include>.htaccess</include>
1224                   </includes>
1225                 </resource>
1226               </resources>
1227             </configuration>
1228           </execution>
1229           <!-- needed to make the redirect above work -->
1230           <execution>
1231             <id>copy-empty-book-dir</id>
1232             <goals>
1233               <goal>copy-resources</goal>
1234             </goals>
1235             <phase>site</phase>
1236             <configuration>
1237               <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
1238               <resources>
1239                 <resource>
1240                   <directory>${basedir}/src/main/site/resources/</directory>
1241                   <includes>
1242                     <include>book/**</include>
1243                   </includes>
1244                 </resource>
1245               </resources>
1246             </configuration>
1247           </execution>
1248         </executions>
1249         <configuration>
1250           <escapeString>\</escapeString>
1251         </configuration>
1252       </plugin>
1253       <plugin>
1254         <groupId>org.apache.maven.plugins</groupId>
1255         <artifactId>maven-antrun-plugin</artifactId>
1256         <version>${maven.antrun.version}</version>
1257         <inherited>false</inherited>
1258         <!-- Rename the book.pdf generated by asciidoctor -->
1259         <executions>
1260           <execution>
1261             <id>rename-pdf</id>
1262             <phase>site</phase>
1263             <configuration>
1264               <target name="rename file">
1265                 <move file="${project.reporting.outputDirectory}/book.pdf" tofile="${project.reporting.outputDirectory}/apache_hbase_reference_guide.pdf" />
1266                 <move file="${project.reporting.outputDirectory}/book.pdfmarks" tofile="${project.reporting.outputDirectory}/apache_hbase_reference_guide.pdfmarks" />
1267               </target>
1268             </configuration>
1269             <goals>
1270               <goal>run</goal>
1271             </goals>
1272           </execution>
1273         </executions>
1274       </plugin>
1275       <plugin>
1276         <groupId>org.codehaus.mojo</groupId>
1277         <artifactId>buildnumber-maven-plugin</artifactId>
1278         <executions>
1279           <execution>
1280             <phase>validate</phase>
1281             <goals>
1282               <goal>create-timestamp</goal>
1283             </goals>
1284           </execution>
1285         </executions>
1286         <configuration>
1287           <timestampFormat>yyyy</timestampFormat>
1288           <timestampPropertyName>build.year</timestampPropertyName>
1289         </configuration>
1290       </plugin>
1291       <plugin>
1292         <groupId>org.apache.felix</groupId>
1293         <artifactId>maven-bundle-plugin</artifactId>
1294         <version>${maven.bundle.version}</version>
1295         <inherited>true</inherited>
1296         <extensions>true</extensions>
1297       </plugin>
1298       <plugin>
1299         <groupId>org.scala-tools</groupId>
1300         <artifactId>maven-scala-plugin</artifactId>
1301         <version>${maven.scala.version}</version>
1302       </plugin>
1303     </plugins>
1304   </build>
1305   <properties>
1306     <!-- override on command line to have generated LICENSE files include
1307          diagnostic info for verifying notice requirements -->
1308     <license.debug.print.included>false</license.debug.print.included>
1309     <!-- When a particular module bundles its depenendencies, should be true -->
1310     <license.bundles.dependencies>false</license.bundles.dependencies>
1311     <!-- modules that include a the logo in their source tree should set true -->
1312     <license.bundles.logo>false</license.bundles.logo>
1313     <!-- modules that include bootstrap in their source tree should set true -->
1314     <license.bundles.bootstrap>false</license.bundles.bootstrap>
1315     <!-- modules that include jquery in their source tree should set true -->
1316     <license.bundles.jquery>false</license.bundles.jquery>
1317     <!-- where to find the generated LICENSE files -->
1318     <license.aggregate.path>
1319       ${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE
1320     </license.aggregate.path>
1321     <tar.name>${project.build.finalName}.tar.gz</tar.name>
1322     <maven.build.timestamp.format>
1323       yyyy-MM-dd'T'HH:mm
1324     </maven.build.timestamp.format>
1325     <buildDate>${maven.build.timestamp}</buildDate>
1326     <compileSource>1.8</compileSource>
1327     <!-- Build dependencies -->
1328     <maven.min.version>3.0.4</maven.min.version>
1329     <java.min.version>${compileSource}</java.min.version>
1330     <!-- Dependencies -->
1331     <hadoop-two.version>2.7.1</hadoop-two.version>
1332     <hadoop-three.version>3.0.0-alpha2</hadoop-three.version>
1333     <!-- These must be defined here for downstream build tools that don't look at profiles.
1334          They ought to match the values found in our default hadoop profile, which is
1335          currently "hadoop-2.0". See HBASE-15925 for more info. -->
1336     <hadoop.version>${hadoop-two.version}</hadoop.version>
1337     <compat.module>hbase-hadoop2-compat</compat.module>
1338     <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
1339     <!-- end HBASE-15925 default hadoop compatibility values -->
1340     <avro.version>1.7.7</avro.version>
1341     <commons-cli.version>1.4</commons-cli.version>
1342     <commons-codec.version>1.9</commons-codec.version>
1343     <!-- pretty outdated -->
1344     <commons-io.version>2.5</commons-io.version>
1345     <commons-lang.version>2.6</commons-lang.version>
1346     <commons-logging.version>1.2</commons-logging.version>
1347     <commons-math.version>2.2</commons-math.version>
1348     <disruptor.version>3.3.6</disruptor.version>
1349     <!-- Do not use versions earlier than 3.2.2 due to a security vulnerability -->
1350     <collections.version>3.2.2</collections.version>
1351     <httpclient.version>4.5.3</httpclient.version>
1352     <httpcore.version>4.4.6</httpcore.version>
1353     <metrics-core.version>3.2.1</metrics-core.version>
1354     <guava.version>12.0.1</guava.version>
1355     <jackson.version>2.23.2</jackson.version>
1356     <jaxb-api.version>2.2.12</jaxb-api.version>
1357     <jetty.version>9.3.8.v20160314</jetty.version>
1358     <jetty-jsp.version>9.2.19.v20160908</jetty-jsp.version>
1359     <jackson1.version>1.9.13</jackson1.version>
1360     <servlet.api.version>3.1.0</servlet.api.version>
1361     <wx.rs.api.version>2.0.1</wx.rs.api.version>
1362     <jersey.version>2.25.1</jersey.version>
1363     <jetty.jspapi.version>6.1.14</jetty.jspapi.version>
1364     <jruby.version>9.1.10.0</jruby.version>
1365     <junit.version>4.12</junit.version>
1366     <hamcrest.version>1.3</hamcrest.version>
1367     <htrace.version>3.2.0-incubating</htrace.version>
1368     <log4j.version>1.2.17</log4j.version>
1369     <mockito-all.version>1.10.19</mockito-all.version>
1370     <!--Internally we use a different version of protobuf. See hbase-protocol-shaded-->
1371     <external.protobuf.version>2.5.0</external.protobuf.version>
1372     <protobuf.plugin.version>0.5.0</protobuf.plugin.version>
1373     <thrift.path>thrift</thrift.path>
1374     <thrift.version>0.9.3</thrift.version>
1375     <zookeeper.version>3.4.9</zookeeper.version>
1376     <slf4j.version>1.7.24</slf4j.version>
1377     <clover.version>4.0.3</clover.version>
1378     <jamon-runtime.version>2.4.1</jamon-runtime.version>
1379     <jettison.version>1.3.8</jettison.version>
1380     <netty.version>4.1.9.Final</netty.version>
1381     <netty.hadoop.version>3.6.2.Final</netty.hadoop.version>
1382     <!--Make sure these joni/jcodings are compatible with the versions used by jruby-->
1383     <joni.version>2.1.11</joni.version>
1384     <jcodings.version>1.0.18</jcodings.version>
1385     <spy.version>2.12.2</spy.version>
1386     <bouncycastle.version>1.46</bouncycastle.version>
1387     <kerby.version>1.0.0-RC2</kerby.version>
1388     <commons-crypto.version>1.0.0</commons-crypto.version>
1389     <curator.version>2.12.0</curator.version>
1390     <!-- Plugin Dependencies -->
1391     <apache.rat.version>0.12</apache.rat.version>
1392     <asciidoctor.plugin.version>1.5.2.1</asciidoctor.plugin.version>
1393     <asciidoctorj.pdf.version>1.5.0-alpha.6</asciidoctorj.pdf.version>
1394     <build.helper.maven.version>3.0.0</build.helper.maven.version>
1395     <buildnumber.maven.version>1.4</buildnumber.maven.version>
1396     <checkstyle.version>6.18</checkstyle.version>
1397     <exec.maven.version>1.6.0</exec.maven.version>
1398     <findbugs-annotations>1.3.9-1</findbugs-annotations>
1399     <findbugs.maven.version>3.0.4</findbugs.maven.version>
1400     <jamon.plugin.version>2.4.2</jamon.plugin.version>
1401     <lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
1402     <maven.antrun.version>1.8</maven.antrun.version>
1403     <maven.bundle.version>3.3.0</maven.bundle.version>
1404     <maven.checkstyle.version>2.17</maven.checkstyle.version>
1405     <maven.compiler.version>3.6.1</maven.compiler.version>
1406     <maven.eclipse.version>2.10</maven.eclipse.version>
1407     <maven.install.version>2.5.2</maven.install.version>
1408     <maven.jar.version>3.0.2</maven.jar.version>
1409     <maven.patch.version>1.2</maven.patch.version>
1410     <maven.scala.version>2.15.2</maven.scala.version>
1411     <maven.shade.version>3.0.0</maven.shade.version>
1412     <maven.site.version>3.4</maven.site.version>
1413     <maven.source.version>3.0.1</maven.source.version>
1414     <os.maven.version>1.5.0.Final</os.maven.version>
1415     <scala.maven.version>3.2.2</scala.maven.version>
1416     <scalatest.maven.version>1.0</scalatest.maven.version>
1417     <spotbugs.version>3.1.0-RC3</spotbugs.version>
1418     <wagon.ssh.version>2.12</wagon.ssh.version>
1419     <xml.maven.version>1.0.1</xml.maven.version>
1420     <hbase-thirdparty.version>1.0.0</hbase-thirdparty.version>
1421     <!-- General Packaging -->
1422     <package.prefix>/usr</package.prefix>
1423     <package.conf.dir>/etc/hbase</package.conf.dir>
1424     <package.log.dir>/var/log/hbase</package.log.dir>
1425     <package.pid.dir>/var/run/hbase</package.pid.dir>
1426     <package.release>1</package.release>
1427     <final.name>${project.artifactId}-${project.version}</final.name>
1428     <!-- Intraproject jar naming properties -->
1429     <!-- TODO this is pretty ugly, but works for the moment.
1430       Modules are pretty heavy-weight things, so doing this work isn't too bad. -->
1431     <server.test.jar>hbase-server-${project.version}-tests.jar</server.test.jar>
1432     <common.test.jar>hbase-common-${project.version}-tests.jar</common.test.jar>
1433     <procedure.test.jar>hbase-procedure-${project.version}-tests.jar</procedure.test.jar>
1434     <it.test.jar>hbase-it-${project.version}-tests.jar</it.test.jar>
1435     <annotations.test.jar>hbase-annotations-${project.version}-tests.jar</annotations.test.jar>
1436     <rsgroup.test.jar>hbase-rsgroup-${project.version}-tests.jar</rsgroup.test.jar>
1437     <surefire.version>2.20</surefire.version>
1438     <surefire.provider>surefire-junit47</surefire.provider>
1439     <!-- default: run small & medium, medium with 2 threads -->
1440     <surefire.skipFirstPart>false</surefire.skipFirstPart>
1441     <surefire.skipSecondPart>false</surefire.skipSecondPart>
1442     <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
1443     <surefire.secondPartForkCount>2</surefire.secondPartForkCount>
1444     <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
1445     <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
1446     <surefire.testFailureIgnore>false</surefire.testFailureIgnore>
1447     <test.output.tofile>true</test.output.tofile>
1448     <surefire.timeout>900</surefire.timeout>
1449     <test.exclude.pattern></test.exclude.pattern>
1450     <!-- default Xmx value is 2800m. Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value -->
1451     <surefire.Xmx>2800m</surefire.Xmx>
1452     <surefire.cygwinXmx>2800m</surefire.cygwinXmx>
1453     <!--Mark our test runs with '-Dhbase.build.id' so we can identify a surefire test as ours in a process listing
1454      -->
1455     <hbase-surefire.argLine>-enableassertions -Dhbase.build.id=${build.id} -Xmx${surefire.Xmx}
1456       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1457       -Djava.awt.headless=true
1458     </hbase-surefire.argLine>
1459     <hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx}
1460       -Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
1461       "-Djava.library.path=${hadoop.library.path};${java.library.path}"
1462     </hbase-surefire.cygwin-argLine>
1463     <!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
1464     <argLine>${hbase-surefire.argLine}</argLine>
1465     <jacoco.version>0.7.5.201505241946</jacoco.version>
1466     <extra.enforcer.version>1.0-beta-6</extra.enforcer.version>
1467     <!-- Location of test resources -->
1468     <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
1469     <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ss'Z'</maven.build.timestamp.format>
1470     <!--This build.id we'll add as flag so can identify which forked processes belong to our build.
1471         Default is the build start timestamp. Up on jenkins pass in the jenkins build id by setting
1472         this parameter by invoking mvn with -Dbuild.id=$BUILD_ID-->
1473     <build.id>${maven.build.timestamp}</build.id>
1474     </properties>
1475   <!-- Sorted by groups of dependencies then groupId and artifactId -->
1476   <dependencyManagement>
1477     <dependencies>
1478       <!--
1479       Note: There are a few exclusions to prevent duplicate code in different jars to be included:
1480           org.mortbay.jetty:servlet-api, javax.servlet:servlet-api: These are excluded because they are
1481           the same implementations. I chose org.mortbay.jetty:servlet-api-2.5 instead, which is a third
1482           implementation of the same, because Hadoop also uses this version
1483           javax.servlet:jsp-api in favour of org.mortbay.jetty:jsp-api-2.1
1484         -->
1485       <!-- Intra-module dependencies -->
1486       <dependency>
1487         <groupId>org.apache.hbase</groupId>
1488         <artifactId>hbase-annotations</artifactId>
1489         <version>${project.version}</version>
1490       </dependency>
1491       <dependency>
1492         <groupId>org.apache.hbase</groupId>
1493         <artifactId>hbase-annotations</artifactId>
1494         <version>${project.version}</version>
1495         <type>test-jar</type>
1496         <!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
1497       </dependency>
1498       <dependency>
1499         <groupId>org.apache.hbase</groupId>
1500         <artifactId>hbase-common</artifactId>
1501         <version>${project.version}</version>
1502       </dependency>
1503       <dependency>
1504         <groupId>org.apache.hbase</groupId>
1505         <artifactId>hbase-common</artifactId>
1506         <version>${project.version}</version>
1507         <type>test-jar</type>
1508         <scope>test</scope>
1509       </dependency>
1510       <dependency>
1511         <groupId>org.apache.hbase</groupId>
1512         <artifactId>hbase-protocol-shaded</artifactId>
1513         <version>${project.version}</version>
1514       </dependency>
1515       <dependency>
1516         <groupId>org.apache.hbase</groupId>
1517         <artifactId>hbase-protocol</artifactId>
1518         <version>${project.version}</version>
1519       </dependency>
1520       <dependency>
1521         <groupId>org.apache.hbase</groupId>
1522         <artifactId>hbase-procedure</artifactId>
1523         <version>${project.version}</version>
1524       </dependency>
1525       <dependency>
1526         <groupId>org.apache.hbase</groupId>
1527         <artifactId>hbase-procedure</artifactId>
1528         <version>${project.version}</version>
1529         <type>test-jar</type>
1530       </dependency>
1531       <dependency>
1532         <groupId>org.apache.hbase</groupId>
1533         <artifactId>hbase-hadoop-compat</artifactId>
1534         <version>${project.version}</version>
1535       </dependency>
1536       <dependency>
1537         <groupId>org.apache.hbase</groupId>
1538         <artifactId>hbase-hadoop-compat</artifactId>
1539         <version>${project.version}</version>
1540         <type>test-jar</type>
1541         <scope>test</scope>
1542       </dependency>
1543       <dependency>
1544         <groupId>org.apache.hbase</groupId>
1545         <artifactId>${compat.module}</artifactId>
1546         <version>${project.version}</version>
1547       </dependency>
1548       <dependency>
1549         <groupId>org.apache.hbase</groupId>
1550         <artifactId>${compat.module}</artifactId>
1551         <version>${project.version}</version>
1552         <type>test-jar</type>
1553         <scope>test</scope>
1554       </dependency>
1555       <dependency>
1556         <artifactId>hbase-rsgroup</artifactId>
1557         <groupId>org.apache.hbase</groupId>
1558         <version>${project.version}</version>
1559       </dependency>
1560       <dependency>
1561         <artifactId>hbase-rsgroup</artifactId>
1562         <groupId>org.apache.hbase</groupId>
1563         <version>${project.version}</version>
1564         <type>test-jar</type>
1565         <scope>test</scope>
1566       </dependency>
1567       <dependency>
1568         <artifactId>hbase-server</artifactId>
1569         <groupId>org.apache.hbase</groupId>
1570         <version>${project.version}</version>
1571       </dependency>
1572       <dependency>
1573         <artifactId>hbase-server</artifactId>
1574         <groupId>org.apache.hbase</groupId>
1575         <version>${project.version}</version>
1576         <type>test-jar</type>
1577         <scope>test</scope>
1578       </dependency>
1579       <dependency>
1580         <artifactId>hbase-endpoint</artifactId>
1581         <groupId>org.apache.hbase</groupId>
1582         <version>${project.version}</version>
1583       </dependency>
1584       <dependency>
1585         <artifactId>hbase-shell</artifactId>
1586         <groupId>org.apache.hbase</groupId>
1587         <version>${project.version}</version>
1588       </dependency>
1589       <dependency>
1590         <artifactId>hbase-shell</artifactId>
1591         <groupId>org.apache.hbase</groupId>
1592         <version>${project.version}</version>
1593         <type>test-jar</type>
1594         <scope>test</scope>
1595       </dependency>
1596       <dependency>
1597         <artifactId>hbase-thrift</artifactId>
1598         <groupId>org.apache.hbase</groupId>
1599         <version>${project.version}</version>
1600       </dependency>
1601       <dependency>
1602         <artifactId>hbase-thrift</artifactId>
1603         <groupId>org.apache.hbase</groupId>
1604         <version>${project.version}</version>
1605         <type>test-jar</type>
1606         <scope>test</scope>
1607       </dependency>
1608       <dependency>
1609         <groupId>org.apache.hbase</groupId>
1610         <artifactId>hbase-testing-util</artifactId>
1611         <version>${project.version}</version>
1612         <scope>test</scope>
1613       </dependency>
1614       <dependency>
1615         <groupId>org.apache.hbase</groupId>
1616         <artifactId>hbase-prefix-tree</artifactId>
1617         <version>${project.version}</version>
1618         <!-- unfortunately, runtime scope causes Eclipse to give compile time access which isn't
1619           needed, however it is apparently needed to run things within Eclipse -->
1620         <scope>runtime</scope>
1621       </dependency>
1622       <dependency>
1623         <artifactId>hbase-examples</artifactId>
1624         <groupId>org.apache.hbase</groupId>
1625         <version>${project.version}</version>
1626       </dependency>
1627       <dependency>
1628         <groupId>org.apache.hbase</groupId>
1629         <artifactId>hbase-external-blockcache</artifactId>
1630         <version>${project.version}</version>
1631       </dependency>
1632       <dependency>
1633         <artifactId>hbase-it</artifactId>
1634         <groupId>org.apache.hbase</groupId>
1635         <version>${project.version}</version>
1636         <type>test-jar</type>
1637         <scope>test</scope>
1638       </dependency>
1639       <dependency>
1640         <artifactId>hbase-client</artifactId>
1641         <groupId>org.apache.hbase</groupId>
1642         <version>${project.version}</version>
1643       </dependency>
1644       <dependency>
1645         <artifactId>hbase-metrics-api</artifactId>
1646         <groupId>org.apache.hbase</groupId>
1647         <version>${project.version}</version>
1648       </dependency>
1649       <dependency>
1650         <artifactId>hbase-metrics-api</artifactId>
1651         <groupId>org.apache.hbase</groupId>
1652         <version>${project.version}</version>
1653         <type>test-jar</type>
1654         <scope>test</scope>
1655       </dependency>
1656       <dependency>
1657         <artifactId>hbase-metrics</artifactId>
1658         <groupId>org.apache.hbase</groupId>
1659         <version>${project.version}</version>
1660       </dependency>
1661       <dependency>
1662         <artifactId>hbase-metrics</artifactId>
1663         <groupId>org.apache.hbase</groupId>
1664         <version>${project.version}</version>
1665         <type>test-jar</type>
1666         <scope>test</scope>
1667       </dependency>
1668       <!-- General dependencies -->
1669       <dependency>
1670         <groupId>com.github.stephenc.findbugs</groupId>
1671         <artifactId>findbugs-annotations</artifactId>
1672         <version>${findbugs-annotations}</version>
1673       </dependency>
1674       <!-- General dependencies -->
1675       <dependency>
1676         <groupId>org.codehaus.jettison</groupId>
1677         <artifactId>jettison</artifactId>
1678         <version>${jettison.version}</version>
1679       </dependency>
1680       <dependency>
1681         <groupId>log4j</groupId>
1682         <artifactId>log4j</artifactId>
1683         <version>${log4j.version}</version>
1684       </dependency>
1685       <!-- Avro dependencies we mostly get transitively, manual version coallescing -->
1686       <dependency>
1687         <groupId>org.apache.avro</groupId>
1688         <artifactId>avro</artifactId>
1689         <version>${avro.version}</version>
1690       </dependency>
1691       <!--This is not used by hbase directly.  Used by thrift,
1692           dropwizard and zk.-->
1693       <dependency>
1694         <groupId>org.slf4j</groupId>
1695         <artifactId>slf4j-api</artifactId>
1696         <version>${slf4j.version}</version>
1697       </dependency>
1698       <dependency>
1699         <groupId>io.dropwizard.metrics</groupId>
1700         <artifactId>metrics-core</artifactId>
1701         <version>${metrics-core.version}</version>
1702       </dependency>
1703       <dependency>
1704         <groupId>com.google.guava</groupId>
1705         <artifactId>guava</artifactId>
1706         <version>${guava.version}</version>
1707         <exclusions>
1708           <exclusion>
1709             <groupId>com.google.code.findbugs</groupId>
1710             <artifactId>jsr305</artifactId>
1711           </exclusion>
1712         </exclusions>
1713       </dependency>
1714       <dependency>
1715         <groupId>commons-collections</groupId>
1716         <artifactId>commons-collections</artifactId>
1717         <version>${collections.version}</version>
1718       </dependency>
1719       <dependency>
1720         <groupId>org.apache.httpcomponents</groupId>
1721         <artifactId>httpclient</artifactId>
1722         <version>${httpclient.version}</version>
1723       </dependency>
1724       <dependency>
1725         <groupId>org.apache.httpcomponents</groupId>
1726         <artifactId>httpcore</artifactId>
1727         <version>${httpcore.version}</version>
1728       </dependency>
1729       <dependency>
1730         <groupId>commons-cli</groupId>
1731         <artifactId>commons-cli</artifactId>
1732         <version>${commons-cli.version}</version>
1733       </dependency>
1734       <dependency>
1735         <groupId>commons-codec</groupId>
1736         <artifactId>commons-codec</artifactId>
1737         <version>${commons-codec.version}</version>
1738       </dependency>
1739       <dependency>
1740         <groupId>commons-io</groupId>
1741         <artifactId>commons-io</artifactId>
1742         <version>${commons-io.version}</version>
1743       </dependency>
1744       <dependency>
1745         <groupId>commons-lang</groupId>
1746         <artifactId>commons-lang</artifactId>
1747         <version>${commons-lang.version}</version>
1748       </dependency>
1749       <dependency>
1750         <groupId>commons-logging</groupId>
1751         <artifactId>commons-logging</artifactId>
1752         <version>${commons-logging.version}</version>
1753       </dependency>
1754       <dependency>
1755         <groupId>org.apache.commons</groupId>
1756         <artifactId>commons-math</artifactId>
1757         <version>${commons-math.version}</version>
1758       </dependency>
1759       <dependency>
1760         <groupId>org.apache.zookeeper</groupId>
1761         <artifactId>zookeeper</artifactId>
1762         <version>${zookeeper.version}</version>
1763         <exclusions>
1764           <exclusion>
1765             <groupId>jline</groupId>
1766             <artifactId>jline</artifactId>
1767           </exclusion>
1768           <exclusion>
1769             <groupId>com.sun.jmx</groupId>
1770             <artifactId>jmxri</artifactId>
1771           </exclusion>
1772           <exclusion>
1773             <groupId>com.sun.jdmk</groupId>
1774             <artifactId>jmxtools</artifactId>
1775           </exclusion>
1776           <exclusion>
1777             <groupId>javax.jms</groupId>
1778             <artifactId>jms</artifactId>
1779           </exclusion>
1780           <exclusion>
1781             <groupId>io.netty</groupId>
1782             <artifactId>netty</artifactId>
1783           </exclusion>
1784         </exclusions>
1785       </dependency>
1786       <dependency>
1787         <groupId>io.netty</groupId>
1788         <artifactId>netty-all</artifactId>
1789         <version>${netty.version}</version>
1790       </dependency>
1791       <dependency>
1792         <groupId>org.apache.thrift</groupId>
1793         <artifactId>libthrift</artifactId>
1794         <version>${thrift.version}</version>
1795         <exclusions>
1796           <exclusion>
1797             <groupId>org.slf4j</groupId>
1798             <artifactId>slf4j-simple</artifactId>
1799           </exclusion>
1800         </exclusions>
1801       </dependency>
1802       <dependency>
1803         <groupId>org.jruby</groupId>
1804         <artifactId>jruby-complete</artifactId>
1805         <version>${jruby.version}</version>
1806       </dependency>
1807       <dependency>
1808         <groupId>org.jruby.jcodings</groupId>
1809         <artifactId>jcodings</artifactId>
1810         <version>${jcodings.version}</version>
1811       </dependency>
1812       <dependency>
1813         <groupId>org.jruby.joni</groupId>
1814         <artifactId>joni</artifactId>
1815         <version>${joni.version}</version>
1816       </dependency>
1817       <!-- While jackson is also a dependency of jersey it
1818            can bring in jars from different, incompatible versions. We force
1819            the same version with these dependencies -->
1820       <dependency>
1821         <groupId>org.codehaus.jackson</groupId>
1822         <artifactId>jackson-core-asl</artifactId>
1823         <version>${jackson1.version}</version>
1824       </dependency>
1825       <dependency>
1826         <groupId>org.codehaus.jackson</groupId>
1827         <artifactId>jackson-mapper-asl</artifactId>
1828         <version>${jackson1.version}</version>
1829       </dependency>
1830       <dependency>
1831         <groupId>org.codehaus.jackson</groupId>
1832         <artifactId>jackson-jaxrs</artifactId>
1833         <version>${jackson1.version}</version>
1834       </dependency>
1835       <dependency>
1836         <groupId>org.codehaus.jackson</groupId>
1837         <artifactId>jackson-xc</artifactId>
1838         <version>${jackson1.version}</version>
1839       </dependency>
1840       <dependency>
1841         <groupId>org.jamon</groupId>
1842         <artifactId>jamon-runtime</artifactId>
1843         <version>${jamon-runtime.version}</version>
1844       </dependency>
1845       <!-- REST dependencies -->
1846       <dependency>
1847         <groupId>javax.servlet</groupId>
1848         <artifactId>javax.servlet-api</artifactId>
1849         <version>${servlet.api.version}</version>
1850       </dependency>
1851       <dependency>
1852         <groupId>javax.ws.rs</groupId>
1853         <artifactId>javax.ws.rs-api</artifactId>
1854         <version>${wx.rs.api.version}</version>
1855       </dependency>
1856       <dependency>
1857         <groupId>org.eclipse.jetty</groupId>
1858         <artifactId>jetty-server</artifactId>
1859         <version>${jetty.version}</version>
1860       </dependency>
1861       <dependency>
1862         <groupId>org.eclipse.jetty</groupId>
1863         <artifactId>jetty-servlet</artifactId>
1864         <version>${jetty.version}</version>
1865         <exclusions>
1866           <exclusion>
1867             <groupId>org.eclipse.jetty</groupId>
1868             <artifactId>servlet-api</artifactId>
1869           </exclusion>
1870         </exclusions>
1871       </dependency>
1872       <dependency>
1873         <groupId>org.eclipse.jetty</groupId>
1874         <artifactId>jetty-security</artifactId>
1875         <version>${jetty.version}</version>
1876       </dependency>
1877       <dependency>
1878         <groupId>org.eclipse.jetty</groupId>
1879         <artifactId>jetty-http</artifactId>
1880         <version>${jetty.version}</version>
1881       </dependency>
1882       <dependency>
1883         <groupId>org.eclipse.jetty</groupId>
1884         <artifactId>jetty-util</artifactId>
1885         <version>${jetty.version}</version>
1886       </dependency>
1887       <dependency>
1888         <groupId>org.eclipse.jetty</groupId>
1889         <artifactId>jetty-io</artifactId>
1890         <version>${jetty.version}</version>
1891       </dependency>
1892       <dependency>
1893         <groupId>org.eclipse.jetty</groupId>
1894         <artifactId>jetty-jsp</artifactId>
1895         <version>${jetty-jsp.version}</version>
1896       </dependency>
1897       <dependency>
1898         <groupId>org.eclipse.jetty</groupId>
1899         <artifactId>jetty-jmx</artifactId>
1900         <version>${jetty.version}</version>
1901       </dependency>
1902       <dependency>
1903         <groupId>org.eclipse.jetty</groupId>
1904         <artifactId>jetty-webapp</artifactId>
1905         <version>${jetty.version}</version>
1906       </dependency>
1907       <dependency>
1908         <groupId>org.eclipse.jetty</groupId>
1909         <artifactId>jetty-util-ajax</artifactId>
1910         <version>${jetty.version}</version>
1911       </dependency>
1912       <dependency>
1913         <groupId>com.google.protobuf</groupId>
1914         <artifactId>protobuf-java</artifactId>
1915         <version>${external.protobuf.version}</version>
1916       </dependency>
1917       <dependency>
1918         <groupId>org.glassfish.jersey.containers</groupId>
1919         <artifactId>jersey-container-servlet-core</artifactId>
1920         <version>${jersey.version}</version>
1921       </dependency>
1922       <dependency>
1923         <groupId>org.glassfish.jersey.media</groupId>
1924         <artifactId>jersey-media-json-jackson1</artifactId>
1925         <version>${jackson.version}</version>
1926       </dependency>
1927       <dependency>
1928         <groupId>javax.xml.bind</groupId>
1929         <artifactId>jaxb-api</artifactId>
1930         <version>${jaxb-api.version}</version>
1931         <exclusions>
1932           <exclusion>
1933             <groupId>javax.xml.stream</groupId>
1934             <artifactId>stax-api</artifactId>
1935           </exclusion>
1936         </exclusions>
1937       </dependency>
1938       <dependency>
1939         <groupId>junit</groupId>
1940         <artifactId>junit</artifactId>
1941         <version>${junit.version}</version>
1942       </dependency>
1943       <dependency>
1944         <groupId>org.hamcrest</groupId>
1945         <artifactId>hamcrest-core</artifactId>
1946         <version>${hamcrest.version}</version>
1947         <scope>test</scope>
1948       </dependency>
1949       <dependency>
1950         <groupId>org.mockito</groupId>
1951         <artifactId>mockito-all</artifactId>
1952         <version>${mockito-all.version}</version>
1953         <scope>test</scope>
1954       </dependency>
1955       <dependency>
1956         <groupId>org.apache.htrace</groupId>
1957         <artifactId>htrace-core</artifactId>
1958         <version>${htrace.version}</version>
1959       </dependency>
1960       <dependency>
1961         <groupId>com.lmax</groupId>
1962         <artifactId>disruptor</artifactId>
1963         <version>${disruptor.version}</version>
1964       </dependency>
1965       <dependency>
1966         <groupId>net.spy</groupId>
1967         <artifactId>spymemcached</artifactId>
1968         <version>${spy.version}</version>
1969         <optional>true</optional>
1970       </dependency>
1971       <dependency>
1972         <groupId>org.bouncycastle</groupId>
1973         <artifactId>bcprov-jdk16</artifactId>
1974         <version>${bouncycastle.version}</version>
1975         <scope>test</scope>
1976       </dependency>
1977       <dependency>
1978         <groupId>org.apache.kerby</groupId>
1979         <artifactId>kerb-client</artifactId>
1980         <version>${kerby.version}</version>
1981       </dependency>
1982       <dependency>
1983         <groupId>org.apache.kerby</groupId>
1984         <artifactId>kerb-simplekdc</artifactId>
1985         <version>${kerby.version}</version>
1986       </dependency>
1987       <dependency>
1988         <groupId>org.apache.commons</groupId>
1989         <artifactId>commons-crypto</artifactId>
1990         <version>${commons-crypto.version}</version>
1991         <exclusions>
1992           <exclusion>
1993             <groupId>net.java.dev.jna</groupId>
1994             <artifactId>jna</artifactId>
1995           </exclusion>
1996         </exclusions>
1997       </dependency>
1998       <dependency>
1999         <groupId>org.apache.curator</groupId>
2000         <artifactId>curator-recipes</artifactId>
2001         <version>${curator.version}</version>
2002       </dependency>
2003       <dependency>
2004         <groupId>org.apache.curator</groupId>
2005         <artifactId>curator-framework</artifactId>
2006         <version>${curator.version}</version>
2007       </dependency>
2008       <dependency>
2009         <groupId>org.apache.curator</groupId>
2010         <artifactId>curator-client</artifactId>
2011         <version>${curator.version}</version>
2012         <exclusions>
2013           <exclusion>
2014             <groupId>com.google.guava</groupId>
2015             <artifactId>guava</artifactId>
2016           </exclusion>
2017         </exclusions>
2018       </dependency>
2019       <dependency>
2020         <groupId>org.apache.hbase.thirdparty</groupId>
2021         <artifactId>hbase-shaded-miscellaneous</artifactId>
2022         <version>${hbase-thirdparty.version}</version>
2023       </dependency>
2024       <dependency>
2025         <groupId>org.apache.hbase.thirdparty</groupId>
2026         <artifactId>hbase-shaded-netty</artifactId>
2027         <version>${hbase-thirdparty.version}</version>
2028       </dependency>
2029       <dependency>
2030         <groupId>org.apache.hbase.thirdparty</groupId>
2031         <artifactId>hbase-shaded-protobuf</artifactId>
2032         <version>${hbase-thirdparty.version}</version>
2033       </dependency>
2034     </dependencies>
2035   </dependencyManagement>
2036   <!-- Dependencies needed by subprojects -->
2037   <dependencies>
2038     <dependency>
2039       <groupId>com.github.stephenc.findbugs</groupId>
2040       <artifactId>findbugs-annotations</artifactId>
2041       <scope>compile</scope>
2042     </dependency>
2043     <dependency>
2044       <groupId>log4j</groupId>
2045       <artifactId>log4j</artifactId>
2046     </dependency>
2047     <!-- Test dependencies -->
2048     <dependency>
2049       <groupId>junit</groupId>
2050       <artifactId>junit</artifactId>
2051     </dependency>
2052     <dependency>
2053       <groupId>org.mockito</groupId>
2054       <artifactId>mockito-all</artifactId>
2055     </dependency>
2056   </dependencies>
2057   <!--
2058   To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml )
2060  <settings>
2061   <servers>
2062     <server>
2063       <id>apache.releases.https</id>
2064       <username>hbase_committer</username>
2065       <password>********</password>
2066     </server>
2068     <server>
2069       <id>apache.snapshots.https</id>
2070       <username>hbase_committer</username>
2071       <password>********</password>
2072     </server>
2074   </servers>
2075  </settings>
2077   $ mvn deploy
2078 (or)
2079   $ mvn -s /my/path/settings.xml deploy
2081   -->
2082   <profiles>
2083     <profile>
2084       <id>rsgroup</id>
2085       <activation>
2086         <property>
2087             <name>!skip-rsgroup</name>
2088         </property>
2089       </activation>
2090       <modules>
2091         <module>hbase-rsgroup</module>
2092       </modules>
2093     </profile>
2094     <profile>
2095       <id>build-with-jdk8</id>
2096       <activation>
2097         <jdk>1.8</jdk>
2098       </activation>
2099       <build>
2100         <pluginManagement>
2101           <plugins>
2102             <plugin>
2103               <groupId>org.apache.maven.plugins</groupId>
2104               <artifactId>maven-javadoc-plugin</artifactId>
2105               <configuration>
2106                 <!-- TODO HBASE-15041 clean up our javadocs so jdk8 linter can be used -->
2107                 <additionalparam>-Xdoclint:none</additionalparam>
2108               </configuration>
2109             </plugin>
2110             <plugin>
2111               <groupId>org.codehaus.mojo</groupId>
2112               <artifactId>findbugs-maven-plugin</artifactId>
2113               <version>3.0.0</version>
2114               <!--NOTE: Findbugs 3.0.0 requires jdk7-->
2115               <configuration>
2116                 <excludeFilterFile>${project.basedir}/../dev-support/findbugs-exclude.xml</excludeFilterFile>
2117                 <findbugsXmlOutput>true</findbugsXmlOutput>
2118                 <xmlOutput>true</xmlOutput>
2119                 <effort>Max</effort>
2120               </configuration>
2121               <dependencies>
2122                 <dependency>
2123                   <groupId>com.github.spotbugs</groupId>
2124                   <artifactId>spotbugs</artifactId>
2125                   <version>${spotbugs.version}</version>
2126                 </dependency>
2127               </dependencies>
2128             </plugin>
2129           </plugins>
2130         </pluginManagement>
2131       </build>
2132     </profile>
2133     <!-- profile activated by the Jenkins patch testing job -->
2134     <profile>
2135       <id>jenkins.patch</id>
2136       <activation>
2137         <activeByDefault>false</activeByDefault>
2138         <property>
2139             <name>HBasePatchProcess</name>
2140         </property>
2141       </activation>
2142       <properties>
2143         <surefire.rerunFailingTestsCount>2</surefire.rerunFailingTestsCount>
2144       </properties>
2145       <build>
2146         <plugins>
2147           <plugin>
2148             <groupId>org.apache.maven.plugins</groupId>
2149             <artifactId>maven-antrun-plugin</artifactId>
2150             <inherited>false</inherited>
2151             <executions>
2152               <execution>
2153                 <phase>validate</phase>
2154                 <goals>
2155                   <goal>run</goal>
2156                 </goals>
2157                 <configuration>
2158                   <tasks>
2159                     <echo>Maven Execution Environment</echo>
2160                     <echo>MAVEN_OPTS="${env.MAVEN_OPTS}"</echo>
2161                   </tasks>
2162                 </configuration>
2163               </execution>
2164             </executions>
2165           </plugin>
2166         </plugins>
2167       </build>
2168     </profile>
2169     <profile>
2170       <id>jacoco</id>
2171       <activation>
2172         <activeByDefault>false</activeByDefault>
2173       </activation>
2174       <build>
2175         <plugins>
2176           <plugin>
2177             <groupId>org.jacoco</groupId>
2178             <artifactId>jacoco-maven-plugin</artifactId>
2179             <version>${jacoco.version}</version>
2180             <executions>
2181               <execution>
2182                 <id>prepare-agent</id>
2183                 <goals>
2184                   <goal>prepare-agent</goal>
2185                 </goals>
2186               </execution>
2187               <execution>
2188                 <id>report</id>
2189                 <phase>prepare-package</phase>
2190                 <goals>
2191                   <goal>report</goal>
2192                 </goals>
2193               </execution>
2194             </executions>
2195             <configuration>
2196               <systemPropertyVariables>
2197                 <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
2198               </systemPropertyVariables>
2199               <excludes>
2200                 <exclude>**/generated/**/*.class</exclude>
2201               </excludes>
2202             </configuration>
2203           </plugin>
2204         </plugins>
2205       </build>
2206     </profile>
2207     <profile>
2208       <id>os.linux</id>
2209       <activation>
2210         <activeByDefault>false</activeByDefault>
2211         <os>
2212           <family>Linux</family>
2213         </os>
2214       </activation>
2215       <properties>
2216         <build.platform>${os.name}-${os.arch}-${sun.arch.data.model}</build.platform>
2217       </properties>
2218     </profile>
2219     <profile>
2220       <id>os.mac</id>
2221       <activation>
2222         <os>
2223           <family>Mac</family>
2224         </os>
2225       </activation>
2226       <properties>
2227         <build.platform>Mac_OS_X-${sun.arch.data.model}</build.platform>
2228       </properties>
2229     </profile>
2230     <profile>
2231       <id>os.windows</id>
2232       <activation>
2233         <os>
2234           <family>Windows</family>
2235         </os>
2236       </activation>
2237       <properties>
2238         <build.platform>cygwin</build.platform>
2239         <argLine>${hbase-surefire.cygwin-argLine}</argLine>
2240       </properties>
2241     </profile>
2242     <!-- this profile should be activated for release builds -->
2243     <profile>
2244       <id>release</id>
2245       <build>
2246         <plugins>
2247           <plugin>
2248             <groupId>org.apache.rat</groupId>
2249             <artifactId>apache-rat-plugin</artifactId>
2250             <executions>
2251               <execution>
2252                 <phase>package</phase>
2253                 <goals>
2254                   <goal>check</goal>
2255                 </goals>
2256               </execution>
2257             </executions>
2258           </plugin>
2259           <plugin>
2260             <groupId>org.apache.maven.plugins</groupId>
2261             <artifactId>maven-enforcer-plugin</artifactId>
2262             <configuration>
2263               <rules>
2264                 <enforceBytecodeVersion>
2265                 <maxJdkVersion>${compileSource}</maxJdkVersion>
2266                 <message>HBase has unsupported dependencies.
2267   HBase requires that all dependencies be compiled with version ${compileSource} or earlier
2268   of the JDK to properly build from source.  You appear to be using a newer dependency. You can use
2269   either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
2270   Non-release builds can temporarily build with a newer JDK version by setting the
2271   'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
2272                 </message>
2273               </enforceBytecodeVersion>
2274             </rules>
2275           </configuration>
2276           </plugin>
2277         </plugins>
2278       </build>
2279     </profile>
2280     <!-- Dependency management profiles for submodules when building against specific hadoop branches.-->
2281     <!-- Submodules that need hadoop dependencies should declare
2282     profiles with activation properties matching the profile here.
2283     Generally, it should be sufficient to copy the first
2284     few lines of the profile you want to match.  -->
2285     <!-- profile for building against Hadoop 2.0.x
2286          This is the default.
2287          -->
2288     <profile>
2289       <id>hadoop-2.0</id>
2290       <activation>
2291         <property>
2292           <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
2293           <!--h2--><name>!hadoop.profile</name>
2294         </property>
2295       </activation>
2296       <modules>
2297         <module>hbase-hadoop2-compat</module>
2298       </modules>
2299       <properties>
2300         <hadoop.version>${hadoop-two.version}</hadoop.version>
2301         <compat.module>hbase-hadoop2-compat</compat.module>
2302         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2303       </properties>
2304       <dependencyManagement>
2305         <dependencies>
2306           <dependency>
2307             <groupId>org.apache.hadoop</groupId>
2308             <artifactId>hadoop-mapreduce-client-core</artifactId>
2309             <version>${hadoop-two.version}</version>
2310             <exclusions>
2311               <exclusion>
2312                 <groupId>io.netty</groupId>
2313                 <artifactId>netty</artifactId>
2314               </exclusion>
2315               <exclusion>
2316                 <groupId>javax.servlet</groupId>
2317                 <artifactId>servlet-api</artifactId>
2318               </exclusion>
2319             </exclusions>
2320           </dependency>
2321           <dependency>
2322             <groupId>org.apache.hadoop</groupId>
2323             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2324             <version>${hadoop-two.version}</version>
2325             <exclusions>
2326               <exclusion>
2327                 <groupId>io.netty</groupId>
2328                 <artifactId>netty</artifactId>
2329               </exclusion>
2330               <exclusion>
2331                 <groupId>javax.servlet</groupId>
2332                 <artifactId>servlet-api</artifactId>
2333               </exclusion>
2334             </exclusions>
2335           </dependency>
2336           <dependency>
2337             <groupId>org.apache.hadoop</groupId>
2338             <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2339             <version>${hadoop-two.version}</version>
2340             <type>test-jar</type>
2341             <scope>test</scope>
2342             <exclusions>
2343               <exclusion>
2344                 <groupId>io.netty</groupId>
2345                 <artifactId>netty</artifactId>
2346               </exclusion>
2347               <exclusion>
2348                 <groupId>javax.servlet</groupId>
2349                 <artifactId>servlet-api</artifactId>
2350               </exclusion>
2351             </exclusions>
2352           </dependency>
2353           <dependency>
2354             <groupId>org.apache.hadoop</groupId>
2355             <artifactId>hadoop-hdfs</artifactId>
2356             <exclusions>
2357               <exclusion>
2358                 <groupId>javax.servlet.jsp</groupId>
2359                 <artifactId>jsp-api</artifactId>
2360               </exclusion>
2361               <exclusion>
2362                 <groupId>javax.servlet</groupId>
2363                 <artifactId>servlet-api</artifactId>
2364               </exclusion>
2365               <exclusion>
2366                 <groupId>io.netty</groupId>
2367                 <artifactId>netty</artifactId>
2368               </exclusion>
2369               <exclusion>
2370                 <groupId>stax</groupId>
2371                 <artifactId>stax-api</artifactId>
2372               </exclusion>
2373               <exclusion>
2374                 <groupId>xerces</groupId>
2375                 <artifactId>xercesImpl</artifactId>
2376               </exclusion>
2377             </exclusions>
2378             <version>${hadoop-two.version}</version>
2379           </dependency>
2380           <dependency>
2381             <groupId>org.apache.hadoop</groupId>
2382             <artifactId>hadoop-hdfs</artifactId>
2383             <version>${hadoop-two.version}</version>
2384             <type>test-jar</type>
2385             <scope>test</scope>
2386             <exclusions>
2387               <exclusion>
2388                 <groupId>javax.servlet.jsp</groupId>
2389                 <artifactId>jsp-api</artifactId>
2390               </exclusion>
2391               <exclusion>
2392                 <groupId>javax.servlet</groupId>
2393                 <artifactId>servlet-api</artifactId>
2394               </exclusion>
2395               <exclusion>
2396                 <groupId>io.netty</groupId>
2397                 <artifactId>netty</artifactId>
2398               </exclusion>
2399               <exclusion>
2400                 <groupId>stax</groupId>
2401                 <artifactId>stax-api</artifactId>
2402               </exclusion>
2403               <exclusion>
2404                 <groupId>xerces</groupId>
2405                 <artifactId>xercesImpl</artifactId>
2406               </exclusion>
2407             </exclusions>
2408           </dependency>
2409           <dependency>
2410             <groupId>org.apache.hadoop</groupId>
2411             <artifactId>hadoop-auth</artifactId>
2412             <version>${hadoop-two.version}</version>
2413           </dependency>
2414           <dependency>
2415             <groupId>org.apache.hadoop</groupId>
2416             <artifactId>hadoop-common</artifactId>
2417             <version>${hadoop-two.version}</version>
2418             <exclusions>
2419               <exclusion>
2420                 <groupId>javax.servlet.jsp</groupId>
2421                 <artifactId>jsp-api</artifactId>
2422               </exclusion>
2423               <exclusion>
2424                 <groupId>javax.servlet</groupId>
2425                 <artifactId>servlet-api</artifactId>
2426               </exclusion>
2427               <exclusion>
2428                 <groupId>stax</groupId>
2429                 <artifactId>stax-api</artifactId>
2430               </exclusion>
2431               <exclusion>
2432                 <groupId>io.netty</groupId>
2433                 <artifactId>netty</artifactId>
2434               </exclusion>
2435               <exclusion>
2436                 <groupId>com.google.code.findbugs</groupId>
2437                 <artifactId>jsr305</artifactId>
2438               </exclusion>
2439               <exclusion>
2440                 <groupId>junit</groupId>
2441                 <artifactId>junit</artifactId>
2442               </exclusion>
2443             </exclusions>
2444           </dependency>
2445           <dependency>
2446             <groupId>org.apache.hadoop</groupId>
2447             <artifactId>hadoop-client</artifactId>
2448             <version>${hadoop-two.version}</version>
2449           </dependency>
2450           <!-- This was marked as test dep in earlier pom, but was scoped compile.
2451             Where do we actually need it? -->
2452           <dependency>
2453             <groupId>org.apache.hadoop</groupId>
2454             <artifactId>hadoop-minicluster</artifactId>
2455             <version>${hadoop-two.version}</version>
2456             <exclusions>
2457             <exclusion>
2458               <groupId>commons-httpclient</groupId>
2459               <artifactId>commons-httpclient</artifactId>
2460             </exclusion>
2461               <exclusion>
2462                 <groupId>javax.servlet.jsp</groupId>
2463                 <artifactId>jsp-api</artifactId>
2464               </exclusion>
2465               <exclusion>
2466                 <groupId>javax.servlet</groupId>
2467                 <artifactId>servlet-api</artifactId>
2468               </exclusion>
2469               <exclusion>
2470                 <groupId>stax</groupId>
2471                 <artifactId>stax-api</artifactId>
2472               </exclusion>
2473               <exclusion>
2474                 <groupId>io.netty</groupId>
2475                 <artifactId>netty</artifactId>
2476               </exclusion>
2477               <exclusion>
2478                 <groupId>com.google.code.findbugs</groupId>
2479                 <artifactId>jsr305</artifactId>
2480               </exclusion>
2481             </exclusions>
2482           </dependency>
2483           <dependency>
2484             <groupId>org.apache.hadoop</groupId>
2485             <artifactId>hadoop-minikdc</artifactId>
2486             <version>${hadoop-two.version}</version>
2487             <scope>test</scope>
2488           </dependency>
2489         </dependencies>
2490       </dependencyManagement>
2491     </profile>
2492     <!--
2493       profile for building against Hadoop 3.0.0. Activate using:
2494        mvn -Dhadoop.profile=3.0
2495     -->
2496     <profile>
2497       <id>hadoop-3.0</id>
2498       <activation>
2499         <property>
2500           <name>hadoop.profile</name>
2501           <value>3.0</value>
2502         </property>
2503       </activation>
2504       <modules>
2505         <!--For now, use hadoop2 compat module-->
2506         <module>hbase-hadoop2-compat</module>
2507       </modules>
2508       <properties>
2509         <hadoop.version>${hadoop-three.version}</hadoop.version>
2510         <!--Use this compat module for now. TODO: Make h3 one if we need one-->
2511         <compat.module>hbase-hadoop2-compat</compat.module>
2512         <assembly.file>src/main/assembly/hadoop-two-compat.xml</assembly.file>
2513       </properties>
2514      <dependencyManagement>
2515        <dependencies>
2516          <dependency>
2517            <groupId>org.apache.hadoop</groupId>
2518            <artifactId>hadoop-mapreduce-client-core</artifactId>
2519            <version>${hadoop-three.version}</version>
2520            <exclusions>
2521              <exclusion>
2522                <groupId>io.netty</groupId>
2523                <artifactId>netty</artifactId>
2524              </exclusion>
2525            </exclusions>
2526          </dependency>
2527          <dependency>
2528            <groupId>org.apache.hadoop</groupId>
2529            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2530            <version>${hadoop-three.version}</version>
2531            <exclusions>
2532              <exclusion>
2533                <groupId>io.netty</groupId>
2534                <artifactId>netty</artifactId>
2535              </exclusion>
2536            </exclusions>
2537          </dependency>
2538          <dependency>
2539            <groupId>org.apache.hadoop</groupId>
2540            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
2541            <version>${hadoop-three.version}</version>
2542            <type>test-jar</type>
2543            <scope>test</scope>
2544            <exclusions>
2545              <exclusion>
2546                <groupId>io.netty</groupId>
2547                <artifactId>netty</artifactId>
2548              </exclusion>
2549            </exclusions>
2550          </dependency>
2551          <dependency>
2552            <groupId>org.apache.hadoop</groupId>
2553            <artifactId>hadoop-hdfs</artifactId>
2554            <exclusions>
2555              <exclusion>
2556                <groupId>javax.servlet.jsp</groupId>
2557                <artifactId>jsp-api</artifactId>
2558              </exclusion>
2559              <exclusion>
2560                <groupId>javax.servlet</groupId>
2561                <artifactId>servlet-api</artifactId>
2562              </exclusion>
2563              <exclusion>
2564                <groupId>stax</groupId>
2565                <artifactId>stax-api</artifactId>
2566              </exclusion>
2567              <exclusion>
2568                <groupId>xerces</groupId>
2569                <artifactId>xercesImpl</artifactId>
2570              </exclusion>
2571            </exclusions>
2572            <version>${hadoop-three.version}</version>
2573          </dependency>
2574          <dependency>
2575            <groupId>org.apache.hadoop</groupId>
2576            <artifactId>hadoop-hdfs</artifactId>
2577            <version>${hadoop-three.version}</version>
2578            <type>test-jar</type>
2579            <scope>test</scope>
2580            <exclusions>
2581              <exclusion>
2582                <groupId>javax.servlet.jsp</groupId>
2583                <artifactId>jsp-api</artifactId>
2584              </exclusion>
2585              <exclusion>
2586                <groupId>javax.servlet</groupId>
2587                <artifactId>servlet-api</artifactId>
2588              </exclusion>
2589              <exclusion>
2590                <groupId>stax</groupId>
2591                <artifactId>stax-api</artifactId>
2592              </exclusion>
2593              <exclusion>
2594                <groupId>xerces</groupId>
2595                <artifactId>xercesImpl</artifactId>
2596              </exclusion>
2597            </exclusions>
2598          </dependency>
2599          <dependency>
2600            <groupId>org.apache.hadoop</groupId>
2601            <artifactId>hadoop-auth</artifactId>
2602            <version>${hadoop-three.version}</version>
2603          </dependency>
2604          <dependency>
2605            <groupId>org.apache.hadoop</groupId>
2606            <artifactId>hadoop-common</artifactId>
2607            <version>${hadoop-three.version}</version>
2608            <exclusions>
2609              <exclusion>
2610                <groupId>javax.servlet.jsp</groupId>
2611                <artifactId>jsp-api</artifactId>
2612              </exclusion>
2613              <exclusion>
2614                <groupId>javax.servlet</groupId>
2615                <artifactId>servlet-api</artifactId>
2616              </exclusion>
2617              <exclusion>
2618                <groupId>stax</groupId>
2619                <artifactId>stax-api</artifactId>
2620              </exclusion>
2621              <exclusion>
2622                <groupId>io.netty</groupId>
2623                <artifactId>netty</artifactId>
2624              </exclusion>
2625              <exclusion>
2626                <groupId>com.google.code.findbugs</groupId>
2627                <artifactId>jsr305</artifactId>
2628              </exclusion>
2629              <exclusion>
2630                <groupId>junit</groupId>
2631                <artifactId>junit</artifactId>
2632              </exclusion>
2633            </exclusions>
2634          </dependency>
2635          <dependency>
2636            <groupId>org.apache.hadoop</groupId>
2637            <artifactId>hadoop-client</artifactId>
2638            <version>${hadoop-three.version}</version>
2639          </dependency>
2640          <dependency>
2641            <groupId>org.apache.hadoop</groupId>
2642            <artifactId>hadoop-annotations</artifactId>
2643            <version>${hadoop-three.version}</version>
2644          </dependency>
2645          <!-- This was marked as test dep in earlier pom, but was scoped compile.
2646            Where do we actually need it? -->
2647          <dependency>
2648            <groupId>org.apache.hadoop</groupId>
2649            <artifactId>hadoop-minicluster</artifactId>
2650            <version>${hadoop-three.version}</version>
2651            <exclusions>
2652             <exclusion>
2653               <groupId>commons-httpclient</groupId>
2654               <artifactId>commons-httpclient</artifactId>
2655             </exclusion>
2656              <exclusion>
2657                <groupId>javax.servlet.jsp</groupId>
2658                <artifactId>jsp-api</artifactId>
2659              </exclusion>
2660              <exclusion>
2661                <groupId>javax.servlet</groupId>
2662                <artifactId>servlet-api</artifactId>
2663              </exclusion>
2664              <exclusion>
2665                <groupId>stax</groupId>
2666                <artifactId>stax-api</artifactId>
2667              </exclusion>
2668              <exclusion>
2669                <groupId>io.netty</groupId>
2670                <artifactId>netty</artifactId>
2671              </exclusion>
2672              <exclusion>
2673                <groupId>com.google.code.findbugs</groupId>
2674                <artifactId>jsr305</artifactId>
2675              </exclusion>
2676            </exclusions>
2677          </dependency>
2678          <dependency>
2679             <groupId>org.apache.hadoop</groupId>
2680             <artifactId>hadoop-minikdc</artifactId>
2681             <version>${hadoop-three.version}</version>
2682             <scope>test</scope>
2683           </dependency>
2684        </dependencies>
2685      </dependencyManagement>
2687     </profile>
2688     <!-- profiles for the tests
2689          See as well the properties of the project for the values
2690          when no profile is active.     -->
2691     <profile>
2692       <!-- Use it to launch all tests in the same JVM  -->
2693       <id>singleJVMTests</id>
2694       <activation>
2695         <activeByDefault>false</activeByDefault>
2696       </activation>
2697       <properties>
2698         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2699         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2700         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2701         <surefire.firstPartGroups/>
2702       </properties>
2703     </profile>
2704     <profile>
2705       <!-- Use it to launch small tests only -->
2706       <id>runSmallTests</id>
2707       <activation>
2708         <activeByDefault>false</activeByDefault>
2709       </activation>
2710       <properties>
2711         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2712         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2713         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2714         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
2715         <surefire.secondPartGroups/>
2716       </properties>
2717     </profile>
2718     <profile>
2719       <!-- Use it to launch medium tests only -->
2720       <id>runMediumTests</id>
2721       <activation>
2722         <activeByDefault>false</activeByDefault>
2723       </activation>
2724       <properties>
2725         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2726         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2727         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.firstPartGroups>
2728         <surefire.secondPartGroups/>
2729       </properties>
2730     </profile>
2731     <profile>
2732       <!-- Use it to launch large tests only -->
2733       <id>runLargeTests</id>
2734       <activation>
2735         <activeByDefault>false</activeByDefault>
2736       </activation>
2737       <properties>
2738         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2739         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2740         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.LargeTests</surefire.firstPartGroups>
2741         <surefire.secondPartGroups/>
2742       </properties>
2743     </profile>
2744     <profile>
2745       <!-- Use it to launch small & medium tests -->
2746       <id>runDevTests</id>
2747       <activation>
2748         <activeByDefault>false</activeByDefault>
2749       </activation>
2750       <properties>
2751         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2752         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2753         <surefire.skipSecondPart>false</surefire.skipSecondPart>
2754         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
2755         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests</surefire.secondPartGroups>
2756       </properties>
2757     </profile>
2758     <profile>
2759       <!-- Use it to launch all tests -->
2760       <id>runAllTests</id>
2761       <activation>
2762         <activeByDefault>false</activeByDefault>
2763       </activation>
2764       <properties>
2765         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2766         <surefire.secondPartForkCount>5</surefire.secondPartForkCount>
2767         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2768         <surefire.skipSecondPart>false</surefire.skipSecondPart>
2769         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SmallTests</surefire.firstPartGroups>
2770         <surefire.secondPartGroups>org.apache.hadoop.hbase.testclassification.MediumTests,org.apache.hadoop.hbase.testclassification.LargeTests</surefire.secondPartGroups>
2771       </properties>
2772     </profile>
2773     <profile>
2774       <id>runMiscTests</id>
2775       <activation>
2776         <activeByDefault>false</activeByDefault>
2777       </activation>
2778       <properties>
2779         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2780         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2781         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2782         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2783         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests
2784         </surefire.firstPartGroups>
2785         <surefire.secondPartGroups></surefire.secondPartGroups>
2786       </properties>
2787     </profile>
2788     <profile>
2789       <id>runCoprocessorTests</id>
2790       <activation>
2791         <activeByDefault>false</activeByDefault>
2792       </activation>
2793       <properties>
2794         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2795         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2796         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2797         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2798         <surefire.firstPartGroups>
2799           org.apache.hadoop.hbase.testclassification.CoprocessorTests
2800         </surefire.firstPartGroups>
2801         <surefire.secondPartGroups></surefire.secondPartGroups>
2802       </properties>
2803     </profile>
2804     <profile>
2805       <id>runClientTests</id>
2806       <activation>
2807         <activeByDefault>false</activeByDefault>
2808       </activation>
2809       <properties>
2810         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2811         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2812         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2813         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2814         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests
2815         </surefire.firstPartGroups>
2816         <surefire.secondPartGroups></surefire.secondPartGroups>
2817       </properties>
2818     </profile>
2819     <profile>
2820       <id>runMasterTests</id>
2821       <activation>
2822         <activeByDefault>false</activeByDefault>
2823       </activation>
2824       <properties>
2825         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2826         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2827         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2828         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2829         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests
2830         </surefire.firstPartGroups>
2831         <surefire.secondPartGroups></surefire.secondPartGroups>
2832       </properties>
2833     </profile>
2834     <profile>
2835       <id>runMapredTests</id>
2836       <activation>
2837         <activeByDefault>false</activeByDefault>
2838       </activation>
2839       <properties>
2840         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2841         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2842         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2843         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2844         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests
2845         </surefire.firstPartGroups>
2846         <surefire.secondPartGroups></surefire.secondPartGroups>
2847       </properties>
2848     </profile>
2849     <profile>
2850       <id>runMapreduceTests</id>
2851       <activation>
2852         <activeByDefault>false</activeByDefault>
2853       </activation>
2854       <properties>
2855         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2856         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2857         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2858         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2859         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests
2860         </surefire.firstPartGroups>
2861         <surefire.secondPartGroups></surefire.secondPartGroups>
2862       </properties>
2863     </profile>
2864     <profile>
2865       <id>runRegionServerTests</id>
2866       <activation>
2867         <activeByDefault>false</activeByDefault>
2868       </activation>
2869       <properties>
2870         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2871         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2872         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2873         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2874         <surefire.firstPartGroups>
2875           org.apache.hadoop.hbase.testclassification.RegionServerTests
2876         </surefire.firstPartGroups>
2877         <surefire.secondPartGroups></surefire.secondPartGroups>
2878       </properties>
2879     </profile>
2880     <profile>
2881       <id>runVerySlowMapReduceTests</id>
2882       <activation>
2883         <activeByDefault>false</activeByDefault>
2884       </activation>
2885       <properties>
2886         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
2887         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2888         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2889         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2890         <surefire.firstPartGroups>
2891           org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests
2892         </surefire.firstPartGroups>
2893         <surefire.secondPartGroups></surefire.secondPartGroups>
2894       </properties>
2895     </profile>
2897     <profile>
2898       <id>runVerySlowRegionServerTests</id>
2899       <activation>
2900         <activeByDefault>false</activeByDefault>
2901       </activation>
2902       <properties>
2903         <surefire.firstPartForkCount>2</surefire.firstPartForkCount>
2904         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2905         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2906         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2907         <surefire.firstPartGroups>
2908           org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests
2909         </surefire.firstPartGroups>
2910         <surefire.secondPartGroups></surefire.secondPartGroups>
2911       </properties>
2912     </profile>
2914     <profile>
2915       <id>runFilterTests</id>
2916       <activation>
2917         <activeByDefault>false</activeByDefault>
2918       </activation>
2919       <properties>
2920         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2921         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2922         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2923         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2924         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests
2925         </surefire.firstPartGroups>
2926         <surefire.secondPartGroups></surefire.secondPartGroups>
2927       </properties>
2928     </profile>
2929     <profile>
2930       <id>runIOTests</id>
2931       <activation>
2932         <activeByDefault>false</activeByDefault>
2933       </activation>
2934       <properties>
2935         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2936         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2937         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2938         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2939         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests
2940         </surefire.firstPartGroups>
2941         <surefire.secondPartGroups></surefire.secondPartGroups>
2942       </properties>
2943     </profile>
2944     <profile>
2945       <id>runRestTests</id>
2946       <activation>
2947         <activeByDefault>false</activeByDefault>
2948       </activation>
2949       <properties>
2950         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2951         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2952         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2953         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2954         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests
2955         </surefire.firstPartGroups>
2956         <surefire.secondPartGroups></surefire.secondPartGroups>
2957       </properties>
2958     </profile>
2959     <profile>
2960       <id>runRPCTests</id>
2961       <activation>
2962         <activeByDefault>false</activeByDefault>
2963       </activation>
2964       <properties>
2965         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2966         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2967         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2968         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2969         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests
2970         </surefire.firstPartGroups>
2971         <surefire.secondPartGroups></surefire.secondPartGroups>
2972       </properties>
2973     </profile>
2974     <profile>
2975       <id>runReplicationTests</id>
2976       <activation>
2977         <activeByDefault>false</activeByDefault>
2978       </activation>
2979       <properties>
2980         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2981         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2982         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2983         <surefire.skipSecondPart>true</surefire.skipSecondPart>
2984         <surefire.firstPartGroups>
2985           org.apache.hadoop.hbase.testclassification.ReplicationTests
2986         </surefire.firstPartGroups>
2987         <surefire.secondPartGroups></surefire.secondPartGroups>
2988       </properties>
2989     </profile>
2990     <profile>
2991       <id>runSecurityTests</id>
2992       <activation>
2993         <activeByDefault>false</activeByDefault>
2994       </activation>
2995       <properties>
2996         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
2997         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
2998         <surefire.skipFirstPart>false</surefire.skipFirstPart>
2999         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3000         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests
3001         </surefire.firstPartGroups>
3002         <surefire.secondPartGroups></surefire.secondPartGroups>
3003       </properties>
3004     </profile>
3005     <profile>
3006       <id>runFlakeyTests</id>
3007       <activation>
3008         <activeByDefault>false</activeByDefault>
3009       </activation>
3010       <properties>
3011         <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
3012         <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
3013         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3014         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3015         <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests
3016         </surefire.firstPartGroups>
3017         <surefire.secondPartGroups></surefire.secondPartGroups>
3018       </properties>
3019     </profile>
3021     <profile>
3022       <!-- Use it to launch tests locally-->
3023       <id>localTests</id>
3024       <activation>
3025         <property>
3026           <name>test</name>
3027         </property>
3028       </activation>
3029       <properties>
3030         <surefire.provider>surefire-junit4</surefire.provider>
3031         <surefire.skipFirstPart>false</surefire.skipFirstPart>
3032         <surefire.skipSecondPart>true</surefire.skipSecondPart>
3033         <surefire.firstPartGroups/>
3034       </properties>
3035     </profile>
3036     <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
3037          or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
3038          the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
3039          The report will be generated under target/site/clover/index.html when you run
3040          MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
3041     <profile>
3042       <id>clover</id>
3043       <activation>
3044         <activeByDefault>false</activeByDefault>
3045         <property>
3046           <name>clover</name>
3047         </property>
3048       </activation>
3049       <properties>
3050         <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
3051       </properties>
3052       <build>
3053         <plugins>
3054         <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
3055              our instrumented classes for the doclet will fail
3056           -->
3057           <plugin>
3058             <groupId>org.apache.maven.plugins</groupId>
3059             <artifactId>maven-javadoc-plugin</artifactId>
3060             <dependencies>
3061               <dependency>
3062                 <groupId>com.atlassian.maven.plugins</groupId>
3063                 <artifactId>maven-clover2-plugin</artifactId>
3064                 <version>${clover.version}</version>
3065               </dependency>
3066             </dependencies>
3067           </plugin>
3068           <plugin>
3069             <groupId>com.atlassian.maven.plugins</groupId>
3070             <artifactId>maven-clover2-plugin</artifactId>
3071             <version>${clover.version}</version>
3072             <configuration>
3073               <includesAllSourceRoots>true</includesAllSourceRoots>
3074               <includesTestSourceRoots>true</includesTestSourceRoots>
3075               <targetPercentage>50%</targetPercentage>
3076               <generateHtml>true</generateHtml>
3077               <generateXml>true</generateXml>
3078               <excludes>
3079                 <exclude>**/generated/**</exclude>
3080               </excludes>
3081             </configuration>
3082             <executions>
3083               <execution>
3084                 <id>clover-setup</id>
3085                 <phase>process-sources</phase>
3086                 <goals>
3087                   <goal>setup</goal>
3088                 </goals>
3089               </execution>
3090               <execution>
3091                 <id>clover</id>
3092                 <phase>site</phase>
3093                 <goals>
3094                   <goal>clover</goal>
3095                 </goals>
3096               </execution>
3097             </executions>
3098           </plugin>
3099         </plugins>
3100       </build>
3101     </profile>
3102     <profile>
3103       <id>errorProne</id>
3104       <activation>
3105         <activeByDefault>false</activeByDefault>
3106       </activation>
3107         <build>
3108             <plugins>
3109                 <!-- Turn on error-prone -->
3110                 <plugin>
3111                     <groupId>org.apache.maven.plugins</groupId>
3112                     <artifactId>maven-compiler-plugin</artifactId>
3113                     <version>${maven.compiler.version}</version>
3114                     <configuration>
3115                         <compilerId>javac-with-errorprone</compilerId>
3116                         <forceJavacCompilerUse>true</forceJavacCompilerUse>
3117                     </configuration>
3118                     <dependencies>
3119                         <dependency>
3120                             <groupId>org.codehaus.plexus</groupId>
3121                             <artifactId>plexus-compiler-javac-errorprone</artifactId>
3122                             <version>2.5</version>
3123                         </dependency>
3124                     </dependencies>
3125                 </plugin>
3126             </plugins>
3127         </build>
3128     </profile>
3129   </profiles>
3130   <!-- See http://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
3131   <reporting>
3132     <plugins>
3133       <plugin>
3134         <artifactId>maven-project-info-reports-plugin</artifactId>
3135         <reportSets>
3136           <reportSet>
3137             <reports>
3138               <report>cim</report>
3139               <report>dependencies</report>
3140               <report>dependency-convergence</report>
3141               <report>dependency-info</report>
3142               <report>dependency-management</report>
3143               <report>index</report>
3144               <report>issue-tracking</report>
3145               <report>license</report>
3146               <report>mailing-list</report>
3147               <report>plugin-management</report>
3148               <report>plugins</report>
3149               <report>project-team</report>
3150               <report>scm</report>
3151               <report>summary</report>
3152             </reports>
3153           </reportSet>
3154         </reportSets>
3155         <!-- see src/main/site/site.xml for selected reports -->
3156         <configuration>
3157           <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
3158         </configuration>
3159       </plugin>
3161       <plugin>
3162         <groupId>org.apache.maven.plugins</groupId>
3163         <artifactId>maven-javadoc-plugin</artifactId>
3164         <reportSets>
3165           <!-- Dev API -->
3166           <reportSet>
3167             <id>devapi</id>
3168             <reports>
3169               <report>aggregate</report>
3170             </reports>
3171             <configuration>
3172               <destDir>devapidocs</destDir>
3173               <name>Developer API</name>
3174               <description>The full HBase API, including private and unstable APIs</description>
3175               <sourceFileExcludes>
3176                 <exclude>**/generated/*</exclude>
3177                 <exclude>**/protobuf/*</exclude>
3178                 <exclude>**/*.scala</exclude>
3179               </sourceFileExcludes>
3180               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.spark:org.apache.hadoop.hbase.generated*</excludePackageNames>
3181               <show>private</show> <!-- (shows all classes and members) -->
3182               <quiet>true</quiet>
3183               <linksource>true</linksource>
3184               <sourcetab>2</sourcetab>
3185               <validateLinks>true</validateLinks>
3186               <fixClassComment>true</fixClassComment>
3187               <fixFieldComment>true</fixFieldComment>
3188               <fixMethodComment>true</fixMethodComment>
3189               <fixTags>all</fixTags>
3190               <notimestamp>true</notimestamp>
3191               <!-- Pass some options straight to the javadoc executable since it is easier -->
3192               <additionalJOption>-J-Xmx2G</additionalJOption>
3193               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3194               <additionalDependencies>
3195                 <additionalDependency>
3196                   <groupId>org.mockito</groupId>
3197                   <artifactId>mockito-all</artifactId>
3198                   <version>${mockito-all.version}</version>
3199                 </additionalDependency>
3200                 <additionalDependency>
3201                   <groupId>org.hamcrest</groupId>
3202                   <artifactId>hamcrest-core</artifactId>
3203                   <version>${hamcrest.version}</version>
3204                 </additionalDependency>
3205               </additionalDependencies>
3206               <inherited>false</inherited>
3207             </configuration>
3208           </reportSet>
3209           <reportSet>
3210             <id>testdevapi</id>
3211             <reports>
3212               <report>test-aggregate</report>
3213             </reports>
3214             <configuration>
3215               <destDir>testdevapidocs</destDir>
3216               <name>Developer API</name>
3217               <description>The full HBase API test code, including private and unstable APIs</description>
3218               <sourceFileExcludes>
3219                 <exclude>**/generated/*</exclude>
3220                 <exclude>**/protobuf/*</exclude>
3221                 <exclude>**/*.scala</exclude>
3222               </sourceFileExcludes>
3223               <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.spark:org.apache.hadoop.hbase.generated*</excludePackageNames>
3224               <show>private</show> <!-- (shows all classes and members) -->
3225               <quiet>true</quiet>
3226               <linksource>true</linksource>
3227               <sourcetab>2</sourcetab>
3228               <validateLinks>true</validateLinks>
3229               <fixClassComment>true</fixClassComment>
3230               <fixFieldComment>true</fixFieldComment>
3231               <fixMethodComment>true</fixMethodComment>
3232               <fixTags>all</fixTags>
3233               <notimestamp>true</notimestamp>
3234               <!-- Pass some options straight to the javadoc executable since it is easier -->
3235               <additionalJOption>-J-Xmx2G</additionalJOption>
3236               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3237               <additionalDependencies>
3238                 <additionalDependency>
3239                   <groupId>org.mockito</groupId>
3240                   <artifactId>mockito-all</artifactId>
3241                   <version>${mockito-all.version}</version>
3242                 </additionalDependency>
3243                 <additionalDependency>
3244                   <groupId>org.hamcrest</groupId>
3245                   <artifactId>hamcrest-core</artifactId>
3246                   <version>${hamcrest.version}</version>
3247                 </additionalDependency>
3248               </additionalDependencies>
3249               <inherited>false</inherited>
3250             </configuration>
3251           </reportSet>
3253           <!-- User API -->
3254           <reportSet>
3255             <id>userapi</id>
3256             <reports>
3257               <report>aggregate</report>
3258             </reports>
3259             <configuration>
3260               <doclet>
3261                 org.apache.hadoop.hbase.classification.tools.IncludePublicAnnotationsStandardDoclet
3262               </doclet>
3263               <docletArtifact>
3264                 <groupId>org.apache.hbase</groupId>
3265                 <artifactId>hbase-annotations</artifactId>
3266                 <version>${project.version}</version>
3267               </docletArtifact>
3268               <useStandardDocletOptions>true</useStandardDocletOptions>
3269               <destDir>apidocs</destDir>
3270               <name>User API</name>
3271               <description>The HBase Application Programmer's API</description>
3272               <excludePackageNames>
3273                 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*
3274               </excludePackageNames>
3275               <!-- switch on dependency-driven aggregation -->
3276               <includeDependencySources>false</includeDependencySources>
3277               <dependencySourceIncludes>
3278                 <!-- include ONLY dependencies I control -->
3279                 <dependencySourceInclude>org.apache.hbase:hbase-annotations</dependencySourceInclude>
3280               </dependencySourceIncludes>
3281               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
3282               <show>protected</show> <!-- (shows only public and protected classes and members) -->
3283               <quiet>true</quiet>
3284               <linksource>true</linksource>
3285               <sourcetab>2</sourcetab>
3286               <validateLinks>true</validateLinks>
3287               <fixClassComment>true</fixClassComment>
3288               <fixFieldComment>true</fixFieldComment>
3289               <fixMethodComment>true</fixMethodComment>
3290               <fixTags>all</fixTags>
3291               <notimestamp>true</notimestamp>
3292               <!-- Pass some options straight to the javadoc executable since it is easier -->
3293               <additionalJOption>-J-Xmx2G</additionalJOption>
3294               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3295               <additionalDependencies>
3296                 <additionalDependency>
3297                   <groupId>org.mockito</groupId>
3298                   <artifactId>mockito-all</artifactId>
3299                   <version>${mockito-all.version}</version>
3300                 </additionalDependency>
3301                 <additionalDependency>
3302                   <groupId>org.hamcrest</groupId>
3303                   <artifactId>hamcrest-core</artifactId>
3304                   <version>${hamcrest.version}</version>
3305                 </additionalDependency>
3306               </additionalDependencies>
3307               <inherited>false</inherited>
3308             </configuration>
3309           </reportSet>
3310           <!-- User Test API -->
3311           <reportSet>
3312             <id>testuserapi</id>
3313             <reports>
3314               <report>test-aggregate</report>
3315             </reports>
3316             <configuration>
3317               <doclet>
3318                 org.apache.hadoop.hbase.classification.tools.IncludePublicAnnotationsStandardDoclet
3319               </doclet>
3320               <docletArtifact>
3321                 <groupId>org.apache.hbase</groupId>
3322                 <artifactId>hbase-annotations</artifactId>
3323                 <version>${project.version}</version>
3324               </docletArtifact>
3325               <useStandardDocletOptions>true</useStandardDocletOptions>
3326               <destDir>testapidocs</destDir>
3327               <name>User API</name>
3328               <description>The HBase Application Programmer's API</description>
3329               <excludePackageNames>
3330                 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*
3331               </excludePackageNames>
3332               <!-- switch on dependency-driven aggregation -->
3333               <includeDependencySources>false</includeDependencySources>
3334               <dependencySourceIncludes>
3335                 <!-- include ONLY dependencies I control -->
3336                 <dependencySourceInclude>org.apache.hbase:hbase-annotations</dependencySourceInclude>
3337               </dependencySourceIncludes>
3338               <sourceFilesExclude>**/generated/*</sourceFilesExclude>
3339               <show>protected</show> <!-- (shows only public and protected classes and members) -->
3340               <quiet>true</quiet>
3341               <linksource>true</linksource>
3342               <sourcetab>2</sourcetab>
3343               <validateLinks>true</validateLinks>
3344               <fixClassComment>true</fixClassComment>
3345               <fixFieldComment>true</fixFieldComment>
3346               <fixMethodComment>true</fixMethodComment>
3347               <fixTags>all</fixTags>
3348               <notimestamp>true</notimestamp>
3349               <!-- Pass some options straight to the javadoc executable since it is easier -->
3350               <additionalJOption>-J-Xmx2G</additionalJOption>
3351               <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
3352               <additionalDependencies>
3353                 <additionalDependency>
3354                   <groupId>org.mockito</groupId>
3355                   <artifactId>mockito-all</artifactId>
3356                   <version>${mockito-all.version}</version>
3357                 </additionalDependency>
3358                 <additionalDependency>
3359                   <groupId>org.hamcrest</groupId>
3360                   <artifactId>hamcrest-core</artifactId>
3361                   <version>${hamcrest.version}</version>
3362                 </additionalDependency>
3363               </additionalDependencies>
3364               <inherited>false</inherited>
3365             </configuration>
3366           </reportSet>
3367         </reportSets>
3368       </plugin>
3370       <plugin>
3371         <groupId>org.apache.maven.plugins</groupId>
3372         <artifactId>maven-checkstyle-plugin</artifactId>
3373         <version>${maven.checkstyle.version}</version>
3374         <configuration>
3375           <excludes>target/**</excludes>
3376           <configLocation>hbase/checkstyle.xml</configLocation>
3377           <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
3378         </configuration>
3379       </plugin>
3381       <plugin>
3382         <groupId>org.scala-tools</groupId>
3383         <artifactId>maven-scala-plugin</artifactId>
3384       </plugin>
3385     </plugins>
3386   </reporting>
3387   <distributionManagement>
3388     <site>
3389       <id>hbase.apache.org</id>
3390       <name>HBase Website at hbase.apache.org</name>
3391       <!-- On why this is the tmp dir and not hbase.apache.org, see
3392                https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
3393                -->
3394       <url>file:///tmp</url>
3395     </site>
3396   </distributionManagement>
3397   <repositories>
3398     <repository>
3399         <id>project.local</id>
3400         <name>project</name>
3401         <url>file:${project.basedir}/src/main/site/resources/repo</url>
3402     </repository>
3403 </repositories>
3404 </project>