HBASE-22501 Modify the hadoop support matrix in the ref guide
[hbase.git] / hbase-it / pom.xml
blob061b7b2800f3f836f3b4595c12df6bfd078f4d6c
1 <?xml version="1.0"?>
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/xsd/maven-4.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  */
21 -->
22   <modelVersion>4.0.0</modelVersion>
23   <parent>
24     <artifactId>hbase-build-configuration</artifactId>
25     <groupId>org.apache.hbase</groupId>
26     <version>3.0.0-SNAPSHOT</version>
27     <relativePath>../hbase-build-configuration</relativePath>
28   </parent>
30   <artifactId>hbase-it</artifactId>
31   <name>Apache HBase - Integration Tests</name>
32   <description>Integration and System tests for HBase</description>
34   <properties>
35     <!-- Test inclusion patterns used by failsafe configuration -->
36     <unittest.include>**/Test*.java</unittest.include>
37     <integrationtest.include>**/IntegrationTest*.java</integrationtest.include>
38     <!-- To Run Tests with a particular Xmx Value use -Dfailsafe.Xmx=XXXg -->
39     <failsafe.Xmx>4g</failsafe.Xmx>
40     <!-- To run a single integration test, use -Dit.test=IntegrationTestXXX -->
41   </properties>
43   <build>
44     <testResources>
45       <testResource>
46          <!-- We depend on hbase-server test resources -->
47         <directory>../hbase-server/src/test/resources</directory>
48         <excludes>
49           <exclude>META-INF/NOTICE</exclude>
50           <exclude>META-INF/LICENSE</exclude>
51         </excludes>
52       </testResource>
53     </testResources>
54     <pluginManagement>
55       <plugins>
56         <!-- Make a jar and put the sources in the jar -->
57         <plugin>
58           <groupId>org.apache.maven.plugins</groupId>
59           <artifactId>maven-source-plugin</artifactId>
60         </plugin>
61       <plugin>
62         <!--Make it so assembly:single does nothing in here-->
63         <artifactId>maven-assembly-plugin</artifactId>
64         <configuration>
65           <skipAssembly>true</skipAssembly>
66         </configuration>
67       </plugin>
68         <plugin>
69           <groupId>org.apache.maven.plugins</groupId>
70           <artifactId>maven-failsafe-plugin</artifactId>
71           <version>${surefire.version}</version>
72           <dependencies>
73             <dependency>
74               <groupId>org.apache.maven.surefire</groupId>
75               <artifactId>surefire-junit4</artifactId>
76               <version>${surefire.version}</version>
77             </dependency>
78           </dependencies>
79           <configuration>
80             <includes>
81               <include>${integrationtest.include}</include>
82             </includes>
83             <excludes>
84               <exclude>${unittest.include}</exclude>
85               <exclude>**/*$*</exclude>
86             </excludes>
87             <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
88             <environmentVariables>
89               <LD_LIBRARY_PATH>${env.LD_LIBRARY_PATH}:${project.build.directory}/nativelib</LD_LIBRARY_PATH>
90               <DYLD_LIBRARY_PATH>${env.DYLD_LIBRARY_PATH}:${project.build.directory}/nativelib</DYLD_LIBRARY_PATH>
91               <MALLOC_ARENA_MAX>4</MALLOC_ARENA_MAX>
92             </environmentVariables>
93             <failIfNoTests>false</failIfNoTests>
94             <testFailureIgnore>false</testFailureIgnore>
95           </configuration>
96           <executions>
97             <execution>
98               <id>integration-test</id>
99               <phase>integration-test</phase>
100               <goals>
101                 <goal>integration-test</goal>
102               </goals>
103             </execution>
104             <execution>
105               <id>verify</id>
106               <phase>verify</phase>
107               <goals>
108                 <goal>verify</goal>
109               </goals>
110             </execution>
111           </executions>
112         </plugin>
113       </plugins>
114     </pluginManagement>
116     <plugins>
117       <!--  Run integration tests with mvn verify -->
118       <plugin>
119         <groupId>org.apache.maven.plugins</groupId>
120         <artifactId>maven-failsafe-plugin</artifactId>
121           <configuration>
122             <skip>false</skip>
123             <forkMode>always</forkMode>
124             <!-- TODO: failsafe does timeout, but verify does not fail the build because of the timeout.
125                  I believe it is a failsafe bug, we may consider using surefire -->
126             <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
127             <argLine>-enableassertions -Xmx${failsafe.Xmx}
128                 -Djava.security.egd=file:/dev/./urandom -XX:+CMSClassUnloadingEnabled
129                 -verbose:gc -XX:+PrintCommandLineFlags  -XX:+PrintFlagsFinal</argLine>
130           </configuration>
131       </plugin>
132       <plugin>
133         <groupId>net.revelc.code</groupId>
134         <artifactId>warbucks-maven-plugin</artifactId>
135       </plugin>
136     </plugins>
137   </build>
139   <dependencies>
140     <!--This one is upfront to get in front of
141          any dependency that pulls in jersey-core.
142          Jersey-core has implemented version 1
143          Interfaces of what is in this dependency
144          which does version 2.-->
145     <dependency>
146       <groupId>javax.ws.rs</groupId>
147       <artifactId>javax.ws.rs-api</artifactId>
148       <scope>test</scope>
149     </dependency>
150         <!-- Intra-project dependencies -->
151     <dependency>
152       <groupId>org.apache.hbase</groupId>
153       <artifactId>hbase-annotations</artifactId>
154       <type>test-jar</type>
155       <scope>test</scope>
156     </dependency>
157     <dependency>
158       <groupId>org.apache.hbase</groupId>
159       <artifactId>hbase-common</artifactId>
160       <type>jar</type>
161     </dependency>
162     <dependency>
163       <groupId>org.apache.hbase</groupId>
164       <artifactId>hbase-protocol</artifactId>
165     </dependency>
166     <dependency>
167       <groupId>org.apache.hbase</groupId>
168       <artifactId>hbase-protocol-shaded</artifactId>
169     </dependency>
170     <dependency>
171       <groupId>org.apache.hbase</groupId>
172       <artifactId>hbase-client</artifactId>
173     </dependency>
174     <dependency>
175       <groupId>org.apache.hbase</groupId>
176       <artifactId>hbase-mapreduce</artifactId>
177     </dependency>
178     <dependency>
179       <groupId>org.apache.hbase</groupId>
180       <artifactId>hbase-mapreduce</artifactId>
181       <type>test-jar</type>
182       <scope>test</scope>
183     </dependency>
184     <dependency>
185       <groupId>org.apache.hbase</groupId>
186       <artifactId>hbase-rsgroup</artifactId>
187     </dependency>
188     <dependency>
189       <groupId>org.apache.hbase</groupId>
190       <artifactId>hbase-rsgroup</artifactId>
191       <type>test-jar</type>
192       <scope>test</scope>
193     </dependency>
194     <dependency>
195       <groupId>org.apache.hbase</groupId>
196       <artifactId>hbase-server</artifactId>
197     </dependency>
198     <dependency>
199       <groupId>org.apache.hbase</groupId>
200       <artifactId>${compat.module}</artifactId>
201       <version>${project.version}</version>
202     </dependency>
203     <dependency>
204       <groupId>org.apache.hbase</groupId>
205       <artifactId>hbase-testing-util</artifactId>
206       <exclusions>
207         <!--This dependency pulls in hadoop-minicluster
208              which pulls in the below. It messes up
209              this build at assembly time. See HBASE-22029-->
210         <exclusion>
211          <groupId>com.sun.jersey</groupId>
212          <artifactId>jersey-core</artifactId>
213         </exclusion>
214       </exclusions>
215     </dependency>
216     <dependency>
217       <groupId>org.apache.hbase</groupId>
218       <artifactId>hbase-backup</artifactId>
219     </dependency>
220     <dependency>
221       <groupId>org.apache.hbase.thirdparty</groupId>
222       <artifactId>hbase-shaded-miscellaneous</artifactId>
223     </dependency>
224     <dependency>
225       <groupId>io.dropwizard.metrics</groupId>
226       <artifactId>metrics-core</artifactId>
227     </dependency>
228     <dependency>
229       <groupId>org.slf4j</groupId>
230       <artifactId>slf4j-api</artifactId>
231     </dependency>
232     <dependency>
233       <groupId>org.apache.commons</groupId>
234       <artifactId>commons-math3</artifactId>
235     </dependency>
236     <dependency>
237       <groupId>org.apache.commons</groupId>
238       <artifactId>commons-lang3</artifactId>
239     </dependency>
240     <dependency>
241       <groupId>org.apache.htrace</groupId>
242       <artifactId>htrace-core4</artifactId>
243     </dependency>
244     <dependency>
245       <groupId>org.glassfish.jersey.core</groupId>
246       <artifactId>jersey-client</artifactId>
247     </dependency>
248     <!-- Hadoop needs Netty 3.x at test scope for the minicluster -->
249     <dependency>
250       <groupId>io.netty</groupId>
251       <artifactId>netty</artifactId>
252       <version>${netty.hadoop.version}</version>
253       <scope>test</scope>
254     </dependency>
255     <dependency>
256       <!--For Hadoop-->
257       <groupId>log4j</groupId>
258       <artifactId>log4j</artifactId>
259     </dependency>
260     <dependency>
261       <groupId>junit</groupId>
262       <artifactId>junit</artifactId>
263       <scope>test</scope>
264     </dependency>
265     <dependency>
266       <groupId>org.mockito</groupId>
267       <artifactId>mockito-core</artifactId>
268       <scope>test</scope>
269     </dependency>
270   </dependencies>
272   <profiles>
273     <!-- Skip the tests in this module -->
274     <profile>
275       <id>skipIntegrationTests</id>
276       <activation>
277         <property>
278           <name>skipIntegrationTests</name>
279         </property>
280       </activation>
281       <properties>
282         <skipTests>true</skipTests>
283       </properties>
284     </profile>
285     <profile>
286       <id>build-with-jdk11</id>
287       <activation>
288         <jdk>[1.11,)</jdk>
289       </activation>
290       <dependencies>
291         <dependency>
292           <groupId>com.sun.xml.ws</groupId>
293           <artifactId>jaxws-ri</artifactId>
294           <type>pom</type>
295         </dependency>
296       </dependencies>
297     </profile>
298     <!-- profile for building against Hadoop 2.x.  This is the default -->
299     <profile>
300       <id>hadoop-2.0</id>
301       <activation>
302         <property>
303             <!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
304             <!--h2--><name>!hadoop.profile</name>
305         </property>
306       </activation>
307       <dependencies>
308         <dependency>
309           <groupId>org.apache.hadoop</groupId>
310           <artifactId>hadoop-mapreduce-client-core</artifactId>
311           <exclusions>
312             <exclusion>
313               <groupId>com.google.guava</groupId>
314               <artifactId>guava</artifactId>
315             </exclusion>
316           </exclusions>
317         </dependency>
318         <dependency>
319           <groupId>org.apache.hadoop</groupId>
320           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
321           <type>test-jar</type>
322           <scope>test</scope>
323           <exclusions>
324             <exclusion>
325               <groupId>com.google.guava</groupId>
326               <artifactId>guava</artifactId>
327             </exclusion>
328           </exclusions>
329         </dependency>
330         <dependency>
331           <groupId>org.apache.hadoop</groupId>
332           <artifactId>hadoop-common</artifactId>
333         </dependency>
334         <dependency>
335           <groupId>org.apache.hadoop</groupId>
336           <artifactId>hadoop-minikdc</artifactId>
337         </dependency>
338       </dependencies>
339       <build>
340         <plugins>
341           <plugin>
342             <artifactId>maven-dependency-plugin</artifactId>
343             <executions>
344               <execution>
345                 <id>create-mrapp-generated-classpath</id>
346                 <phase>generate-test-resources</phase>
347                 <goals>
348                   <goal>build-classpath</goal>
349                 </goals>
350                 <configuration>
351                   <!-- needed to run the unit test for DS to generate
352                   the required classpath that is required in the env
353                   of the launch container in the mini mr/yarn cluster
354                   -->
355                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
356                 </configuration>
357               </execution>
358             </executions>
359           </plugin>
360         </plugins>
361       </build>
362     </profile>
364     <!--
365       profile for building against Hadoop 3.0.x. Activate using:
366        mvn -Dhadoop.profile=3.0
367     -->
368     <profile>
369       <id>hadoop-3.0</id>
370       <activation>
371         <property>
372           <name>hadoop.profile</name>
373           <value>3.0</value>
374         </property>
375       </activation>
376       <properties>
377         <hadoop.version>3.0-SNAPSHOT</hadoop.version>
378       </properties>
379       <dependencies>
380             <dependency>
381           <groupId>org.apache.hadoop</groupId>
382           <artifactId>hadoop-common</artifactId>
383         </dependency>
384         <dependency>
385           <groupId>org.apache.hadoop</groupId>
386           <artifactId>hadoop-minicluster</artifactId>
387         </dependency>
388         <dependency>
389           <groupId>org.apache.hadoop</groupId>
390           <artifactId>hadoop-minikdc</artifactId>
391         </dependency>
392       </dependencies>
393       <build>
394         <plugins>
395           <plugin>
396             <artifactId>maven-dependency-plugin</artifactId>
397             <executions>
398               <execution>
399                 <id>create-mrapp-generated-classpath</id>
400                 <phase>generate-test-resources</phase>
401                 <goals>
402                   <goal>build-classpath</goal>
403                 </goals>
404                 <configuration>
405                   <!-- needed to run the unit test for DS to generate
406                   the required classpath that is required in the env
407                   of the launch container in the mini mr/yarn cluster
408                   -->
409                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
410                 </configuration>
411               </execution>
412             </executions>
413           </plugin>
414         </plugins>
415       </build>
416     </profile>
417     <profile>
418       <id>eclipse-specific</id>
419       <activation>
420         <property>
421           <name>m2e.version</name>
422         </property>
423       </activation>
424       <build>
425         <pluginManagement>
426           <plugins>
427             <!--This plugin's configuration is used to store Eclipse m2e settings
428                  only. It has no influence on the Maven build itself.-->
429             <plugin>
430               <groupId>org.eclipse.m2e</groupId>
431               <artifactId>lifecycle-mapping</artifactId>
432               <configuration>
433                 <lifecycleMappingMetadata>
434                   <pluginExecutions>
435                     <pluginExecution>
436                       <pluginExecutionFilter>
437                         <groupId>org.apache.maven.plugins</groupId>
438                         <artifactId>maven-dependency-plugin</artifactId>
439                         <versionRange>[2.8,)</versionRange>
440                         <goals>
441                           <goal>build-classpath</goal>
442                         </goals>
443                       </pluginExecutionFilter>
444                       <action>
445                         <ignore></ignore>
446                       </action>
447                     </pluginExecution>
448                   </pluginExecutions>
449                 </lifecycleMappingMetadata>
450               </configuration>
451             </plugin>
452           </plugins>
453         </pluginManagement>
454       </build>
455     </profile>
456   </profiles>
458   <reporting>
459     <plugins>
460     <plugin>
461       <groupId>org.apache.maven.plugins</groupId>
462       <artifactId>maven-surefire-report-plugin</artifactId>
463       <version>${surefire.version}</version>
464       <reportSets>
465         <reportSet>
466           <id>integration-tests</id>
467           <reports>
468             <report>report-only</report>
469           </reports>
470           <configuration>
471             <outputName>failsafe-report</outputName>
472             <reportsDirectories>
473               <reportsDirectory>${project.build.directory}/failsafe-reports</reportsDirectory>
474             </reportsDirectories>
475           </configuration>
476         </reportSet>
477       </reportSets>
478     </plugin>
479   </plugins>
480   </reporting>
482 </project>