HBASE-26791 Memstore flush fencing issue for SFT (#4202)
[hbase.git] / hbase-server / pom.xml
blobe2f16df0809eadc2c6d2b52cd427d2892a81ed87
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-alpha-3-SNAPSHOT</version>
27     <relativePath>../hbase-build-configuration</relativePath>
28   </parent>
29   <artifactId>hbase-server</artifactId>
30   <name>Apache HBase - Server</name>
31   <description>Server functionality for HBase</description>
32   <properties>
33     <test.build.webapps>target/test-classes/webapps</test.build.webapps>
34     <license.bundles.logo>true</license.bundles.logo>
35     <license.bundles.bootstrap>true</license.bundles.bootstrap>
36     <license.bundles.jquery>true</license.bundles.jquery>
37     <license.bundles.vega>true</license.bundles.vega>
38   </properties>
39   <build>
40     <!-- Make sure resources get added before they are processed by placing this first
41      -->
42     <resources>
43       <!-- Add the build webabpps to the classpth -->
44       <resource>
45         <directory>${project.build.directory}</directory>
46         <includes>
47           <include>hbase-webapps/**</include>
48         </includes>
49       </resource>
50       <resource>
51         <directory>src/main/resources</directory>
52         <includes>
53           <include>**/**</include>
54         </includes>
55       </resource>
56     </resources>
57     <testResources>
58       <!-- Our test artifact has different license info than our source/bin ones -->
59       <testResource>
60         <directory>src/test/resources/META-INF/</directory>
61         <targetPath>META-INF/</targetPath>
62         <includes>
63           <include>NOTICE</include>
64         </includes>
65         <filtering>true</filtering>
66       </testResource>
67       <testResource>
68         <directory>src/test/resources</directory>
69         <includes>
70           <include>**/**</include>
71         </includes>
72       </testResource>
73     </testResources>
74     <plugins>
75       <plugin>
76         <groupId>com.github.spotbugs</groupId>
77         <artifactId>spotbugs-maven-plugin</artifactId>
78         <configuration>
79           <maxHeap>2048</maxHeap>
80         </configuration>
81       </plugin>
82       <!-- licensing info from our bundled works -->
83       <plugin>
84         <groupId>org.apache.maven.plugins</groupId>
85         <artifactId>maven-remote-resources-plugin</artifactId>
86         <dependencies>
87           <!-- resource bundle only needed at build time -->
88           <dependency>
89             <groupId>org.apache.hbase</groupId>
90             <artifactId>hbase-resource-bundle</artifactId>
91             <version>${project.version}</version>
92           </dependency>
93         </dependencies>
94         <executions>
95           <execution>
96             <id>default</id>
97             <configuration>
98               <attachToTest>false</attachToTest>
99               <properties>
100                 <copyright-end-year>${build.year}</copyright-end-year>
101                 <debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
102                 <bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
103                 <bundled-jquery>${license.bundles.jquery}</bundled-jquery>
104                 <bundled-vega>${license.bundles.vega}</bundled-vega>
105                 <bundled-logo>${license.bundles.logo}</bundled-logo>
106                 <bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
107               </properties>
108               <resourceBundles>
109                 <resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
110               </resourceBundles>
111               <supplementalModelArtifacts>
112                 <supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
113               </supplementalModelArtifacts>
114               <supplementalModels>
115                 <supplementalModel>supplemental-models.xml</supplementalModel>
116               </supplementalModels>
117             </configuration>
118           </execution>
119         </executions>
120       </plugin>
121       <!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running
122         tests (this is needed for upstream projects whose tests need this jar simply for
123         compilation) -->
124       <plugin>
125         <!--Make it so assembly:single does nothing in here-->
126         <artifactId>maven-assembly-plugin</artifactId>
127         <configuration>
128           <skipAssembly>true</skipAssembly>
129         </configuration>
130       </plugin>
131       <plugin>
132         <groupId>org.apache.maven.plugins</groupId>
133         <artifactId>maven-jar-plugin</artifactId>
134         <configuration>
135           <!-- Exclude these 2 packages, because their dependency _binary_ files
136             include the sources, and Maven 2.2 appears to add them to the sources to compile,
137             weird -->
138           <excludes>
139             <exclude>org/apache/jute/**</exclude>
140             <exclude>org/apache/zookeeper/**</exclude>
141             <exclude>**/*.jsp</exclude>
142             <exclude>hbase-site.xml</exclude>
143             <exclude>hdfs-site.xml</exclude>
144             <exclude>log4j.properties</exclude>
145             <exclude>mapred-queues.xml</exclude>
146             <exclude>mapred-site.xml</exclude>
147           </excludes>
148         </configuration>
149       </plugin>
150       <!-- General ant tasks, bound to different build phases -->
151       <plugin>
152         <artifactId>maven-antrun-plugin</artifactId>
153         <executions>
154           <!-- Generate web app sources -->
155           <execution>
156             <id>generate</id>
157             <phase>generate-sources</phase>
158             <configuration>
159               <target>
160                 <property name="build.webapps" location="${project.build.directory}/hbase-webapps"/>
161                 <property name="src.webapps" location="${basedir}/src/main/resources/hbase-webapps"/>
162                 <property name="generated.sources" location="${project.build.directory}/generated-sources"/>
163                 <mkdir dir="${build.webapps}"/>
164                 <copy todir="${build.webapps}">
165                   <fileset dir="${src.webapps}">
166                     <exclude name="**/*.jsp"/>
167                     <exclude name="**/.*"/>
168                     <exclude name="**/*~"/>
169                   </fileset>
170                 </copy>
171                 <!--The compile.classpath is passed in by maven -->
172                 <taskdef classname="org.apache.jasper.JspC" name="jspcompiler" classpathref="maven.compile.classpath"/>
173                 <mkdir dir="${build.webapps}/master/WEB-INF"/>
174                 <jspcompiler uriroot="${src.webapps}/master" outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.master" webxml="${build.webapps}/master/WEB-INF/web.xml"/>
175                 <mkdir dir="${build.webapps}/regionserver/WEB-INF"/>
176                 <jspcompiler uriroot="${src.webapps}/regionserver" outputdir="${generated.sources}/java" package="org.apache.hadoop.hbase.generated.regionserver" webxml="${build.webapps}/regionserver/WEB-INF/web.xml"/>
177               </target>
178             </configuration>
179             <goals>
180               <goal>run</goal>
181             </goals>
182           </execution>
183         </executions>
184       </plugin>
185       <plugin>
186         <groupId>org.codehaus.mojo</groupId>
187         <artifactId>build-helper-maven-plugin</artifactId>
188         <executions>
189           <!-- Add the generated sources -->
190           <execution>
191             <id>jspcSource-packageInfo-source</id>
192             <phase>generate-sources</phase>
193             <goals>
194               <goal>add-source</goal>
195             </goals>
196             <configuration>
197               <sources>
198                 <source>${project.build.directory}/generated-jamon</source>
199                 <source>${project.build.directory}/generated-sources/java</source>
200               </sources>
201             </configuration>
202           </execution>
203         </executions>
204       </plugin>
205       <plugin>
206         <groupId>org.jamon</groupId>
207         <artifactId>jamon-maven-plugin</artifactId>
208         <executions>
209           <execution>
210             <phase>generate-sources</phase>
211             <goals>
212               <goal>translate</goal>
213             </goals>
214             <configuration>
215               <templateSourceDir>src/main/jamon</templateSourceDir>
216               <templateOutputDir>target/generated-jamon</templateOutputDir>
217             </configuration>
218           </execution>
219         </executions>
220       </plugin>
221       <!-- Testing plugins -->
222       <plugin>
223         <artifactId>maven-surefire-plugin</artifactId>
224         <configuration>
225           <systemPropertyVariables>
226             <test.build.webapps>target/test-classes/webapps</test.build.webapps>
227           </systemPropertyVariables>
228         </configuration>
229       </plugin>
230       <plugin>
231         <groupId>net.revelc.code</groupId>
232         <artifactId>warbucks-maven-plugin</artifactId>
233       </plugin>
234     </plugins>
235   </build>
236   <dependencies>
237     <dependency>
238       <groupId>org.apache.hbase.thirdparty</groupId>
239       <artifactId>hbase-shaded-protobuf</artifactId>
240     </dependency>
241     <dependency>
242       <groupId>org.apache.hbase.thirdparty</groupId>
243       <artifactId>hbase-shaded-netty</artifactId>
244     </dependency>
245     <dependency>
246       <groupId>org.apache.hbase.thirdparty</groupId>
247       <artifactId>hbase-shaded-miscellaneous</artifactId>
248     </dependency>
249     <!-- Intra-project dependencies -->
250     <dependency>
251       <groupId>org.apache.hbase</groupId>
252       <artifactId>hbase-logging</artifactId>
253       <type>test-jar</type>
254       <scope>test</scope>
255     </dependency>
256     <dependency>
257       <groupId>org.apache.hbase</groupId>
258       <artifactId>hbase-common</artifactId>
259     </dependency>
260     <dependency>
261       <groupId>org.apache.hbase</groupId>
262       <artifactId>hbase-client</artifactId>
263       <type>test-jar</type>
264       <scope>test</scope>
265     </dependency>
266     <dependency>
267       <groupId>org.apache.hbase</groupId>
268       <artifactId>hbase-http</artifactId>
269       <exclusions>
270         <exclusion>
271           <groupId>org.codehaus.jackson</groupId>
272           <artifactId>jackson-core-asl</artifactId>
273         </exclusion>
274       </exclusions>
275     </dependency>
276     <dependency>
277       <groupId>org.apache.hbase</groupId>
278       <artifactId>hbase-http</artifactId>
279       <type>test-jar</type>
280       <scope>test</scope>
281     </dependency>
282     <dependency>
283       <groupId>org.apache.hbase</groupId>
284       <artifactId>hbase-protocol-shaded</artifactId>
285     </dependency>
286     <dependency>
287       <groupId>org.apache.hbase</groupId>
288       <artifactId>hbase-procedure</artifactId>
289     </dependency>
290     <dependency>
291       <groupId>org.apache.hbase</groupId>
292       <artifactId>hbase-client</artifactId>
293     </dependency>
294     <dependency>
295       <groupId>org.apache.hbase</groupId>
296       <artifactId>hbase-zookeeper</artifactId>
297     </dependency>
298     <dependency>
299       <groupId>org.apache.hbase</groupId>
300       <artifactId>hbase-replication</artifactId>
301     </dependency>
302     <dependency>
303       <groupId>org.apache.hbase</groupId>
304       <artifactId>hbase-balancer</artifactId>
305     </dependency>
306     <dependency>
307       <artifactId>hbase-balancer</artifactId>
308       <groupId>org.apache.hbase</groupId>
309       <type>test-jar</type>
310       <scope>test</scope>
311     </dependency>
312     <dependency>
313       <groupId>org.apache.hbase</groupId>
314       <artifactId>hbase-common</artifactId>
315       <type>test-jar</type>
316       <scope>test</scope>
317     </dependency>
318     <dependency>
319       <groupId>org.apache.hbase</groupId>
320       <artifactId>hbase-annotations</artifactId>
321       <type>test-jar</type>
322       <scope>test</scope>
323     </dependency>
324     <dependency>
325       <groupId>org.apache.hbase</groupId>
326       <artifactId>hbase-procedure</artifactId>
327       <type>test-jar</type>
328       <scope>test</scope>
329     </dependency>
330     <dependency>
331       <groupId>org.apache.hbase</groupId>
332       <artifactId>hbase-zookeeper</artifactId>
333       <type>test-jar</type>
334       <scope>test</scope>
335     </dependency>
336     <dependency>
337       <groupId>org.apache.hbase</groupId>
338       <artifactId>hbase-metrics-api</artifactId>
339     </dependency>
340     <dependency>
341       <groupId>org.apache.hbase</groupId>
342       <artifactId>hbase-metrics</artifactId>
343     </dependency>
344     <dependency>
345       <groupId>commons-codec</groupId>
346       <artifactId>commons-codec</artifactId>
347     </dependency>
348     <dependency>
349       <groupId>org.apache.hbase</groupId>
350       <artifactId>hbase-hadoop-compat</artifactId>
351     </dependency>
352     <dependency>
353       <groupId>org.apache.hbase</groupId>
354       <artifactId>hbase-hadoop-compat</artifactId>
355       <type>test-jar</type>
356       <scope>test</scope>
357     </dependency>
358     <dependency>
359       <groupId>org.apache.hbase</groupId>
360       <artifactId>hbase-asyncfs</artifactId>
361     </dependency>
362     <dependency>
363       <groupId>org.apache.hbase</groupId>
364       <artifactId>hbase-asyncfs</artifactId>
365       <type>test-jar</type>
366       <scope>test</scope>
367     </dependency>
368     <dependency>
369       <!-- For JspC used in ant task, then needed at compile /runtime
370            because the source code made from the JSP refers to its runtime
371         -->
372       <groupId>org.glassfish.web</groupId>
373       <artifactId>javax.servlet.jsp</artifactId>
374     </dependency>
375       <!-- Also used by generated sources from our JSP -->
376     <dependency>
377       <groupId>javax.servlet.jsp</groupId>
378       <artifactId>javax.servlet.jsp-api</artifactId>
379     </dependency>
380     <!-- General dependencies -->
381     <dependency>
382       <groupId>com.github.stephenc.findbugs</groupId>
383       <artifactId>findbugs-annotations</artifactId>
384       <scope>compile</scope>
385       <optional>true</optional>
386     </dependency>
387     <dependency>
388       <groupId>com.github.ben-manes.caffeine</groupId>
389       <artifactId>caffeine</artifactId>
390     </dependency>
391     <dependency>
392       <groupId>io.dropwizard.metrics</groupId>
393       <artifactId>metrics-core</artifactId>
394     </dependency>
395     <dependency>
396       <groupId>commons-io</groupId>
397       <artifactId>commons-io</artifactId>
398     </dependency>
399     <dependency>
400       <groupId>org.apache.commons</groupId>
401       <artifactId>commons-lang3</artifactId>
402     </dependency>
403     <dependency>
404       <groupId>org.slf4j</groupId>
405       <artifactId>slf4j-api</artifactId>
406     </dependency>
407     <dependency>
408       <groupId>org.apache.commons</groupId>
409       <artifactId>commons-math3</artifactId>
410     </dependency>
411     <dependency>
412       <groupId>org.apache.zookeeper</groupId>
413       <artifactId>zookeeper</artifactId>
414     </dependency>
415     <dependency>
416       <groupId>org.jamon</groupId>
417       <artifactId>jamon-runtime</artifactId>
418     </dependency>
419     <dependency>
420       <groupId>javax.servlet</groupId>
421       <artifactId>javax.servlet-api</artifactId>
422     </dependency>
423     <!-- tracing Dependencies -->
424     <dependency>
425       <groupId>io.opentelemetry</groupId>
426       <artifactId>opentelemetry-api</artifactId>
427     </dependency>
428     <dependency>
429       <groupId>com.lmax</groupId>
430       <artifactId>disruptor</artifactId>
431     </dependency>
432     <!-- Test dependencies -->
433     <dependency>
434       <groupId>org.hamcrest</groupId>
435       <artifactId>hamcrest-core</artifactId>
436       <scope>test</scope>
437     </dependency>
438     <dependency>
439       <groupId>io.opentelemetry</groupId>
440       <artifactId>opentelemetry-sdk</artifactId>
441       <scope>test</scope>
442     </dependency>
443     <dependency>
444       <groupId>io.opentelemetry</groupId>
445       <artifactId>opentelemetry-sdk-testing</artifactId>
446       <scope>test</scope>
447     </dependency>
448     <dependency>
449       <groupId>org.hamcrest</groupId>
450       <artifactId>hamcrest-library</artifactId>
451       <scope>test</scope>
452     </dependency>
453     <dependency>
454       <groupId>org.bouncycastle</groupId>
455       <artifactId>bcprov-jdk15on</artifactId>
456       <scope>test</scope>
457     </dependency>
458     <dependency>
459       <groupId>org.apache.hadoop</groupId>
460       <artifactId>hadoop-minikdc</artifactId>
461       <scope>test</scope>
462       <exclusions>
463         <exclusion>
464           <groupId>bouncycastle</groupId>
465           <artifactId>bcprov-jdk15</artifactId>
466         </exclusion>
467       </exclusions>
468     </dependency>
469     <dependency>
470       <groupId>org.apache.kerby</groupId>
471       <artifactId>kerb-client</artifactId>
472       <scope>test</scope>
473     </dependency>
474     <dependency>
475       <groupId>org.apache.kerby</groupId>
476       <artifactId>kerb-simplekdc</artifactId>
477       <scope>test</scope>
478     </dependency>
479     <dependency>
480       <groupId>org.apache.httpcomponents</groupId>
481       <artifactId>httpclient</artifactId>
482       <scope>test</scope>
483     </dependency>
484     <dependency>
485       <groupId>org.apache.httpcomponents</groupId>
486       <artifactId>httpcore</artifactId>
487       <scope>test</scope>
488     </dependency>
489     <dependency>
490       <groupId>org.apache.commons</groupId>
491       <artifactId>commons-crypto</artifactId>
492       <exclusions>
493         <exclusion>
494           <groupId>net.java.dev.jna</groupId>
495           <artifactId>jna</artifactId>
496         </exclusion>
497       </exclusions>
498     </dependency>
499     <dependency>
500       <groupId>junit</groupId>
501       <artifactId>junit</artifactId>
502       <scope>test</scope>
503     </dependency>
504     <dependency>
505       <groupId>org.mockito</groupId>
506       <artifactId>mockito-core</artifactId>
507       <scope>test</scope>
508     </dependency>
509     <dependency>
510       <groupId>org.slf4j</groupId>
511       <artifactId>jcl-over-slf4j</artifactId>
512       <scope>test</scope>
513     </dependency>
514     <dependency>
515       <groupId>org.slf4j</groupId>
516       <artifactId>jul-to-slf4j</artifactId>
517       <scope>test</scope>
518     </dependency>
519     <dependency>
520       <groupId>org.apache.logging.log4j</groupId>
521       <artifactId>log4j-api</artifactId>
522       <scope>test</scope>
523     </dependency>
524     <dependency>
525       <groupId>org.apache.logging.log4j</groupId>
526       <artifactId>log4j-core</artifactId>
527       <scope>test</scope>
528     </dependency>
529     <dependency>
530       <groupId>org.apache.logging.log4j</groupId>
531       <artifactId>log4j-slf4j-impl</artifactId>
532       <scope>test</scope>
533     </dependency>
534     <dependency>
535       <groupId>org.apache.logging.log4j</groupId>
536       <artifactId>log4j-1.2-api</artifactId>
537       <scope>test</scope>
538     </dependency>
539   </dependencies>
540   <profiles>
541     <!-- Needs to make the profile in apache parent pom -->
542     <profile>
543       <id>apache-release</id>
544       <build>
545         <plugins>
546           <plugin>
547             <groupId>org.apache.maven.plugins</groupId>
548             <artifactId>maven-resources-plugin</artifactId>
549             <executions>
550               <execution>
551                 <id>license-javadocs</id>
552                 <phase>prepare-package</phase>
553                 <goals>
554                   <goal>copy-resources</goal>
555                 </goals>
556                 <configuration>
557                   <outputDirectory>${project.build.directory}/apidocs</outputDirectory>
558                   <resources>
559                     <resource>
560                       <directory>src/main/javadoc/META-INF/</directory>
561                       <targetPath>META-INF/</targetPath>
562                       <includes>
563                         <include>LICENSE</include>
564                         <include>NOTICE</include>
565                       </includes>
566                       <filtering>true</filtering>
567                     </resource>
568                   </resources>
569                 </configuration>
570               </execution>
571             </executions>
572           </plugin>
573         </plugins>
574       </build>
575     </profile>
576     <!-- Skip the tests in this module -->
577     <profile>
578       <id>skipServerTests</id>
579       <activation>
580         <property>
581           <name>skipServerTests</name>
582         </property>
583       </activation>
584       <properties>
585         <surefire.skipFirstPart>true</surefire.skipFirstPart>
586         <surefire.skipSecondPart>true</surefire.skipSecondPart>
587       </properties>
588     </profile>
589     <!-- Special builds -->
590     <profile>
591       <id>native</id>
592       <activation>
593         <activeByDefault>false</activeByDefault>
594       </activation>
595       <build>
596         <plugins>
597           <plugin>
598             <groupId>org.apache.maven.plugins</groupId>
599             <artifactId>maven-antrun-plugin</artifactId>
600             <executions>
601               <execution>
602                 <id>make</id>
603                 <phase>compile</phase>
604                 <goals><goal>run</goal></goals>
605                 <configuration>
606                   <target>
607                     <mkdir dir="${project.build.directory}/native"/>
608                     <exec executable="cmake" dir="${project.build.directory}/native" failonerror="true">
609                       <arg line="${basedir}/src/main/native -DJVM_ARCH_DATA_MODEL=${sun.arch.data.model}"/>
610                     </exec>
611                     <exec executable="make" dir="${project.build.directory}/native" failonerror="true">
612                       <arg line="VERBOSE=1"/>
613                     </exec>
614                   </target>
615                 </configuration>
616               </execution>
617             </executions>
618           </plugin>
619         </plugins>
620       </build>
621     </profile>
622     <!-- Profiles for building against different hadoop versions -->
623     <!-- There are a lot of common dependencies used here, should investigate
624     if we can combine these profiles somehow -->
625     <!-- Profile for building against Hadoop 3.0.0. Activate by default -->
626     <profile>
627       <id>hadoop-3.0</id>
628       <activation>
629         <property><name>!hadoop.profile</name></property>
630       </activation>
631       <dependencies>
632         <dependency>
633           <groupId>org.apache.hadoop</groupId>
634           <artifactId>hadoop-distcp</artifactId>
635         </dependency>
636         <dependency>
637           <groupId>org.apache.hadoop</groupId>
638           <artifactId>hadoop-common</artifactId>
639         </dependency>
640         <dependency>
641           <groupId>org.apache.hadoop</groupId>
642           <artifactId>hadoop-hdfs</artifactId>
643         </dependency>
644         <dependency>
645           <groupId>org.apache.hadoop</groupId>
646           <artifactId>hadoop-hdfs-client</artifactId>
647         </dependency>
648         <dependency>
649           <groupId>org.apache.hadoop</groupId>
650           <artifactId>hadoop-mapreduce-client-core</artifactId>
651           <exclusions>
652             <exclusion>
653               <groupId>javax.xml.bind</groupId>
654               <artifactId>jaxb-api</artifactId>
655             </exclusion>
656             <exclusion>
657               <groupId>javax.ws.rs</groupId>
658               <artifactId>jsr311-api</artifactId>
659             </exclusion>
660           </exclusions>
661         </dependency>
662         <dependency>
663           <groupId>org.apache.hadoop</groupId>
664           <artifactId>hadoop-hdfs</artifactId>
665           <type>test-jar</type>
666           <scope>test</scope>
667         </dependency>
668         <dependency>
669           <groupId>org.apache.hadoop</groupId>
670           <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
671           <type>test-jar</type>
672           <scope>test</scope>
673         </dependency>
674         <dependency>
675           <groupId>org.apache.hadoop</groupId>
676           <artifactId>hadoop-annotations</artifactId>
677         </dependency>
678         <dependency>
679           <groupId>org.apache.hadoop</groupId>
680           <artifactId>hadoop-minicluster</artifactId>
681           <scope>test</scope>
682           <exclusions>
683             <exclusion>
684               <groupId>javax.xml.bind</groupId>
685               <artifactId>jaxb-api</artifactId>
686             </exclusion>
687             <exclusion>
688               <groupId>javax.ws.rs</groupId>
689               <artifactId>jsr311-api</artifactId>
690             </exclusion>
691           </exclusions>
692         </dependency>
693         <!-- Hadoop needs Netty 3.x at test scope for the minicluster>
694         <dependency>
695           <groupId>io.netty</groupId>
696           <artifactId>netty</artifactId>
697           <version>${netty.hadoop.version}</version>
698           <scope>test</scope>
699         </dependency-->
700       </dependencies>
701       <build>
702         <plugins>
703           <plugin>
704             <artifactId>maven-dependency-plugin</artifactId>
705             <executions>
706               <execution>
707                 <id>create-mrapp-generated-classpath</id>
708                 <phase>generate-test-resources</phase>
709                 <goals>
710                   <goal>build-classpath</goal>
711                 </goals>
712                 <configuration>
713                   <!-- needed to run the unit test for DS to generate
714                   the required classpath that is required in the env
715                   of the launch container in the mini mr/yarn cluster
716                   -->
717                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
718                 </configuration>
719               </execution>
720             </executions>
721           </plugin>
722         </plugins>
723       </build>
724     </profile>
725     <profile>
726       <id>eclipse-specific</id>
727       <activation>
728         <property>
729           <name>m2e.version</name>
730         </property>
731       </activation>
732       <build>
733         <plugins>
734           <plugin>
735             <groupId>org.apache.maven.plugins</groupId>
736             <artifactId>maven-eclipse-plugin</artifactId>
737             <configuration>
738               <additionalProjectnatures>
739                 <projectnature>org.jamon.project.jamonnature</projectnature>
740               </additionalProjectnatures>
741               <buildcommands>
742                 <buildcommand>org.jamon.project.templateBuilder</buildcommand>
743                 <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
744                 <buildcommand>org.jamon.project.markerUpdater</buildcommand>
745               </buildcommands>
746               <additionalConfig>
747                 <file>
748                   <name>.settings/org.jamon.prefs</name>
749                   <content># now
750                     eclipse.preferences.version=1
751                     templateSourceDir=src/main/jamon
752                     templateOutputDir=target/generated-jamon
753                   </content>
754                 </file>
755               </additionalConfig>
756             </configuration>
757           </plugin>
758         </plugins>
759         <pluginManagement>
760            <plugins>
761              <!--This plugin's configuration is used to store Eclipse m2e settings
762                  only. It has no influence on the Maven build itself and needs to
763                  be kept in plugin management, not in the actual plugins. -->
764             <plugin>
765               <groupId>org.eclipse.m2e</groupId>
766               <artifactId>lifecycle-mapping</artifactId>
767               <configuration>
768                 <lifecycleMappingMetadata>
769                   <pluginExecutions>
770                     <pluginExecution>
771                       <pluginExecutionFilter>
772                         <groupId>org.jamon</groupId>
773                         <artifactId>jamon-maven-plugin</artifactId>
774                         <versionRange>[2.3.4,)</versionRange>
775                         <goals>
776                           <goal>translate</goal>
777                         </goals>
778                       </pluginExecutionFilter>
779                       <action>
780                           <execute>
781                             <runOnIncremental>false</runOnIncremental>
782                             <runOnConfiguration>true</runOnConfiguration>
783                           </execute>
784                       </action>
785                     </pluginExecution>
786                     <pluginExecution>
787                       <pluginExecutionFilter>
788                         <groupId>org.apache.maven.plugins</groupId>
789                         <artifactId>maven-antrun-plugin</artifactId>
790                         <versionRange>[1.6,)</versionRange>
791                         <goals>
792                           <goal>run</goal>
793                         </goals>
794                       </pluginExecutionFilter>
795                       <action>
796                         <execute>
797                           <runOnIncremental>false</runOnIncremental>
798                           <runOnConfiguration>true</runOnConfiguration>
799                         </execute>
800                       </action>
801                     </pluginExecution>
802                     <pluginExecution>
803                       <pluginExecutionFilter>
804                         <groupId>org.apache.maven.plugins</groupId>
805                         <artifactId>maven-dependency-plugin</artifactId>
806                         <versionRange>[2.8,)</versionRange>
807                         <goals>
808                           <goal>build-classpath</goal>
809                         </goals>
810                       </pluginExecutionFilter>
811                       <action>
812                         <ignore></ignore>
813                       </action>
814                     </pluginExecution>
815                   </pluginExecutions>
816                 </lifecycleMappingMetadata>
817               </configuration>
818             </plugin>
819           </plugins>
820         </pluginManagement>
821       </build>
822     </profile>
823   </profiles>
824 </project>