HBASE-25484 Add trace support for WAL sync (#2892)
[hbase.git] / hbase-examples / pom.xml
blob91d5894287b3c04b5e28301b9351ac4711c25234
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>
29   <artifactId>hbase-examples</artifactId>
30   <name>Apache HBase - Examples</name>
31   <description>Examples of HBase usage</description>
32   <properties>
33     <!--Version of protobuf that hbase uses internally (we shade our pb)
34          Must match what is out in hbase-thirdparty include.
35     -->
36     <internal.protobuf.version>3.11.4</internal.protobuf.version>
37   </properties>
38   <build>
39     <plugins>
40       <plugin>
41         <!--Make it so assembly:single does nothing in here-->
42         <artifactId>maven-assembly-plugin</artifactId>
43         <configuration>
44           <skipAssembly>true</skipAssembly>
45         </configuration>
46       </plugin>
47       <plugin>
48         <artifactId>maven-surefire-plugin</artifactId>
49         <configuration>
50           <!-- Have to set the groups here because we only do
51                     split tests in this package, so groups on live in this module -->
52           <groups>${surefire.firstPartGroups}</groups>
53         </configuration>
54       </plugin>
55       <!-- Make a jar and put the sources in the jar -->
56       <plugin>
57         <groupId>org.apache.maven.plugins</groupId>
58         <artifactId>maven-source-plugin</artifactId>
59       </plugin>
60       <plugin>
61         <groupId>org.xolstice.maven.plugins</groupId>
62         <artifactId>protobuf-maven-plugin</artifactId>
63         <executions>
64           <execution>
65             <id>compile-protoc</id>
66             <phase>generate-sources</phase>
67             <goals>
68               <goal>compile</goal>
69             </goals>
70             <configuration>
71               <protocArtifact>com.google.protobuf:protoc:${internal.protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
72               <checkStaleness>true</checkStaleness>
73             </configuration>
74           </execution>
75         </executions>
76       </plugin>
77       <plugin>
78         <groupId>com.google.code.maven-replacer-plugin</groupId>
79         <artifactId>replacer</artifactId>
80         <version>1.5.3</version>
81         <executions>
82           <execution>
83             <phase>process-sources</phase>
84             <goals>
85               <goal>replace</goal>
86             </goals>
87           </execution>
88         </executions>
89         <configuration>
90           <basedir>${basedir}/target/generated-sources/</basedir>
91             <includes>
92               <include>**/*.java</include>
93             </includes>
94             <!-- Ignore errors when missing files, because it means this build
95                  was run with -Dprotoc.skip and there is no -Dreplacer.skip -->
96             <ignoreErrors>true</ignoreErrors>
97             <replacements>
98               <replacement>
99                 <token>([^\.])com.google.protobuf</token>
100                 <value>$1org.apache.hbase.thirdparty.com.google.protobuf</value>
101               </replacement>
102               <replacement>
103                 <token>(public)(\W+static)?(\W+final)?(\W+class)</token>
104                 <value>@javax.annotation.Generated("proto") $1$2$3$4</value>
105               </replacement>
106               <!-- replacer doesn't support anchoring or negative lookbehind -->
107               <replacement>
108                 <token>(@javax.annotation.Generated\("proto"\) ){2}</token>
109                 <value>$1</value>
110               </replacement>
111             </replacements>
112         </configuration>
113       </plugin>
114       <plugin>
115         <groupId>net.revelc.code</groupId>
116         <artifactId>warbucks-maven-plugin</artifactId>
117       </plugin>
118       <plugin>
119         <groupId>org.apache.maven.plugins</groupId>
120         <artifactId>maven-checkstyle-plugin</artifactId>
121         <configuration>
122           <failOnViolation>true</failOnViolation>
123         </configuration>
124       </plugin>
125     </plugins>
126   </build>
127   <dependencies>
128     <dependency>
129       <groupId>org.apache.hbase.thirdparty</groupId>
130       <artifactId>hbase-shaded-miscellaneous</artifactId>
131     </dependency>
132     <dependency>
133       <groupId>org.apache.hbase.thirdparty</groupId>
134       <artifactId>hbase-shaded-netty</artifactId>
135     </dependency>
136     <dependency>
137       <groupId>org.apache.hbase</groupId>
138       <artifactId>hbase-protocol-shaded</artifactId>
139     </dependency>
140     <dependency>
141       <groupId>org.apache.hbase</groupId>
142       <artifactId>hbase-logging</artifactId>
143       <type>test-jar</type>
144       <scope>test</scope>
145     </dependency>
146     <dependency>
147       <groupId>org.apache.hbase</groupId>
148       <artifactId>hbase-common</artifactId>
149     </dependency>
150     <dependency>
151       <groupId>org.apache.hbase</groupId>
152       <artifactId>hbase-client</artifactId>
153     </dependency>
154     <dependency>
155       <groupId>org.apache.hbase</groupId>
156       <artifactId>hbase-asyncfs</artifactId>
157     </dependency>
158     <dependency>
159       <groupId>org.apache.hbase</groupId>
160       <artifactId>hbase-asyncfs</artifactId>
161       <type>test-jar</type>
162       <scope>test</scope>
163     </dependency>
164     <dependency>
165       <groupId>org.apache.hbase</groupId>
166       <artifactId>hbase-server</artifactId>
167     </dependency>
168     <dependency>
169       <groupId>org.apache.hbase</groupId>
170       <artifactId>hbase-mapreduce</artifactId>
171     </dependency>
172     <dependency>
173       <groupId>org.apache.hbase</groupId>
174       <artifactId>hbase-endpoint</artifactId>
175     </dependency>
176     <dependency>
177       <groupId>org.apache.hbase</groupId>
178       <artifactId>hbase-thrift</artifactId>
179     </dependency>
180     <dependency>
181       <groupId>org.apache.hbase</groupId>
182       <artifactId>hbase-metrics-api</artifactId>
183     </dependency>
184     <dependency>
185       <groupId>org.apache.hbase</groupId>
186       <artifactId>hbase-testing-util</artifactId>
187       <scope>test</scope>
188     </dependency>
189     <dependency>
190       <groupId>org.apache.thrift</groupId>
191       <artifactId>libthrift</artifactId>
192     </dependency>
193     <dependency>
194       <groupId>commons-io</groupId>
195       <artifactId>commons-io</artifactId>
196     </dependency>
197     <dependency>
198       <groupId>org.slf4j</groupId>
199       <artifactId>slf4j-api</artifactId>
200     </dependency>
201     <dependency>
202       <groupId>org.apache.zookeeper</groupId>
203       <artifactId>zookeeper</artifactId>
204     </dependency>
205     <dependency>
206       <groupId>com.google.protobuf</groupId>
207       <artifactId>protobuf-java</artifactId>
208       <version>${internal.protobuf.version}</version>
209     </dependency>
210     <dependency>
211       <groupId>org.apache.curator</groupId>
212       <artifactId>curator-framework</artifactId>
213     </dependency>
214     <dependency>
215       <groupId>org.apache.curator</groupId>
216       <artifactId>curator-client</artifactId>
217     </dependency>
218     <dependency>
219       <groupId>org.apache.curator</groupId>
220       <artifactId>curator-recipes</artifactId>
221     </dependency>
222     <dependency>
223       <groupId>com.github.stephenc.findbugs</groupId>
224       <artifactId>findbugs-annotations</artifactId>
225       <scope>compile</scope>
226       <optional>true</optional>
227     </dependency>
228     <dependency>
229       <groupId>org.apache.hbase</groupId>
230       <artifactId>hbase-rest</artifactId>
231     </dependency>
232     <dependency>
233       <groupId>junit</groupId>
234       <artifactId>junit</artifactId>
235       <scope>test</scope>
236     </dependency>
237     <dependency>
238       <groupId>org.mockito</groupId>
239       <artifactId>mockito-core</artifactId>
240       <scope>test</scope>
241     </dependency>
242     <dependency>
243       <groupId>org.apache.hadoop</groupId>
244       <artifactId>hadoop-minikdc</artifactId>
245       <scope>test</scope>
246       <exclusions>
247         <exclusion>
248           <groupId>bouncycastle</groupId>
249           <artifactId>bcprov-jdk15</artifactId>
250         </exclusion>
251       </exclusions>
252     </dependency>
253     <dependency>
254       <groupId>org.bouncycastle</groupId>
255       <artifactId>bcprov-jdk15on</artifactId>
256       <scope>test</scope>
257     </dependency>
258     <dependency>
259       <groupId>org.apache.hbase</groupId>
260       <artifactId>hbase-http</artifactId>
261       <scope>test</scope>
262       <type>test-jar</type>
263     </dependency>
264     <dependency>
265       <groupId>org.slf4j</groupId>
266       <artifactId>jcl-over-slf4j</artifactId>
267       <scope>test</scope>
268     </dependency>
269     <dependency>
270       <groupId>org.slf4j</groupId>
271       <artifactId>jul-to-slf4j</artifactId>
272       <scope>test</scope>
273     </dependency>
274     <dependency>
275       <groupId>org.apache.logging.log4j</groupId>
276       <artifactId>log4j-api</artifactId>
277       <scope>test</scope>
278     </dependency>
279     <dependency>
280       <groupId>org.apache.logging.log4j</groupId>
281       <artifactId>log4j-core</artifactId>
282       <scope>test</scope>
283     </dependency>
284     <dependency>
285       <groupId>org.apache.logging.log4j</groupId>
286       <artifactId>log4j-slf4j-impl</artifactId>
287       <scope>test</scope>
288     </dependency>
289     <dependency>
290       <groupId>org.apache.logging.log4j</groupId>
291       <artifactId>log4j-1.2-api</artifactId>
292       <scope>test</scope>
293     </dependency>
294   </dependencies>
295   <profiles>
296     <!-- Skip the tests in this module -->
297     <profile>
298       <id>skipExamplesTests</id>
299       <activation>
300         <property>
301           <name>skipExamplesTests</name>
302         </property>
303       </activation>
304       <properties>
305         <surefire.skipFirstPart>true</surefire.skipFirstPart>
306         <surefire.skipSecondPart>true</surefire.skipSecondPart>
307       </properties>
308     </profile>
309     <!-- Profiles for building against different hadoop versions -->
310     <!-- There are a lot of common dependencies used here, should investigate
311          if we can combine these profiles somehow -->
312     <!-- Profile for building against Hadoop 3.0.0. Activate by default -->
313     <profile>
314       <id>hadoop-3.0</id>
315       <activation>
316         <property><name>!hadoop.profile</name></property>
317       </activation>
318       <dependencies>
319         <dependency>
320           <groupId>org.apache.hadoop</groupId>
321           <artifactId>hadoop-common</artifactId>
322         </dependency>
323         <dependency>
324           <groupId>org.apache.hadoop</groupId>
325           <artifactId>hadoop-minicluster</artifactId>
326           <exclusions>
327             <exclusion>
328               <groupId>javax.xml.bind.</groupId>
329               <artifactId>jaxb-api</artifactId>
330             </exclusion>
331             <exclusion>
332              <groupId>javax.ws.rs</groupId>
333              <artifactId>jsr311-api</artifactId>
334             </exclusion>
335           </exclusions>
336         </dependency>
337       </dependencies>
338       <build>
339         <plugins>
340           <plugin>
341             <artifactId>maven-dependency-plugin</artifactId>
342             <executions>
343               <execution>
344                 <id>create-mrapp-generated-classpath</id>
345                 <phase>generate-test-resources</phase>
346                 <goals>
347                   <goal>build-classpath</goal>
348                 </goals>
349                 <configuration>
350                   <!-- needed to run the unit test for DS to generate
351                                  the required classpath that is required in the env
352                                  of the launch container in the mini mr/yarn cluster
353                                  -->
354                   <outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
355                 </configuration>
356               </execution>
357             </executions>
358           </plugin>
359         </plugins>
360       </build>
361     </profile>
362     <profile>
363       <id>eclipse-specific</id>
364       <activation>
365         <property>
366           <name>m2e.version</name>
367         </property>
368       </activation>
369       <build>
370         <pluginManagement>
371           <plugins>
372             <!--This plugin's configuration is used to store Eclipse m2e settings
373                  only. It has no influence on the Maven build itself.-->
374             <plugin>
375               <groupId>org.eclipse.m2e</groupId>
376               <artifactId>lifecycle-mapping</artifactId>
377               <configuration>
378                 <lifecycleMappingMetadata>
379                   <pluginExecutions>
380                     <pluginExecution>
381                       <pluginExecutionFilter>
382                         <groupId>org.apache.maven.plugins</groupId>
383                         <artifactId>maven-dependency-plugin</artifactId>
384                         <versionRange>[2.8,)</versionRange>
385                         <goals>
386                           <goal>build-classpath</goal>
387                         </goals>
388                       </pluginExecutionFilter>
389                       <action>
390                         <ignore/>
391                       </action>
392                     </pluginExecution>
393                   </pluginExecutions>
394                 </lifecycleMappingMetadata>
395               </configuration>
396             </plugin>
397           </plugins>
398         </pluginManagement>
399       </build>
400     </profile>
401   </profiles>
402 </project>