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