HADOOP-13560. S3ABlockOutputStream to support huge (many GB) file writes. Contributed...
[hadoop.git] / hadoop-tools / hadoop-aws / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License. See accompanying LICENSE file.
14 -->
15 <project xmlns="http://maven.apache.org/POM/4.0.0"
16 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
17 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
18 <modelVersion>4.0.0</modelVersion>
19 <parent>
20 <groupId>org.apache.hadoop</groupId>
21 <artifactId>hadoop-project</artifactId>
22 <version>2.9.0-SNAPSHOT</version>
23 <relativePath>../../hadoop-project</relativePath>
24 </parent>
25 <artifactId>hadoop-aws</artifactId>
26 <version>2.9.0-SNAPSHOT</version>
27 <name>Apache Hadoop Amazon Web Services support</name>
28 <description>
29 This module contains code to support integration with Amazon Web Services.
30 It also declares the dependencies needed to work with AWS services.
31 </description>
32 <packaging>jar</packaging>
33
34 <properties>
35 <file.encoding>UTF-8</file.encoding>
36 <downloadSources>true</downloadSources>
37 <hadoop.tmp.dir>${project.build.directory}/test</hadoop.tmp.dir>
38
39 <!-- are scale tests enabled ? -->
40 <fs.s3a.scale.test.enabled>unset</fs.s3a.scale.test.enabled>
41 <!-- Size in MB of huge files. -->
42 <fs.s3a.scale.test.huge.filesize>unset</fs.s3a.scale.test.huge.filesize>
43 <!-- Size in MB of the partion size in huge file uploads. -->
44 <fs.s3a.scale.test.huge.partitionsize>unset</fs.s3a.scale.test.huge.partitionsize>
45 <!-- Timeout in seconds for scale tests.-->
46 <fs.s3a.scale.test.timeout>3600</fs.s3a.scale.test.timeout>
47 </properties>
48
49 <profiles>
50 <profile>
51 <id>tests-off</id>
52 <activation>
53 <file>
54 <missing>src/test/resources/auth-keys.xml</missing>
55 </file>
56 </activation>
57 <properties>
58 <skipITs>true</skipITs>
59 </properties>
60 </profile>
61 <profile>
62 <id>tests-on</id>
63 <activation>
64 <file>
65 <exists>src/test/resources/auth-keys.xml</exists>
66 </file>
67 </activation>
68 <properties>
69 <skipITs>false</skipITs>
70 </properties>
71 </profile>
72 <profile>
73 <id>parallel-tests</id>
74 <activation>
75 <property>
76 <name>parallel-tests</name>
77 </property>
78 </activation>
79 <build>
80 <plugins>
81 <plugin>
82 <artifactId>maven-antrun-plugin</artifactId>
83 <executions>
84 <execution>
85 <id>create-parallel-tests-dirs</id>
86 <phase>test-compile</phase>
87 <configuration>
88 <target>
89 <script language="javascript"><![CDATA[
90 var baseDirs = [
91 "${test.build.data}",
92 "${test.build.dir}",
93 "${hadoop.tmp.dir}" ];
94 for (var i in baseDirs) {
95 for (var j = 1; j <= ${testsThreadCount}; ++j) {
96 var mkdir = project.createTask("mkdir");
97 mkdir.setDir(new java.io.File(baseDirs[i], j));
98 mkdir.perform();
99 }
100 }
101 ]]></script>
102 </target>
103 </configuration>
104 <goals>
105 <goal>run</goal>
106 </goals>
107 </execution>
108 </executions>
109 </plugin>
110 <plugin>
111 <groupId>org.apache.maven.plugins</groupId>
112 <artifactId>maven-surefire-plugin</artifactId>
113 <configuration>
114 <forkCount>${testsThreadCount}</forkCount>
115 <reuseForks>false</reuseForks>
116 <argLine>${maven-surefire-plugin.argLine} -DminiClusterDedicatedDirs=true</argLine>
117 <systemPropertyVariables>
118 <test.build.data>${test.build.data}/${surefire.forkNumber}</test.build.data>
119 <test.build.dir>${test.build.dir}/${surefire.forkNumber}</test.build.dir>
120 <hadoop.tmp.dir>${hadoop.tmp.dir}/${surefire.forkNumber}</hadoop.tmp.dir>
121
122 <!-- Due to a Maven quirk, setting this to just -->
123 <!-- surefire.forkNumber won't do the parameter -->
124 <!-- substitution. Putting a prefix in front of it like -->
125 <!-- "fork-" makes it work. -->
126 <test.unique.fork.id>fork-${surefire.forkNumber}</test.unique.fork.id>
127 <!-- Propagate scale parameters -->
128 <fs.s3a.scale.test.enabled>${fs.s3a.scale.test.enabled}</fs.s3a.scale.test.enabled>
129 <fs.s3a.scale.test.huge.filesize>${fs.s3a.scale.test.huge.filesize}</fs.s3a.scale.test.huge.filesize>
130 <fs.s3a.scale.test.huge.huge.partitionsize>${fs.s3a.scale.test.huge.partitionsize}</fs.s3a.scale.test.huge.huge.partitionsize>
131 <fs.s3a.scale.test.timeout>${fs.s3a.scale.test.timeout}</fs.s3a.scale.test.timeout>
132 </systemPropertyVariables>
133 </configuration>
134 </plugin>
135 <plugin>
136 <groupId>org.apache.maven.plugins</groupId>
137 <artifactId>maven-failsafe-plugin</artifactId>
138 <executions>
139 <execution>
140 <id>default-integration-test</id>
141 <goals>
142 <goal>integration-test</goal>
143 <goal>verify</goal>
144 </goals>
145 <configuration>
146 <forkCount>${testsThreadCount}</forkCount>
147 <reuseForks>false</reuseForks>
148 <argLine>${maven-surefire-plugin.argLine} -DminiClusterDedicatedDirs=true</argLine>
149 <forkedProcessTimeoutInSeconds>${fs.s3a.scale.test.timeout}</forkedProcessTimeoutInSeconds>
150 <systemPropertyVariables>
151 <!-- Tell tests that they are being executed in parallel -->
152 <test.parallel.execution>true</test.parallel.execution>
153 <test.build.data>${test.build.data}/${surefire.forkNumber}</test.build.data>
154 <test.build.dir>${test.build.dir}/${surefire.forkNumber}</test.build.dir>
155 <hadoop.tmp.dir>${hadoop.tmp.dir}/${surefire.forkNumber}</hadoop.tmp.dir>
156
157 <!-- Due to a Maven quirk, setting this to just -->
158 <!-- surefire.forkNumber won't do the parameter -->
159 <!-- substitution. Putting a prefix in front of it like -->
160 <!-- "fork-" makes it work. -->
161 <test.unique.fork.id>fork-${surefire.forkNumber}</test.unique.fork.id>
162 <!-- Propagate scale parameters -->
163 <fs.s3a.scale.test.enabled>${fs.s3a.scale.test.enabled}</fs.s3a.scale.test.enabled>
164 <fs.s3a.scale.test.huge.filesize>${fs.s3a.scale.test.huge.filesize}</fs.s3a.scale.test.huge.filesize>
165 <fs.s3a.scale.test.huge.huge.partitionsize>${fs.s3a.scale.test.huge.partitionsize}</fs.s3a.scale.test.huge.huge.partitionsize>
166 <fs.s3a.scale.test.timeout>${fs.s3a.scale.test.timeout}</fs.s3a.scale.test.timeout>
167 </systemPropertyVariables>
168 <!-- Some tests cannot run in parallel. Tests that cover -->
169 <!-- access to the root directory must run in isolation -->
170 <!-- from anything else that could modify the bucket. -->
171 <!-- S3A tests that cover multi-part upload must run in -->
172 <!-- isolation, because the file system is configured to -->
173 <!-- purge existing multi-part upload data on -->
174 <!-- initialization. MiniYARNCluster has not yet been -->
175 <!-- changed to handle parallel test execution gracefully. -->
176 <!-- Exclude all of these tests from parallel execution, -->
177 <!-- and instead run them sequentially in a separate -->
178 <!-- Surefire execution step later. -->
179 <includes>
180 <include>**/ITest*.java</include>
181 </includes>
182 <excludes>
183 <exclude>**/ITestJets3tNativeS3FileSystemContract.java</exclude>
184 <exclude>**/ITestS3ABlockingThreadPool.java</exclude>
185 <exclude>**/ITestS3AFileSystemContract.java</exclude>
186 <exclude>**/ITestS3AMiniYarnCluster.java</exclude>
187 <exclude>**/ITest*Root*.java</exclude>
188 <exclude>**/ITestS3AFileContextStatistics.java</exclude>
189 <include>**/ITestS3AHuge*.java</include>
190 </excludes>
191 </configuration>
192 </execution>
193 <execution>
194 <id>sequential-integration-tests</id>
195 <goals>
196 <goal>integration-test</goal>
197 <goal>verify</goal>
198 </goals>
199 <configuration>
200 <forkedProcessTimeoutInSeconds>${fs.s3a.scale.test.timeout}</forkedProcessTimeoutInSeconds>
201 <systemPropertyVariables>
202 <!-- Tell tests that they are being executed sequentially -->
203 <test.parallel.execution>false</test.parallel.execution>
204 <!-- Propagate scale parameters -->
205 <fs.s3a.scale.test.enabled>${fs.s3a.scale.test.enabled}</fs.s3a.scale.test.enabled>
206 <fs.s3a.scale.test.huge.filesize>${fs.s3a.scale.test.huge.filesize}</fs.s3a.scale.test.huge.filesize>
207 <fs.s3a.scale.test.huge.huge.partitionsize>${fs.s3a.scale.test.huge.partitionsize}</fs.s3a.scale.test.huge.huge.partitionsize>
208 <fs.s3a.scale.test.timeout>${fs.s3a.scale.test.timeout}</fs.s3a.scale.test.timeout>
209 </systemPropertyVariables>
210 <!-- Do a sequential run for tests that cannot handle -->
211 <!-- parallel execution. -->
212 <includes>
213 <include>**/ITestJets3tNativeS3FileSystemContract.java</include>
214 <include>**/ITestS3ABlockingThreadPool.java</include>
215 <include>**/ITestS3AFastOutputStream.java</include>
216 <include>**/ITestS3AFileSystemContract.java</include>
217 <include>**/ITestS3AMiniYarnCluster.java</include>
218 <include>**/ITest*Root*.java</include>
219 <include>**/ITestS3AFileContextStatistics.java</include>
220 <include>**/ITestS3AHuge*.java</include>
221 </includes>
222 </configuration>
223 </execution>
224 </executions>
225 </plugin>
226 </plugins>
227 </build>
228 </profile>
229 <profile>
230 <id>sequential-tests</id>
231 <activation>
232 <property>
233 <name>!parallel-tests</name>
234 </property>
235 </activation>
236 <build>
237 <plugins>
238 <plugin>
239 <groupId>org.apache.maven.plugins</groupId>
240 <artifactId>maven-failsafe-plugin</artifactId>
241 <executions>
242 <execution>
243 <goals>
244 <goal>integration-test</goal>
245 <goal>verify</goal>
246 </goals>
247 <configuration>
248 <systemPropertyVariables>
249 <!-- Propagate scale parameters -->
250 <fs.s3a.scale.test.enabled>${fs.s3a.scale.test.enabled}</fs.s3a.scale.test.enabled>
251 <fs.s3a.scale.test.huge.filesize>${fs.s3a.scale.test.huge.filesize}</fs.s3a.scale.test.huge.filesize>
252 <fs.s3a.scale.test.timeout>${fs.s3a.scale.test.timeout}</fs.s3a.scale.test.timeout>
253 </systemPropertyVariables>
254 <forkedProcessTimeoutInSeconds>${fs.s3a.scale.test.timeout}</forkedProcessTimeoutInSeconds>
255 </configuration>
256 </execution>
257 </executions>
258 </plugin>
259 </plugins>
260 </build>
261 </profile>
262
263 <!-- Turn on scale tests-->
264 <profile>
265 <id>scale</id>
266 <activation>
267 <property>
268 <name>scale</name>
269 </property>
270 </activation>
271 <properties >
272 <fs.s3a.scale.test.enabled>true</fs.s3a.scale.test.enabled>
273 </properties>
274 </profile>
275 </profiles>
276
277 <build>
278 <plugins>
279 <plugin>
280 <groupId>org.codehaus.mojo</groupId>
281 <artifactId>findbugs-maven-plugin</artifactId>
282 <configuration>
283 <findbugsXmlOutput>true</findbugsXmlOutput>
284 <xmlOutput>true</xmlOutput>
285 <excludeFilterFile>${basedir}/dev-support/findbugs-exclude.xml
286 </excludeFilterFile>
287 <effort>Max</effort>
288 </configuration>
289 </plugin>
290 <plugin>
291 <groupId>org.apache.maven.plugins</groupId>
292 <artifactId>maven-project-info-reports-plugin</artifactId>
293 <configuration>
294 <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
295 <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
296 </configuration>
297 </plugin>
298 <plugin>
299 <groupId>org.apache.maven.plugins</groupId>
300 <artifactId>maven-surefire-plugin</artifactId>
301 <configuration>
302 <forkedProcessTimeoutInSeconds>3600</forkedProcessTimeoutInSeconds>
303 </configuration>
304 </plugin>
305 </plugins>
306 </build>
307
308 <dependencies>
309 <dependency>
310 <groupId>org.apache.hadoop</groupId>
311 <artifactId>hadoop-common</artifactId>
312 <scope>compile</scope>
313 </dependency>
314 <dependency>
315 <groupId>org.apache.hadoop</groupId>
316 <artifactId>hadoop-common</artifactId>
317 <scope>test</scope>
318 <type>test-jar</type>
319 </dependency>
320 <dependency>
321 <groupId>com.amazonaws</groupId>
322 <artifactId>aws-java-sdk-s3</artifactId>
323 <scope>compile</scope>
324 </dependency>
325 <dependency>
326 <groupId>com.fasterxml.jackson.core</groupId>
327 <artifactId>jackson-core</artifactId>
328 </dependency>
329 <dependency>
330 <groupId>com.fasterxml.jackson.core</groupId>
331 <artifactId>jackson-databind</artifactId>
332 </dependency>
333 <dependency>
334 <groupId>com.fasterxml.jackson.core</groupId>
335 <artifactId>jackson-annotations</artifactId>
336 </dependency>
337 <dependency>
338 <groupId>joda-time</groupId>
339 <artifactId>joda-time</artifactId>
340 </dependency>
341 <dependency>
342 <groupId>com.amazonaws</groupId>
343 <artifactId>aws-java-sdk-sts</artifactId>
344 <scope>test</scope>
345 </dependency>
346 <dependency>
347 <groupId>junit</groupId>
348 <artifactId>junit</artifactId>
349 <scope>test</scope>
350 </dependency>
351 <dependency>
352 <groupId>org.mockito</groupId>
353 <artifactId>mockito-all</artifactId>
354 <scope>test</scope>
355 </dependency>
356 <dependency>
357 <groupId>org.apache.hadoop</groupId>
358 <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
359 <scope>test</scope>
360 </dependency>
361 <dependency>
362 <groupId>org.apache.hadoop</groupId>
363 <artifactId>hadoop-yarn-server-tests</artifactId>
364 <scope>test</scope>
365 <type>test-jar</type>
366 </dependency>
367 <dependency>
368 <groupId>org.apache.hadoop</groupId>
369 <artifactId>hadoop-mapreduce-examples</artifactId>
370 <scope>test</scope>
371 <type>jar</type>
372 </dependency>
373 <dependency>
374 <groupId>org.apache.hadoop</groupId>
375 <artifactId>hadoop-distcp</artifactId>
376 <scope>test</scope>
377 </dependency>
378 <dependency>
379 <groupId>org.apache.hadoop</groupId>
380 <artifactId>hadoop-distcp</artifactId>
381 <scope>test</scope>
382 <type>test-jar</type>
383 </dependency>
384 </dependencies>
385 </project>