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