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