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