2daf0a814f
part of HADOOP-18103. Add support for multiple ranged vectored read api in PositionedReadable. The default iterates through the ranges to read each synchronously, but the intent is that FSDataInputStream subclasses can make more efficient readers especially in object stores implementation. Also added implementation in S3A where smaller ranges are merged and sliced byte buffers are returned to the readers. All the merged ranged are fetched from S3 asynchronously. Contributed By: Owen O'Malley and Mukund Thakur
845 lines
34 KiB
XML
845 lines
34 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License. See accompanying LICENSE file.
|
|
-->
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-main</artifactId>
|
|
<version>3.4.0-SNAPSHOT</version>
|
|
<description>Apache Hadoop Main</description>
|
|
<name>Apache Hadoop Main</name>
|
|
<packaging>pom</packaging>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.cenqua.clover</groupId>
|
|
<artifactId>clover</artifactId>
|
|
<!-- Use the version needed by maven-clover-plugin -->
|
|
<version>3.0.2</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<distributionManagement>
|
|
<repository>
|
|
<id>${distMgmtStagingId}</id>
|
|
<name>${distMgmtStagingName}</name>
|
|
<url>${distMgmtStagingUrl}</url>
|
|
</repository>
|
|
<snapshotRepository>
|
|
<id>${distMgmtSnapshotsId}</id>
|
|
<name>${distMgmtSnapshotsName}</name>
|
|
<url>${distMgmtSnapshotsUrl}</url>
|
|
</snapshotRepository>
|
|
<site>
|
|
<id>apache.website</id>
|
|
<url>scpexe://people.apache.org/www/hadoop.apache.org/docs/r${project.version}</url>
|
|
</site>
|
|
</distributionManagement>
|
|
|
|
<repositories>
|
|
<repository>
|
|
<id>${distMgmtSnapshotsId}</id>
|
|
<name>${distMgmtSnapshotsName}</name>
|
|
<url>${distMgmtSnapshotsUrl}</url>
|
|
</repository>
|
|
<repository>
|
|
<id>repository.jboss.org</id>
|
|
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
|
|
<snapshots>
|
|
<enabled>false</enabled>
|
|
</snapshots>
|
|
</repository>
|
|
</repositories>
|
|
|
|
<licenses>
|
|
<license>
|
|
<name>Apache License, Version 2.0</name>
|
|
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
</license>
|
|
</licenses>
|
|
|
|
<organization>
|
|
<name>Apache Software Foundation</name>
|
|
<url>https://www.apache.org</url>
|
|
</organization>
|
|
|
|
<properties>
|
|
<!-- required as child projects with different version can't use ${project.version} -->
|
|
<hadoop.version>3.4.0-SNAPSHOT</hadoop.version>
|
|
|
|
<distMgmtSnapshotsId>apache.snapshots.https</distMgmtSnapshotsId>
|
|
<distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
|
|
<distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
|
|
<distMgmtStagingId>apache.staging.https</distMgmtStagingId>
|
|
<distMgmtStagingName>Apache Release Distribution Repository</distMgmtStagingName>
|
|
<distMgmtStagingUrl>https://repository.apache.org/service/local/staging/deploy/maven2</distMgmtStagingUrl>
|
|
|
|
<!-- platform encoding override -->
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
|
|
<!-- maven plugin versions -->
|
|
<maven-deploy-plugin.version>2.8.1</maven-deploy-plugin.version>
|
|
<maven-site-plugin.version>3.11.0</maven-site-plugin.version>
|
|
<maven-stylus-skin.version>1.5</maven-stylus-skin.version>
|
|
<maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
|
|
<maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
|
|
<maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
|
|
<maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version>
|
|
<restrict-imports.enforcer.version>2.0.0</restrict-imports.enforcer.version>
|
|
<maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
|
|
<maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
|
|
<maven-remote-resources-plugin.version>1.5</maven-remote-resources-plugin.version>
|
|
<maven-resources-plugin.version>3.0.1</maven-resources-plugin.version>
|
|
<apache-rat-plugin.version>0.12</apache-rat-plugin.version>
|
|
<wagon-ssh.version>2.4</wagon-ssh.version>
|
|
<clover-maven-plugin.version>4.4.1</clover-maven-plugin.version>
|
|
<maven-bundle-plugin.version>2.5.0</maven-bundle-plugin.version>
|
|
<lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
|
|
<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
|
|
<checkstyle.version>8.29</checkstyle.version>
|
|
<dependency-check-maven.version>1.4.3</dependency-check-maven.version>
|
|
<spotbugs.version>4.2.2</spotbugs.version>
|
|
<spotbugs-maven-plugin.version>4.2.0</spotbugs-maven-plugin.version>
|
|
<jsonschema2pojo-maven-plugin.version>1.1.1</jsonschema2pojo-maven-plugin.version>
|
|
<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>
|
|
|
|
<shell-executable>bash</shell-executable>
|
|
|
|
<leveldbjni.group>org.fusesource.leveldbjni</leveldbjni.group>
|
|
</properties>
|
|
|
|
<modules>
|
|
<module>hadoop-project</module>
|
|
<module>hadoop-project-dist</module>
|
|
<module>hadoop-assemblies</module>
|
|
<module>hadoop-maven-plugins</module>
|
|
<module>hadoop-common-project</module>
|
|
<module>hadoop-hdfs-project</module>
|
|
<module>hadoop-yarn-project</module>
|
|
<module>hadoop-mapreduce-project</module>
|
|
<module>hadoop-tools</module>
|
|
<module>hadoop-dist</module>
|
|
<module>hadoop-minicluster</module>
|
|
<module>hadoop-client-modules</module>
|
|
<module>hadoop-build-tools</module>
|
|
<module>hadoop-cloud-storage-project</module>
|
|
</modules>
|
|
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven-dependency-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>${maven-enforcer-plugin.version}</version>
|
|
<configuration>
|
|
<rules>
|
|
<requireMavenVersion>
|
|
<version>[3.0.2,)</version>
|
|
</requireMavenVersion>
|
|
<requireJavaVersion>
|
|
<version>[1.8,)</version>
|
|
</requireJavaVersion>
|
|
</rules>
|
|
</configuration>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>de.skuzzle.enforcer</groupId>
|
|
<artifactId>restrict-imports-enforcer-rule</artifactId>
|
|
<version>${restrict-imports.enforcer.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<executions>
|
|
<execution>
|
|
<id>banned-illegal-imports</id>
|
|
<phase>process-sources</phase>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-thirdparty shaded instead of curator shaded</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.curator.shaded.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Sets rather than Guava provided Sets</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Sets</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Sets.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Lists rather than Guava provided Lists</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Lists</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.Lists.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-annotation provided VisibleForTesting rather than the one provided by Guava</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternatives to Guava common classes</reason>
|
|
<bannedImports>
|
|
<bannedImport>com.google.common.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided BaseEncoding</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.io.BaseEncoding</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.io.BaseEncoding.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Optional</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Optional</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Optional.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Function</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Function</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Function.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Predicate</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Predicate</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Predicate.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided Supplier</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Supplier</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Supplier.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use alternative to Guava provided ImmutableListMultimap</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableListMultimap</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableListMultimap.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use hadoop-common provided Preconditions rather than Guava provided</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Preconditions</bannedImport>
|
|
<bannedImport>org.apache.hadoop.thirdparty.com.google.common.base.Preconditions.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
<restrictImports>
|
|
<includeTestCode>true</includeTestCode>
|
|
<reason>Use Fasterxml Jackson 2 dependency in place of org.codehaus Jackson 1</reason>
|
|
<bannedImports>
|
|
<bannedImport>org.codehaus.jackson.**</bannedImport>
|
|
</bannedImports>
|
|
</restrictImports>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<version>${maven-assembly-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-deploy-plugin</artifactId>
|
|
<version>${maven-deploy-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<version>${apache-rat-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<version>${maven-antrun-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<version>${maven-site-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency><!-- add support for ssh/scp -->
|
|
<groupId>org.apache.maven.wagon</groupId>
|
|
<artifactId>wagon-ssh</artifactId>
|
|
<version>${wagon-ssh.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings only.
|
|
It has no influence on the Maven build itself.-->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>${lifecycle-mapping.version}</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<versionRange>[1.7,)</versionRange>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
<versionRange>[2.2,)</versionRange>
|
|
<goals>
|
|
<goal>testResources</goal>
|
|
<goal>resources</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.avro</groupId>
|
|
<artifactId>avro-maven-plugin</artifactId>
|
|
<versionRange>[1.5.3,)</versionRange>
|
|
<goals>
|
|
<goal>schema</goal>
|
|
<goal>protocol</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.codehaus.mojo.jspc</groupId>
|
|
<artifactId>jspc-maven-plugin</artifactId>
|
|
<versionRange>[2.0-alpha-3,)</versionRange>
|
|
<goals>
|
|
<goal>compile</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<versionRange>[2.4,)</versionRange>
|
|
<goals>
|
|
<goal>copy-dependencies</goal>
|
|
<goal>build-classpath</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.codehaus.mojo</groupId>
|
|
<artifactId>exec-maven-plugin</artifactId>
|
|
<versionRange>[1.2,)</versionRange>
|
|
<goals>
|
|
<goal>exec</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<versionRange>[2.3.1,)</versionRange>
|
|
<goals>
|
|
<goal>test-jar</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore></ignore>
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.openclover</groupId>
|
|
<artifactId>clover-maven-plugin</artifactId>
|
|
<version>${clover-maven-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<version>${maven-bundle-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>${maven-checkstyle-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-build-tools</artifactId>
|
|
<version>${hadoop.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
<artifactId>checkstyle</artifactId>
|
|
<version>${checkstyle.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<configuration>
|
|
<configLocation>checkstyle/checkstyle.xml</configLocation>
|
|
<suppressionsLocation>checkstyle/suppressions.xml</suppressionsLocation>
|
|
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
|
<failOnViolation>false</failOnViolation>
|
|
<outputFile>${project.build.directory}/test/checkstyle-errors.xml</outputFile>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.owasp</groupId>
|
|
<artifactId>dependency-check-maven</artifactId>
|
|
<version>${dependency-check-maven.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
<version>${spotbugs-maven-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs</artifactId>
|
|
<version>${spotbugs.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jsonschema2pojo</groupId>
|
|
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
|
|
<version>${jsonschema2pojo-maven-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>${maven-compiler-plugin.version}</version>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>clean</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>pre-clean</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>default</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>validate</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>site</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<phase>pre-site</phase>
|
|
</execution>
|
|
<execution>
|
|
<id>enforce-property</id>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireProperty>
|
|
<property>hadoop.version</property>
|
|
<message>You must set a hadoop.version to be the same as ${project.version}</message>
|
|
<regex>${project.version}</regex>
|
|
<regexMessage>The hadoop.version property should be set and should be ${project.version}.</regexMessage>
|
|
</requireProperty>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.rat</groupId>
|
|
<artifactId>apache-rat-plugin</artifactId>
|
|
<configuration>
|
|
<excludes>
|
|
<exclude>.gitattributes</exclude>
|
|
<exclude>.gitignore</exclude>
|
|
<exclude>.git/**</exclude>
|
|
<exclude>.github/pull_request_template.md</exclude>
|
|
<exclude>.idea/**</exclude>
|
|
<exclude>**/build/**</exclude>
|
|
<exclude>**/patchprocess/**</exclude>
|
|
<exclude>**/*.js</exclude>
|
|
<exclude>licenses/**</exclude>
|
|
<exclude>licenses-binary/**</exclude>
|
|
<exclude>dev-support/docker/pkg-resolver/packages.json</exclude>
|
|
<exclude>dev-support/docker/pkg-resolver/platforms.json</exclude>
|
|
<exclude>**/target/**</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<artifactId>maven-site-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>attach-descriptor</id>
|
|
<goals>
|
|
<goal>attach-descriptor</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.felix</groupId>
|
|
<artifactId>maven-bundle-plugin</artifactId>
|
|
<inherited>true</inherited>
|
|
<extensions>true</extensions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>${maven-checkstyle-plugin.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<!-- OWASP's dependency-check plugin will scan the third party
|
|
dependencies of this project for known CVEs (security
|
|
vulnerabilities against them). It will produce a report
|
|
in target/dependency-check-report.html. To invoke, run
|
|
'mvn dependency-check:aggregate'. Note that this plugin
|
|
requires maven 3.1.1 or greater.
|
|
-->
|
|
<groupId>org.owasp</groupId>
|
|
<artifactId>dependency-check-maven</artifactId>
|
|
<version>${dependency-check-maven.version}</version>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.github.spotbugs</groupId>
|
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<reporting>
|
|
<excludeDefaults>true</excludeDefaults>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>${maven-javadoc-plugin.version}</version>
|
|
<inherited>false</inherited>
|
|
<reportSets>
|
|
<reportSet>
|
|
<id>aggregate</id>
|
|
<configuration>
|
|
<maxmemory>1024m</maxmemory>
|
|
<quiet>true</quiet>
|
|
<verbose>false</verbose>
|
|
<source>${maven.compile.source}</source>
|
|
<charset>${maven.compile.encoding}</charset>
|
|
<reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
|
|
<destDir>hadoop-project/api</destDir>
|
|
<!-- Non-public APIs -->
|
|
<excludePackageNames>org.apache.hadoop.authentication*,org.apache.hadoop.mapreduce.v2.proto,org.apache.hadoop.yarn.proto,org.apache.hadoop.yarn.server*,org.apache.hadoop.yarn.webapp*</excludePackageNames>
|
|
<groups>
|
|
<group>
|
|
<title>Common</title>
|
|
<packages>org.apache.hadoop*</packages>
|
|
</group>
|
|
<group>
|
|
<title>HDFS</title>
|
|
<packages>org.apache.hadoop.hdfs*</packages>
|
|
</group>
|
|
<group>
|
|
<title>MapReduce</title>
|
|
<packages>org.apache.hadoop.mapred*</packages>
|
|
</group>
|
|
<group>
|
|
<title>YARN</title>
|
|
<packages>org.apache.hadoop.yarn*</packages>
|
|
</group>
|
|
</groups>
|
|
<doclet>org.apache.hadoop.classification.tools.IncludePublicAnnotationsStandardDoclet</doclet>
|
|
<docletArtifacts>
|
|
<docletArtifact>
|
|
<groupId>org.apache.hadoop</groupId>
|
|
<artifactId>hadoop-annotations</artifactId>
|
|
<version>${project.version}</version>
|
|
</docletArtifact>
|
|
</docletArtifacts>
|
|
<useStandardDocletOptions>true</useStandardDocletOptions>
|
|
|
|
<!-- switch on dependency-driven aggregation -->
|
|
<includeDependencySources>false</includeDependencySources>
|
|
|
|
<dependencySourceIncludes>
|
|
<!-- include ONLY dependencies I control -->
|
|
<dependencySourceInclude>org.apache.hadoop:hadoop-annotations</dependencySourceInclude>
|
|
</dependencySourceIncludes>
|
|
|
|
</configuration>
|
|
<reports>
|
|
<report>aggregate</report>
|
|
</reports>
|
|
</reportSet>
|
|
</reportSets>
|
|
</plugin>
|
|
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
<version>${maven-dependency-plugin.version}</version>
|
|
<reportSets>
|
|
<reportSet>
|
|
<reports>
|
|
<report>analyze-report</report>
|
|
</reports>
|
|
</reportSet>
|
|
</reportSets>
|
|
</plugin>
|
|
</plugins>
|
|
</reporting>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>src</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
</activation>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>src-dist</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>single</goal>
|
|
</goals>
|
|
<configuration>
|
|
<appendAssemblyId>false</appendAssemblyId>
|
|
<attach>false</attach>
|
|
<finalName>hadoop-${project.version}-src</finalName>
|
|
<outputDirectory>hadoop-dist/target</outputDirectory>
|
|
<!-- Not using descriptorRef and hadoop-assembly dependency -->
|
|
<!-- to avoid making hadoop-main to depend on a module -->
|
|
<descriptors>
|
|
<descriptor>hadoop-assemblies/src/main/resources/assemblies/hadoop-src.xml</descriptor>
|
|
</descriptors>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
<inherited>false</inherited>
|
|
<executions>
|
|
<execution>
|
|
<id>src-dist-msg</id>
|
|
<phase>package</phase>
|
|
<goals>
|
|
<goal>run</goal>
|
|
</goals>
|
|
<configuration>
|
|
<target>
|
|
<echo/>
|
|
<echo>Hadoop source tar available at: ${basedir}/hadoop-dist/target/hadoop-${project.version}-src.tar.gz</echo>
|
|
<echo/>
|
|
</target>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
|
|
|
|
<profile>
|
|
<id>sign</id>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-gpg-plugin</artifactId>
|
|
<version>${maven-gpg-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>sign-artifacts</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>sign</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>clover</id>
|
|
<activation>
|
|
<activeByDefault>false</activeByDefault>
|
|
<property>
|
|
<name>clover</name>
|
|
</property>
|
|
</activation>
|
|
<properties>
|
|
<cloverDatabase>${project.build.directory}/clover/hadoop-coverage.db</cloverDatabase>
|
|
<!-- NB: This additional parametrization is made in order
|
|
to be able to re-define these properties with "-Dk=v" maven options.
|
|
By some reason the expressions declared in clover
|
|
docs like "${maven.clover.generateHtml}" do not work in that way.
|
|
However, the below properties are confirmed to work: e.g.
|
|
-DcloverGenHtml=false switches off the Html generation.
|
|
The default values provided here exactly correspond to Clover defaults, so
|
|
the behavior is 100% backwards compatible. -->
|
|
<cloverAlwaysReport>true</cloverAlwaysReport>
|
|
<cloverGenHtml>true</cloverGenHtml>
|
|
<cloverGenXml>true</cloverGenXml>
|
|
<cloverGenHistorical>false</cloverGenHistorical>
|
|
</properties>
|
|
<build>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.openclover</groupId>
|
|
<artifactId>clover-maven-plugin</artifactId>
|
|
<configuration>
|
|
<includesAllSourceRoots>false</includesAllSourceRoots>
|
|
<includesTestSourceRoots>true</includesTestSourceRoots>
|
|
<cloverDatabase>${cloverDatabase}</cloverDatabase>
|
|
<targetPercentage>50%</targetPercentage>
|
|
<outputDirectory>${project.build.directory}/clover</outputDirectory>
|
|
<alwaysReport>${cloverAlwaysReport}</alwaysReport>
|
|
<generateHtml>${cloverGenHtml}</generateHtml>
|
|
<generateXml>${cloverGenXml}</generateXml>
|
|
<generateHistorical>${cloverGenHistorical}</generateHistorical>
|
|
<excludes>
|
|
<exclude>**/examples/**/*.java</exclude>
|
|
<exclude>**/hamlet/*.java</exclude>
|
|
<exclude>**/ha/proto/*.java</exclude>
|
|
<exclude>**/protocol/proto/*.java</exclude>
|
|
<exclude>**/compiler/generated/*.java</exclude>
|
|
<exclude>**/protobuf/*.java</exclude>
|
|
<exclude>**/v2/proto/*.java</exclude>
|
|
<exclude>**/yarn/proto/*.java</exclude>
|
|
<exclude>**/security/proto/*.java</exclude>
|
|
<exclude>**/tools/proto/*.java</exclude>
|
|
<exclude>**/hs/proto/*.java</exclude>
|
|
</excludes>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>clover-setup</id>
|
|
<phase>process-sources</phase>
|
|
<goals>
|
|
<goal>setup</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>clover</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>clover</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
</profile>
|
|
<profile>
|
|
<id>aarch64</id>
|
|
<properties>
|
|
<leveldbjni.group>org.openlabtesting.leveldbjni</leveldbjni.group>
|
|
</properties>
|
|
<activation>
|
|
<os>
|
|
<family>linux</family>
|
|
<arch>aarch64</arch>
|
|
</os>
|
|
</activation>
|
|
</profile>
|
|
|
|
</profiles>
|
|
</project>
|