You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2022/03/28 13:08:08 UTC
[hbase] branch master updated: HBASE-26617 Use spotless to reduce the pain on fixing checkstyle issues (#4214)
This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/master by this push:
new a211792 HBASE-26617 Use spotless to reduce the pain on fixing checkstyle issues (#4214)
a211792 is described below
commit a21179287b6c5a570d188a8b2f94163828052093
Author: Duo Zhang <zh...@apache.org>
AuthorDate: Sun Mar 13 23:38:00 2022 +0800
HBASE-26617 Use spotless to reduce the pain on fixing checkstyle issues (#4214)
Closes #4214
Signed-off-by: GeorryHuang <hu...@apache.org>
---
dev-support/license-header | 17 +
pom.xml | 4365 ++++++++++++++++++++++----------------------
2 files changed, 2189 insertions(+), 2193 deletions(-)
diff --git a/dev-support/license-header b/dev-support/license-header
new file mode 100644
index 0000000..2379dda
--- /dev/null
+++ b/dev-support/license-header
@@ -0,0 +1,17 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
diff --git a/pom.xml b/pom.xml
index 507caa3..b59d075 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
-<!--
+ <!--
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -38,15 +38,13 @@
</parent>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
- <packaging>pom</packaging>
<version>3.0.0-alpha-3-SNAPSHOT</version>
+ <packaging>pom</packaging>
<name>Apache HBase</name>
- <description>
- Apache HBase is the Hadoop database. Use it when you need
+ <description>Apache HBase is the Hadoop database. Use it when you need
random, realtime read/write access to your Big Data.
This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters
- of commodity hardware.
- </description>
+ of commodity hardware.</description>
<url>https://hbase.apache.org</url>
<inceptionYear>2007</inceptionYear>
<!-- Set here so we can consistently use the correct name, even on branches with
@@ -59,98 +57,6 @@
<distribution>repo</distribution>
</license>
</licenses>
-
- <modules>
- <module>hbase-build-configuration</module>
- <module>hbase-replication</module>
- <module>hbase-balancer</module>
- <module>hbase-mapreduce</module>
- <module>hbase-resource-bundle</module>
- <module>hbase-http</module>
- <module>hbase-server</module>
- <module>hbase-thrift</module>
- <module>hbase-shell</module>
- <module>hbase-protocol-shaded</module>
- <module>hbase-client</module>
- <module>hbase-hadoop-compat</module>
- <module>hbase-common</module>
- <module>hbase-procedure</module>
- <module>hbase-endpoint</module>
- <module>hbase-it</module>
- <module>hbase-examples</module>
- <module>hbase-assembly</module>
- <module>hbase-testing-util</module>
- <module>hbase-annotations</module>
- <module>hbase-rest</module>
- <module>hbase-checkstyle</module>
- <module>hbase-external-blockcache</module>
- <module>hbase-shaded</module>
- <module>hbase-archetypes</module>
- <module>hbase-metrics-api</module>
- <module>hbase-metrics</module>
- <module>hbase-backup</module>
- <module>hbase-zookeeper</module>
- <module>hbase-hbtop</module>
- <module>hbase-asyncfs</module>
- <module>hbase-logging</module>
- <module>hbase-compression</module>
- </modules>
- <scm>
- <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
- <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase.git</developerConnection>
- <url>https://gitbox.apache.org/repos/asf?p=hbase.git</url>
- </scm>
- <issueManagement>
- <system>JIRA</system>
- <url>https://issues.apache.org/jira/browse/HBASE</url>
- </issueManagement>
- <mailingLists>
- <mailingList>
- <name>User List</name>
- <subscribe>user-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe>
- <post>user@hbase.apache.org</post>
- <archive>https://lists.apache.org/list.html?user@hbase.apache.org</archive>
- <otherArchives>
- <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
- </otherArchives>
- </mailingList>
- <mailingList>
- <name>Developer List</name>
- <subscribe>dev-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe>
- <post>dev@hbase.apache.org</post>
- <archive>https://lists.apache.org/list.html?dev@hbase.apache.org</archive>
- <otherArchives>
- <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
- </otherArchives>
- </mailingList>
- <mailingList>
- <name>Commits List</name>
- <subscribe>commits-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
- <archive>https://lists.apache.org/list.html?commits@hbase.apache.org</archive>
- </mailingList>
- <mailingList>
- <name>Issues List</name>
- <subscribe>issues-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe>
- <archive>https://lists.apache.org/list.html?issues@hbase.apache.org</archive>
- </mailingList>
- <mailingList>
- <name>Builds List</name>
- <subscribe>builds-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe>
- <archive>https://lists.apache.org/list.html?builds@hbase.apache.org</archive>
- </mailingList>
- <mailingList>
- <name>User (ZH) List</name>
- <subscribe>user-zh-subscribe@hbase.apache.org</subscribe>
- <unsubscribe>user-zh-unsubscribe@hbase.apache.org</unsubscribe>
- <post>user-zh@hbase.apache.org</post>
- <archive>https://lists.apache.org/list.html?user-zh@hbase.apache.org</archive>
- </mailingList>
- </mailingLists>
<developers>
<developer>
<id>achouhan</id>
@@ -321,10 +227,10 @@
<timezone>-5</timezone>
</developer>
<developer>
- <id>gxcheng</id>
- <name>Guangxu Cheng</name>
- <email>gxcheng@apache.org</email>
- <timezone>+8</timezone>
+ <id>gxcheng</id>
+ <name>Guangxu Cheng</name>
+ <email>gxcheng@apache.org</email>
+ <timezone>+8</timezone>
</developer>
<developer>
<id>haxiaolin</id>
@@ -734,988 +640,108 @@
<timezone>+8</timezone>
</developer>
</developers>
- <build>
- <extensions>
- <extension>
- <groupId>kr.motd.maven</groupId>
- <artifactId>os-maven-plugin</artifactId>
- <version>${os.maven.version}</version>
- </extension>
- </extensions>
- <!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
- For specific version use a property and define it in the parent pom.
- -->
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-remote-resources-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <configuration>
- <!--You need this profile. It'll sign your artifacts.
- I'm not sure if this config. actually works though.
- I've been specifying -Papache-release on the command-line
- -->
- <releaseProfiles>apache-release</releaseProfiles>
- <!--This stops our running tests for each stage of maven release.
- But it builds the test jar. From SUREFIRE-172.
- -->
- <arguments>-Dmaven.test.skip.exec ${arguments}</arguments>
- <goals>${goals}</goals>
- <pomFileName>pom.xml</pomFileName>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>${compileSource}</source>
- <target>${compileSource}</target>
- <showWarnings>true</showWarnings>
- <showDeprecation>false</showDeprecation>
- <useIncrementalCompilation>false</useIncrementalCompilation>
- <compilerArgument>-Xlint:-options</compilerArgument>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>${maven.javadoc.version}</version>
- <configuration>
- <source>${compileSource}</source>
- </configuration>
- </plugin>
- <!-- Test oriented plugins -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>${surefire.version}</version>
- <dependencies>
- <!-- by default surefire selects dynamically the connector to the unit tests
- tool. We want to use always the same as the different connectors can have different
- bugs and behaviour. -->
- <dependency>
- <groupId>org.apache.maven.surefire</groupId>
- <artifactId>${surefire.provider}</artifactId>
- <version>${surefire.version}</version>
- </dependency>
- </dependencies>
- <!-- Generic testing configuration for all packages -->
- <configuration>
- <groups>${surefire.firstPartGroups}</groups>
- <failIfNoTests>false</failIfNoTests>
- <trimStackTrace>false</trimStackTrace>
- <skip>${surefire.skipFirstPart}</skip>
- <forkCount>${surefire.firstPartForkCount}</forkCount>
- <reuseForks>false</reuseForks>
- <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
- <tempDir>${surefire.tempDir}</tempDir>
- <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
- <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
- <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
- <systemPropertyVariables>
- <test.build.classes>${test.build.classes}</test.build.classes>
- <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir>
- <java.util.logging.config.class>org.apache.hadoop.hbase.logging.JulToSlf4jInitializer</java.util.logging.config.class>
- </systemPropertyVariables>
- <excludes>
- <!-- users can add -D option to skip particular test classes
- ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java
- -->
- <exclude>${test.exclude.pattern}</exclude>
- </excludes>
- <properties>
- <property>
- <name>listener</name>
- <value>org.apache.hadoop.hbase.TimedOutTestsListener,org.apache.hadoop.hbase.HBaseClassTestRuleChecker,org.apache.hadoop.hbase.ResourceCheckerJUnitListener</value>
- </property>
- </properties>
- </configuration>
- <executions>
- <execution>
- <id>secondPartTestsExecution</id>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>${surefire.skipSecondPart}</skip>
- <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
- <reuseForks>false</reuseForks>
- <forkCount>${surefire.secondPartForkCount}</forkCount>
- <groups>${surefire.secondPartGroups}</groups>
- <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-report-plugin</artifactId>
- <version>${surefire.version}</version>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <version>${buildnumber.maven.version}</version>
- </plugin>
- <plugin>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs-maven-plugin</artifactId>
- <version>${spotbugs.maven.version}</version>
- <configuration>
- <excludeFilterFile>${project.basedir}/../dev-support/spotbugs-exclude.xml</excludeFilterFile>
- <spotbugsXmlOutput>true</spotbugsXmlOutput>
- <xmlOutput>true</xmlOutput>
- <effort>Max</effort>
- </configuration>
- <dependencies>
- <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
- <dependency>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs</artifactId>
- <version>${spotbugs.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>${build.helper.maven.version}</version>
- </plugin>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>${maven.antrun.version}</version>
- </plugin>
- <plugin>
- <groupId>org.jamon</groupId>
- <artifactId>jamon-maven-plugin</artifactId>
- <version>${jamon.plugin.version}</version>
- </plugin>
- <!-- Make a jar and put the sources in the jar.
- In the parent pom, so submodules will do the right thing. -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-source-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-sources</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>jar-no-fork</goal>
- <goal>test-jar-no-fork</goal>
- </goals>
- <configuration>
- <excludes>
- <exclude>log4j2.xml</exclude>
- </excludes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!-- General configuration for submodules who want to build a test jar -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <phase>prepare-package</phase>
- <goals>
- <!--This goal will install a -test.jar when we do install
- See https://maven.apache.org/guides/mini/guide-attached-tests.html
- -->
- <goal>test-jar</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <skipIfEmpty>true</skipIfEmpty>
- <excludes>
- <exclude>hbase-site.xml</exclude>
- <exclude>hdfs-site.xml</exclude>
- <exclude>mapred-queues.xml</exclude>
- <exclude>mapred-site.xml</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <!-- excludes are inherited -->
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>**/*.versionsBackup</exclude>
- <exclude>**/*.log</exclude>
- <exclude>**/.*</exclude>
- <exclude>**/*.tgz</exclude>
- <exclude>**/*.orig</exclude>
- <exclude>**/0000000000000016310</exclude>
- <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
- <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
- <exclude>**/.idea/**</exclude>
- <exclude>**/*.iml</exclude>
- <exclude>**/CHANGES.txt</exclude>
- <exclude>**/generated/**</exclude>
- <exclude>**/gen-*/**</exclude>
- <!-- No material contents -->
- <exclude>conf/regionservers</exclude>
- <exclude>**/*.avpr</exclude>
- <exclude>**/*.svg</exclude>
- <!-- non-standard notice file from jruby included by reference -->
- <exclude>**/src/main/resources/META-INF/LEGAL</exclude>
- <!-- MIT: https://github.com/asciidoctor/asciidoctor/blob/master/LICENSE.adoc -->
- <exclude>**/src/main/asciidoc/hbase.css</exclude>
- <!-- MIT https://jquery.org/license -->
- <exclude>**/jquery.min.js</exclude>
- <exclude>**/jquery.tablesorter.min.js</exclude>
- <exclude>**/parser-date-iso8601.min.js</exclude>
- <!-- MIT: bootstrap -->
- <exclude>**/src/main/resources/hbase-webapps/static/*/bootstrap*</exclude>
- <!-- BSD 3-clause: Vega, Vega-Lite, Vega-Embed -->
- <exclude>**/hbase-webapps/static/js/vega*.min.js</exclude>
- <!-- vector graphics -->
- <exclude>**/*.vm</exclude>
- <!-- apache doxia generated -->
- <exclude>**/control</exclude>
- <exclude>**/conffile</exclude>
- <!-- auto-gen docs -->
- <exclude>docs/*</exclude>
- <exclude>logs/*</exclude>
- <!-- exclude source control files -->
- <exclude>.git/**</exclude>
- <exclude>.svn/**</exclude>
- <exclude>**/.settings/**</exclude>
- <exclude>**/patchprocess/**</exclude>
- <exclude>src/site/resources/repo/**</exclude>
- <exclude>**/dependency-reduced-pom.xml</exclude>
- <exclude>**/rat.txt</exclude>
- <!-- exclude the shaded protobuf files -->
- <exclude>**/shaded/com/google/protobuf/**</exclude>
- <exclude>**/src/main/patches/**</exclude>
- <exclude>**/vote.tmpl</exclude>
- <!-- gzipped list of S3N URIs for hbase-it -->
- <exclude>**/CC-MAIN-2021-10-warc.paths.gz</exclude>
- </excludes>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <!--Defer to the hbase-assembly sub-module. It
- does all assembly-->
- <skipAssembly>true</skipAssembly>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.xolstice.maven.plugins</groupId>
- <artifactId>protobuf-maven-plugin</artifactId>
- <version>${protobuf.plugin.version}</version>
- <configuration>
- <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
- <clearOutputDirectory>false</clearOutputDirectory>
- <checkStaleness>true</checkStaleness>
- </configuration>
- </plugin>
- <plugin>
- <!-- Approach followed here is roughly the same as mentioned here:
- https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html
- -->
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>${maven.checkstyle.version}</version>
- <dependencies>
- <dependency>
- <groupId>org.apache.hbase</groupId>
- <artifactId>hbase-checkstyle</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>com.puppycrawl.tools</groupId>
- <artifactId>checkstyle</artifactId>
- <version>${checkstyle.version}</version>
- </dependency>
- </dependencies>
- <configuration>
- <configLocation>hbase/checkstyle.xml</configLocation>
- <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
- <includeTestSourceDirectory>true</includeTestSourceDirectory>
- </configuration>
- </plugin>
- <plugin>
- <groupId>net.revelc.code</groupId>
- <artifactId>warbucks-maven-plugin</artifactId>
- <version>${maven.warbucks.version}</version>
- <configuration>
- <ignoreRuleFailures>false</ignoreRuleFailures>
- <rules>
- <rule>
- <!-- exclude the generated java files -->
- <classPattern>(?!.*(.generated.|.tmpl.|\$)).*</classPattern>
- <includeTestClasses>false</includeTestClasses>
- <includePublicClasses>true</includePublicClasses>
- <includePackagePrivateClasses>false</includePackagePrivateClasses>
- <includeProtectedClasses>false</includeProtectedClasses>
- <includePrivateClasses>false</includePrivateClasses>
- <classAnnotationPattern>org[.]apache[.]yetus[.]audience[.]InterfaceAudience.*</classAnnotationPattern>
- </rule>
- </rules>
- </configuration>
- <executions>
- <execution>
- <id>run-warbucks</id>
- <goals>
- <goal>check</goal><!-- runs at process-test-classes phase -->
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <version>${enforcer.version}</version>
- <dependencies>
- <dependency>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>extra-enforcer-rules</artifactId>
- <version>${extra.enforcer.version}</version>
- </dependency>
- <dependency>
- <groupId>de.skuzzle.enforcer</groupId>
- <artifactId>restrict-imports-enforcer-rule</artifactId>
- <version>${restrict-imports.enforcer.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-gpg-plugin</artifactId>
- <version>${maven.gpg.version}</version>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>negate-license-bundles-property</id>
- <goals>
- <goal>bsh-property</goal>
- </goals>
- <configuration>
- <source>skip.license.check = !${license.bundles.dependencies};</source>
- <properties>
- <property>skip.license.check</property>
- </properties>
- </configuration>
- </execution>
- <!-- sets where to find the generated LICENSE files -->
- <execution>
- <id>create-license-file-path-property</id>
- <goals>
- <goal>regex-property</goal>
- </goals>
- <configuration>
- <name>license.aggregate.path</name>
- <value>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</value>
- <regex>\\</regex>
- <replacement>/</replacement>
- <failIfNoMatch>false</failIfNoMatch>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <executions>
- <execution>
- <id>display-info</id>
- <phase>initialize</phase>
- <goals>
- <goal>display-info</goal>
- </goals>
- <inherited>false</inherited>
- </execution>
- <execution>
- <id>hadoop-profile-min-maven-min-java-banned-xerces</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <!-- Help people activate profiles correctly -->
- <evaluateBeanshell>
- <condition>System.getProperty("hadoop-profile", "").isEmpty()</condition>
- <message>The hadoop-profile property is unused, did you mean to set hadoop.profile instead?</message>
- </evaluateBeanshell>
- <!-- The earliest maven version we verify builds for via ASF Jenkins -->
- <requireMavenVersion>
- <version>[${maven.min.version},)</version>
- <message>Maven is out of date.
- HBase requires at least version ${maven.min.version} of Maven to properly build from source.
- You appear to be using an older version. You can use either "mvn -version" or
- "mvn enforcer:display-info" to verify what version is active.
- See the reference guide on building for more information: https://hbase.apache.org/book.html#build
- </message>
- </requireMavenVersion>
- <!-- The earliest JVM version we verify builds for via ASF Jenkins -->
- <requireJavaVersion>
- <version>[${java.min.version},)</version>
- <message>Java is out of date.
- HBase requires at least version ${java.min.version} of the JDK to properly build from source.
- You appear to be using an older version. You can use either "mvn -version" or
- "mvn enforcer:display-info" to verify what version is active.
- See the reference guide on building for more information: https://hbase.apache.org/book.html#build
- </message>
- </requireJavaVersion>
- <bannedDependencies>
- <excludes>
- <exclude>xerces:xercesImpl</exclude>
- </excludes>
- <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-jsr305</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>com.google.code.findbugs:jsr305</exclude>
- </excludes>
- <message>We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321.</message>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-scala</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>org.scala-lang:scala-library</exclude>
- </excludes>
- <message>We don't allow Scala, see HBASE-13992.</message>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-commons-logging</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>commons-logging:commons-logging</exclude>
- </excludes>
- <message>
- We don't use commons-logging any more, so do not depend on it directly.
- </message>
- <searchTransitive>false</searchTransitive>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-other-logging-framework</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>log4j:*</exclude>
- <exclude>org.slf4j:slf4j-log4j12</exclude>
- <exclude>ch.qos.reload4j:*</exclude>
- <exclude>org.slf4j:slf4j-reload4j</exclude>
- <exclude>ch.qos.logback:*</exclude>
- </excludes>
- <message>
- We do not allow other logging frameworks as now we use log4j2
- </message>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-jetty</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>org.eclipse.jetty:**</exclude>
- </excludes>
- <message>
- Use shaded jetty instead
- </message>
- <searchTransitive>false</searchTransitive>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-jersey</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>org.glassfish.jersey.containers:**</exclude>
- <exclude>org.glassfish.jersey.core:**</exclude>
- </excludes>
- <message>
- Use shaded jersey instead
- </message>
- <searchTransitive>false</searchTransitive>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>banned-htrace</id>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <bannedDependencies>
- <excludes>
- <exclude>org.apache.htrace:**</exclude>
- </excludes>
- <message>
- Use OpenTelemetry instead
- </message>
- <searchTransitive>false</searchTransitive>
- </bannedDependencies>
- </rules>
- </configuration>
- </execution>
- <execution>
- <id>check-aggregate-license</id>
- <!-- must check after LICENSE is built at 'generate-resources' -->
- <phase>process-resources</phase>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <evaluateBeanshell>
- <condition>
- File license = new File("${license.aggregate.path}");
-
- // Beanshell does not support try-with-resources,
- // so we must close this scanner manually
- Scanner scanner = new Scanner(license);
-
- while (scanner.hasNextLine()) {
- if (scanner.nextLine().startsWith("ERROR:")) {
- scanner.close();
- return false;
- }
- }
- scanner.close();
- return true;
- </condition>
- <message>
- License errors detected, for more detail find ERROR in
- ${license.aggregate.path}
- </message>
- </evaluateBeanshell>
- </rules>
- <skip>${skip.license.check}</skip>
- </configuration>
- </execution>
- <execution>
- <id>banned-illegal-imports</id>
- <phase>process-sources</phase>
- <goals>
- <goal>enforce</goal>
- </goals>
- <configuration>
- <rules>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use SLF4j for logging</reason>
- <bannedImports>
- <bannedImport>org.apache.commons.logging.**</bannedImport>
- <bannedImport>org.apache.log4j.**</bannedImport>
- <bannedImport>org.apache.logging.log4j.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>false</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>
- Do not use log4j2 directly in code, see Log4jUtils in hbase-logging for more details.
- </reason>
- <bannedImports>
- <bannedImport>org.apache.logging.log4j.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded version in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>com.google.common.**</bannedImport>
- <bannedImport>io.netty.**</bannedImport>
- <bannedImport>org.apache.commons.cli.**</bannedImport>
- <bannedImport>org.apache.commons.collections.**</bannedImport>
- <bannedImport>org.apache.commons.collections4.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Do not use shaded classes from other dependencies</reason>
- <bannedImports>
- <bannedImport>org.apache.curator.shaded.**</bannedImport>
- <bannedImport>org.apache.htrace.shaded.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded gson in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>org.codehaus.jackson.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use commons lang 3</reason>
- <bannedImports>
- <bannedImport>org.apache.commons.lang.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use yetus IA and IS annotations</reason>
- <bannedImports>
- <bannedImport>org.apache.hadoop.classificatio.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Do not use htrace</reason>
- <bannedImports>
- <bannedImport>org.htrace.**</bannedImport>
- <bannedImport>org.apache.htrace.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded jetty in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>org.eclipse.jetty.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded jersey in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>org.glassfish.jersey.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>
- You should never use this style of annotations(i.e, 'this is for test only')
- in IA.Public or IA.LimitedPrivate classes. Use IA.Private to tell users this is
- not for public use.
- For IA.Private classes, use RestrictedApi annotation in error prone instead.
- </reason>
- <bannedImports>
- <bannedImport>org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded javax.ws.rs in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>javax.ws.rs.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use shaded jackson-jaxrs-json-provider in hbase-thirdparty</reason>
- <bannedImports>
- <bannedImport>com.fasterxml.jackson.jaxrs.**</bannedImport>
- </bannedImports>
- </restrictImports>
- <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
- <includeTestCode>true</includeTestCode>
- <commentLineBufferSize>512</commentLineBufferSize>
- <reason>Use junit4 instead</reason>
- <bannedImports>
- <bannedImport>junit.framework.**</bannedImport>
- </bannedImports>
- </restrictImports>
- </rules>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!-- parent-module only plugins -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>${xml.maven.version}</version>
- <inherited>false</inherited>
- <executions>
- <execution>
- <!-- Run the hbase-default.xml through a stylesheet so can show it in doc-->
- <goals>
- <goal>transform</goal>
- </goals>
- <phase>site</phase>
- </execution>
- </executions>
- <configuration>
- <transformationSets>
- <!-- For asciidoc -->
- <transformationSet>
- <!--Reaching up and over into common sub-module for hbase-default.xml-->
- <dir>${basedir}/hbase-common/src/main/resources/</dir>
- <includes>
- <include>hbase-default.xml</include>
- </includes>
- <stylesheet>${basedir}/src/main/xslt/configuration_to_asciidoc_chapter.xsl</stylesheet>
- <fileMappers>
- <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
- <pattern>^(.*)\.xml$</pattern>
- <replacement>$1.adoc</replacement>
- </fileMapper>
- </fileMappers>
- <outputDir>${basedir}/target/asciidoc</outputDir>
- </transformationSet>
- </transformationSets>
- </configuration>
- </plugin>
- <!-- Special configuration for spotbugs just in the parent so
- the filter file location can be more general (see definition in pluginManagement) -->
- <plugin>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs-maven-plugin</artifactId>
- <executions>
- <execution>
- <inherited>false</inherited>
- <goals>
- <goal>spotbugs</goal>
- </goals>
- <configuration>
- <excludeFilterFile>${basedir}/dev-support/spotbugs-exclude.xml</excludeFilterFile>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <dependencies>
- <dependency>
- <!-- add support for ssh/scp -->
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-ssh</artifactId>
- <version>${wagon.ssh.version}</version>
- </dependency>
- </dependencies>
- <configuration>
- <siteDirectory>${basedir}/src/site</siteDirectory>
- <customBundle>${basedir}/src/site/custom/project-info-report.properties</customBundle>
- <inputEncoding>UTF-8</inputEncoding>
- <outputEncoding>UTF-8</outputEncoding>
- </configuration>
- </plugin>
- <!-- For AsciiDoc docs building -->
- <plugin>
- <groupId>org.asciidoctor</groupId>
- <artifactId>asciidoctor-maven-plugin</artifactId>
- <version>${asciidoctor.plugin.version}</version>
- <inherited>false</inherited>
- <dependencies>
- <dependency>
- <groupId>org.asciidoctor</groupId>
- <artifactId>asciidoctorj-pdf</artifactId>
- <version>${asciidoctorj.pdf.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jruby</groupId>
- <artifactId>jruby-complete</artifactId>
- <version>${jruby.version}</version>
- </dependency>
- </dependencies>
- <configuration>
- <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
- <doctype>book</doctype>
- <attributes>
- <docVersion>${project.version}</docVersion>
- <imagesdir>images</imagesdir>
- <source-highlighter>coderay</source-highlighter>
- </attributes>
- </configuration>
- <executions>
- <execution>
- <id>output-html</id>
- <phase>site</phase>
- <goals>
- <goal>process-asciidoc</goal>
- </goals>
- <configuration>
- <attributes>
- <stylesheet>hbase.css</stylesheet>
- </attributes>
- <backend>html5</backend>
- </configuration>
- </execution>
- <execution>
- <id>output-pdf</id>
- <phase>site</phase>
- <goals>
- <goal>process-asciidoc</goal>
- </goals>
- <configuration>
- <backend>pdf</backend>
- <attributes>
- <pagenums/>
- <toc/>
- <idprefix/>
- <idseparator>-</idseparator>
- </attributes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <!--$NO-MVN-MAN-VER$ -->
- <inherited>false</inherited>
- <executions>
- <execution>
- <id>copy-htaccess</id>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <phase>site</phase>
- <configuration>
- <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
- <resources>
- <resource>
- <directory>${basedir}/src/site/resources/</directory>
- <includes>
- <include>.htaccess</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- <!-- needed to make the redirect above work -->
- <execution>
- <id>copy-empty-book-dir</id>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <phase>site</phase>
- <configuration>
- <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
- <resources>
- <resource>
- <directory>${basedir}/src/site/resources/</directory>
- <includes>
- <include>book/**</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <escapeString>\</escapeString>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>${maven.antrun.version}</version>
- <inherited>false</inherited>
- <!-- Rename the book.pdf generated by asciidoctor -->
- <executions>
- <execution>
- <id>rename-pdf</id>
- <phase>site</phase>
- <configuration>
- <target name="rename file">
- <move file="${project.reporting.outputDirectory}/book.pdf" tofile="${project.reporting.outputDirectory}/apache_hbase_reference_guide.pdf" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <executions>
- <execution>
- <phase>validate</phase>
- <goals>
- <goal>create-timestamp</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <timestampFormat>yyyy</timestampFormat>
- <timestampPropertyName>build.year</timestampPropertyName>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>${maven.bundle.version}</version>
- <inherited>true</inherited>
- <extensions>true</extensions>
- </plugin>
- </plugins>
- </build>
+ <mailingLists>
+ <mailingList>
+ <name>User List</name>
+ <subscribe>user-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>user-unsubscribe@hbase.apache.org</unsubscribe>
+ <post>user@hbase.apache.org</post>
+ <archive>https://lists.apache.org/list.html?user@hbase.apache.org</archive>
+ <otherArchives>
+ <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.user</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Developer List</name>
+ <subscribe>dev-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>dev-unsubscribe@hbase.apache.org</unsubscribe>
+ <post>dev@hbase.apache.org</post>
+ <archive>https://lists.apache.org/list.html?dev@hbase.apache.org</archive>
+ <otherArchives>
+ <otherArchive>https://dir.gmane.org/gmane.comp.java.hadoop.hbase.devel</otherArchive>
+ </otherArchives>
+ </mailingList>
+ <mailingList>
+ <name>Commits List</name>
+ <subscribe>commits-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>commits-unsubscribe@hbase.apache.org</unsubscribe>
+ <archive>https://lists.apache.org/list.html?commits@hbase.apache.org</archive>
+ </mailingList>
+ <mailingList>
+ <name>Issues List</name>
+ <subscribe>issues-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>issues-unsubscribe@hbase.apache.org</unsubscribe>
+ <archive>https://lists.apache.org/list.html?issues@hbase.apache.org</archive>
+ </mailingList>
+ <mailingList>
+ <name>Builds List</name>
+ <subscribe>builds-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>builds-unsubscribe@hbase.apache.org</unsubscribe>
+ <archive>https://lists.apache.org/list.html?builds@hbase.apache.org</archive>
+ </mailingList>
+ <mailingList>
+ <name>User (ZH) List</name>
+ <subscribe>user-zh-subscribe@hbase.apache.org</subscribe>
+ <unsubscribe>user-zh-unsubscribe@hbase.apache.org</unsubscribe>
+ <post>user-zh@hbase.apache.org</post>
+ <archive>https://lists.apache.org/list.html?user-zh@hbase.apache.org</archive>
+ </mailingList>
+ </mailingLists>
+
+ <modules>
+ <module>hbase-build-configuration</module>
+ <module>hbase-replication</module>
+ <module>hbase-balancer</module>
+ <module>hbase-mapreduce</module>
+ <module>hbase-resource-bundle</module>
+ <module>hbase-http</module>
+ <module>hbase-server</module>
+ <module>hbase-thrift</module>
+ <module>hbase-shell</module>
+ <module>hbase-protocol-shaded</module>
+ <module>hbase-client</module>
+ <module>hbase-hadoop-compat</module>
+ <module>hbase-common</module>
+ <module>hbase-procedure</module>
+ <module>hbase-endpoint</module>
+ <module>hbase-it</module>
+ <module>hbase-examples</module>
+ <module>hbase-assembly</module>
+ <module>hbase-testing-util</module>
+ <module>hbase-annotations</module>
+ <module>hbase-rest</module>
+ <module>hbase-checkstyle</module>
+ <module>hbase-external-blockcache</module>
+ <module>hbase-shaded</module>
+ <module>hbase-archetypes</module>
+ <module>hbase-metrics-api</module>
+ <module>hbase-metrics</module>
+ <module>hbase-backup</module>
+ <module>hbase-zookeeper</module>
+ <module>hbase-hbtop</module>
+ <module>hbase-asyncfs</module>
+ <module>hbase-logging</module>
+ <module>hbase-compression</module>
+ </modules>
+ <scm>
+ <connection>scm:git:git://gitbox.apache.org/repos/asf/hbase.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/hbase.git</developerConnection>
+ <url>https://gitbox.apache.org/repos/asf?p=hbase.git</url>
+ </scm>
+ <issueManagement>
+ <system>JIRA</system>
+ <url>https://issues.apache.org/jira/browse/HBASE</url>
+ </issueManagement>
+ <distributionManagement>
+ <site>
+ <id>hbase.apache.org</id>
+ <name>HBase Website at hbase.apache.org</name>
+ <!-- On why this is the tmp dir and not hbase.apache.org, see
+ https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
+ -->
+ <url>file:///tmp</url>
+ </site>
+ </distributionManagement>
<properties>
<!-- override on command line to have generated LICENSE files include
diagnostic info for verifying notice requirements -->
@@ -1731,9 +757,7 @@
<!-- modules that include vega in their source tree should set true -->
<license.bundles.vega>false</license.bundles.vega>
<tar.name>${project.build.finalName}.tar.gz</tar.name>
- <maven.build.timestamp.format>
- yyyy-MM-dd'T'HH:mm
- </maven.build.timestamp.format>
+ <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm</maven.build.timestamp.format>
<buildDate>${maven.build.timestamp}</buildDate>
<compileSource>1.8</compileSource>
<releaseTarget>8</releaseTarget>
@@ -1825,6 +849,7 @@
<surefire.version>3.0.0-M4</surefire.version>
<wagon.ssh.version>2.12</wagon.ssh.version>
<xml.maven.version>1.0.1</xml.maven.version>
+ <spotless.version>2.21.0</spotless.version>
<!-- compression -->
<aircompressor.version>0.21</aircompressor.version>
<lz4.version>1.8.0</lz4.version>
@@ -1848,7 +873,7 @@
<!-- default: run small & medium, medium with 2 threads -->
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>false</surefire.skipSecondPart>
- <!-- Fork count varies w/ CPU count. Setting is conservative mostly determined
+ <!-- Fork count varies w/ CPU count. Setting is conservative mostly determined
by what apache jenkins nightly builds will tolerate (See HBASE-24072). Up this
value is you want to burn through tests faster (could make for more failures
if more contention around resources). There is a matching MAVEN_ARG
@@ -1864,7 +889,7 @@
<surefire.testFailureIgnore>false</surefire.testFailureIgnore>
<test.output.tofile>true</test.output.tofile>
<surefire.timeout>900</surefire.timeout>
- <test.exclude.pattern></test.exclude.pattern>
+ <test.exclude.pattern/>
<!--
Use -Dsurefire.Xmx=xxg to run tests with different JVM Xmx value.
This value is managed separately for jdk11. See below.
@@ -1881,14 +906,12 @@
-Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
-Djava.awt.headless=true -Djdk.net.URLClassPath.disableClassPathURLCheck=true
-Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
- -Dio.netty.eventLoopThreads=3 -Dio.opentelemetry.context.enableStrictContext=true
- </hbase-surefire.argLine>
+ -Dio.netty.eventLoopThreads=3 -Dio.opentelemetry.context.enableStrictContext=true</hbase-surefire.argLine>
<hbase-surefire.cygwin-argLine>-enableassertions -Xmx${surefire.cygwinXmx}
-Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true
"-Djava.library.path=${hadoop.library.path};${java.library.path}"
-Dorg.apache.hbase.thirdparty.io.netty.leakDetection.level=advanced
- -Dio.opentelemetry.context.enableStrictContext=true
- </hbase-surefire.cygwin-argLine>
+ -Dio.opentelemetry.context.enableStrictContext=true</hbase-surefire.cygwin-argLine>
<!-- Surefire argLine defaults to Linux, cygwin argLine is used in the os.windows profile -->
<argLine>${hbase-surefire.argLine}</argLine>
<jacoco.version>0.7.5.201505241946</jacoco.version>
@@ -1928,8 +951,8 @@
<!--Was test scope only but if we want to run hbase-it tests, need the annotations test jar-->
</dependency>
<dependency>
- <artifactId>hbase-backup</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-backup</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -1985,83 +1008,83 @@
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-replication</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-replication</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-balancer</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-balancer</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-balancer</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-balancer</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-http</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-http</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-http</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-http</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-server</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-server</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-server</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-server</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-mapreduce</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-mapreduce</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-mapreduce</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-mapreduce</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-endpoint</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-endpoint</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-shell</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-shell</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-shell</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-shell</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-thrift</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-thrift</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-thrift</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-thrift</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
@@ -2073,8 +1096,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-examples</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-examples</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -2083,61 +1106,61 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-it</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-it</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-client</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-client</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-client</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-metrics-api</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-metrics-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-metrics-api</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-metrics-api</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-metrics</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-metrics</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-metrics</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-metrics</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-rest</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-rest</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-resource-bundle</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-resource-bundle</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
- <artifactId>hbase-zookeeper</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-zookeeper</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
@@ -2151,15 +1174,15 @@
</exclusions>
</dependency>
<dependency>
- <artifactId>hbase-zookeeper</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-zookeeper</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
- <artifactId>hbase-hbtop</artifactId>
<groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-hbtop</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -2674,7 +1697,7 @@
</dependency>
<dependency>
<groupId>com.sun.xml.ws</groupId>
- <artifactId>jaxws-ri</artifactId>
+ <artifactId>jaxws-ri</artifactId>
<version>2.3.2</version>
<type>pom</type>
<exclusions>
@@ -2697,6 +1720,1273 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <!-- Plugin versions are inherited from ASF parent pom: https://maven.apache.org/pom/asf/
+ For specific version use a property and define it in the parent pom.
+ -->
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <!--You need this profile. It'll sign your artifacts.
+ I'm not sure if this config. actually works though.
+ I've been specifying -Papache-release on the command-line
+ -->
+ <releaseProfiles>apache-release</releaseProfiles>
+ <!--This stops our running tests for each stage of maven release.
+ But it builds the test jar. From SUREFIRE-172.
+ -->
+ <arguments>-Dmaven.test.skip.exec ${arguments}</arguments>
+ <goals>${goals}</goals>
+ <pomFileName>pom.xml</pomFileName>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${compileSource}</source>
+ <target>${compileSource}</target>
+ <showWarnings>true</showWarnings>
+ <showDeprecation>false</showDeprecation>
+ <useIncrementalCompilation>false</useIncrementalCompilation>
+ <compilerArgument>-Xlint:-options</compilerArgument>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${maven.javadoc.version}</version>
+ <configuration>
+ <source>${compileSource}</source>
+ </configuration>
+ </plugin>
+ <!-- Test oriented plugins -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${surefire.version}</version>
+ <!-- Generic testing configuration for all packages -->
+ <configuration>
+ <groups>${surefire.firstPartGroups}</groups>
+ <failIfNoTests>false</failIfNoTests>
+ <trimStackTrace>false</trimStackTrace>
+ <skip>${surefire.skipFirstPart}</skip>
+ <forkCount>${surefire.firstPartForkCount}</forkCount>
+ <reuseForks>false</reuseForks>
+ <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
+ <tempDir>${surefire.tempDir}</tempDir>
+ <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
+ <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
+ <redirectTestOutputToFile>${test.output.tofile}</redirectTestOutputToFile>
+ <systemPropertyVariables>
+ <test.build.classes>${test.build.classes}</test.build.classes>
+ <java.io.tmpdir>${test.tmp.dir}</java.io.tmpdir>
+ <java.util.logging.config.class>org.apache.hadoop.hbase.logging.JulToSlf4jInitializer</java.util.logging.config.class>
+ </systemPropertyVariables>
+ <excludes>
+ <!-- users can add -D option to skip particular test classes
+ ex: mvn test -Dtest.exclude.pattern=**/TestFoo.java,**/TestBar.java
+ -->
+ <exclude>${test.exclude.pattern}</exclude>
+ </excludes>
+ <properties>
+ <property>
+ <name>listener</name>
+ <value>org.apache.hadoop.hbase.TimedOutTestsListener,org.apache.hadoop.hbase.HBaseClassTestRuleChecker,org.apache.hadoop.hbase.ResourceCheckerJUnitListener</value>
+ </property>
+ </properties>
+ </configuration>
+ <dependencies>
+ <!-- by default surefire selects dynamically the connector to the unit tests
+ tool. We want to use always the same as the different connectors can have different
+ bugs and behaviour. -->
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>${surefire.provider}</artifactId>
+ <version>${surefire.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>secondPartTestsExecution</id>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <phase>test</phase>
+ <configuration>
+ <skip>${surefire.skipSecondPart}</skip>
+ <testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>
+ <reuseForks>false</reuseForks>
+ <forkCount>${surefire.secondPartForkCount}</forkCount>
+ <groups>${surefire.secondPartGroups}</groups>
+ <forkedProcessTimeoutInSeconds>${surefire.timeout}</forkedProcessTimeoutInSeconds>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>${surefire.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>${buildnumber.maven.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>${spotbugs.maven.version}</version>
+ <configuration>
+ <excludeFilterFile>${project.basedir}/../dev-support/spotbugs-exclude.xml</excludeFilterFile>
+ <spotbugsXmlOutput>true</spotbugsXmlOutput>
+ <xmlOutput>true</xmlOutput>
+ <effort>Max</effort>
+ </configuration>
+ <dependencies>
+ <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
+ <dependency>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs</artifactId>
+ <version>${spotbugs.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>${build.helper.maven.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${maven.antrun.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.jamon</groupId>
+ <artifactId>jamon-maven-plugin</artifactId>
+ <version>${jamon.plugin.version}</version>
+ </plugin>
+ <!-- Make a jar and put the sources in the jar.
+ In the parent pom, so submodules will do the right thing. -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar-no-fork</goal>
+ <goal>test-jar-no-fork</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <excludes>
+ <exclude>log4j2.xml</exclude>
+ </excludes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- General configuration for submodules who want to build a test jar -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <skipIfEmpty>true</skipIfEmpty>
+ <excludes>
+ <exclude>hbase-site.xml</exclude>
+ <exclude>hdfs-site.xml</exclude>
+ <exclude>mapred-queues.xml</exclude>
+ <exclude>mapred-site.xml</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <!--This goal will install a -test.jar when we do install
+ See https://maven.apache.org/guides/mini/guide-attached-tests.html
+ -->
+ <goal>test-jar</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- excludes are inherited -->
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>**/*.versionsBackup</exclude>
+ <exclude>**/*.log</exclude>
+ <exclude>**/.*</exclude>
+ <exclude>**/*.tgz</exclude>
+ <exclude>**/*.orig</exclude>
+ <exclude>**/0000000000000016310</exclude>
+ <exclude>**/a6a6562b777440fd9c34885428f5cb61.21e75333ada3d5bafb34bb918f29576c</exclude>
+ <exclude>**/8e8ab58dcf39412da19833fcd8f687ac</exclude>
+ <exclude>**/.idea/**</exclude>
+ <exclude>**/*.iml</exclude>
+ <exclude>**/CHANGES.txt</exclude>
+ <exclude>**/generated/**</exclude>
+ <exclude>**/gen-*/**</exclude>
+ <!-- No material contents -->
+ <exclude>conf/regionservers</exclude>
+ <exclude>**/*.avpr</exclude>
+ <exclude>**/*.svg</exclude>
+ <!-- non-standard notice file from jruby included by reference -->
+ <exclude>**/src/main/resources/META-INF/LEGAL</exclude>
+ <!-- MIT: https://github.com/asciidoctor/asciidoctor/blob/master/LICENSE.adoc -->
+ <exclude>**/src/main/asciidoc/hbase.css</exclude>
+ <!-- MIT https://jquery.org/license -->
+ <exclude>**/jquery.min.js</exclude>
+ <exclude>**/jquery.tablesorter.min.js</exclude>
+ <exclude>**/parser-date-iso8601.min.js</exclude>
+ <!-- MIT: bootstrap -->
+ <exclude>**/src/main/resources/hbase-webapps/static/*/bootstrap*</exclude>
+ <!-- BSD 3-clause: Vega, Vega-Lite, Vega-Embed -->
+ <exclude>**/hbase-webapps/static/js/vega*.min.js</exclude>
+ <!-- vector graphics -->
+ <exclude>**/*.vm</exclude>
+ <!-- apache doxia generated -->
+ <exclude>**/control</exclude>
+ <exclude>**/conffile</exclude>
+ <!-- auto-gen docs -->
+ <exclude>docs/*</exclude>
+ <exclude>logs/*</exclude>
+ <!-- exclude source control files -->
+ <exclude>.git/**</exclude>
+ <exclude>.svn/**</exclude>
+ <exclude>**/.settings/**</exclude>
+ <exclude>**/patchprocess/**</exclude>
+ <exclude>src/site/resources/repo/**</exclude>
+ <exclude>**/dependency-reduced-pom.xml</exclude>
+ <exclude>**/rat.txt</exclude>
+ <!-- exclude the shaded protobuf files -->
+ <exclude>**/shaded/com/google/protobuf/**</exclude>
+ <exclude>**/src/main/patches/**</exclude>
+ <exclude>**/vote.tmpl</exclude>
+ <!-- gzipped list of S3N URIs for hbase-it -->
+ <exclude>**/CC-MAIN-2021-10-warc.paths.gz</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <!--Defer to the hbase-assembly sub-module. It
+ does all assembly-->
+ <skipAssembly>true</skipAssembly>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.xolstice.maven.plugins</groupId>
+ <artifactId>protobuf-maven-plugin</artifactId>
+ <version>${protobuf.plugin.version}</version>
+ <configuration>
+ <protoSourceRoot>${basedir}/src/main/protobuf/</protoSourceRoot>
+ <clearOutputDirectory>false</clearOutputDirectory>
+ <checkStaleness>true</checkStaleness>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- Approach followed here is roughly the same as mentioned here:
+ https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/multi-module-config.html
+ -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${maven.checkstyle.version}</version>
+ <configuration>
+ <configLocation>hbase/checkstyle.xml</configLocation>
+ <suppressionsLocation>hbase/checkstyle-suppressions.xml</suppressionsLocation>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.hbase</groupId>
+ <artifactId>hbase-checkstyle</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.puppycrawl.tools</groupId>
+ <artifactId>checkstyle</artifactId>
+ <version>${checkstyle.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>net.revelc.code</groupId>
+ <artifactId>warbucks-maven-plugin</artifactId>
+ <version>${maven.warbucks.version}</version>
+ <configuration>
+ <ignoreRuleFailures>false</ignoreRuleFailures>
+ <rules>
+ <rule>
+ <!-- exclude the generated java files -->
+ <classPattern>(?!.*(.generated.|.tmpl.|\$)).*</classPattern>
+ <includeTestClasses>false</includeTestClasses>
+ <includePublicClasses>true</includePublicClasses>
+ <includePackagePrivateClasses>false</includePackagePrivateClasses>
+ <includeProtectedClasses>false</includeProtectedClasses>
+ <includePrivateClasses>false</includePrivateClasses>
+ <classAnnotationPattern>org[.]apache[.]yetus[.]audience[.]InterfaceAudience.*</classAnnotationPattern>
+ </rule>
+ </rules>
+ </configuration>
+ <executions>
+ <execution>
+ <id>run-warbucks</id>
+ <goals>
+ <goal>check</goal>
+ <!-- runs at process-test-classes phase -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>${enforcer.version}</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>extra-enforcer-rules</artifactId>
+ <version>${extra.enforcer.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>de.skuzzle.enforcer</groupId>
+ <artifactId>restrict-imports-enforcer-rule</artifactId>
+ <version>${restrict-imports.enforcer.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>${maven.gpg.version}</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>negate-license-bundles-property</id>
+ <goals>
+ <goal>bsh-property</goal>
+ </goals>
+ <configuration>
+ <source>skip.license.check = !${license.bundles.dependencies};</source>
+ <properties>
+ <property>skip.license.check</property>
+ </properties>
+ </configuration>
+ </execution>
+ <!-- sets where to find the generated LICENSE files -->
+ <execution>
+ <id>create-license-file-path-property</id>
+ <goals>
+ <goal>regex-property</goal>
+ </goals>
+ <configuration>
+ <name>license.aggregate.path</name>
+ <value>${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE</value>
+ <regex>\\</regex>
+ <replacement>/</replacement>
+ <failIfNoMatch>false</failIfNoMatch>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>display-info</id>
+ <goals>
+ <goal>display-info</goal>
+ </goals>
+ <phase>initialize</phase>
+ <inherited>false</inherited>
+ </execution>
+ <execution>
+ <id>hadoop-profile-min-maven-min-java-banned-xerces</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <!-- Help people activate profiles correctly -->
+ <evaluateBeanshell>
+ <condition>System.getProperty("hadoop-profile", "").isEmpty()</condition>
+ <message>The hadoop-profile property is unused, did you mean to set hadoop.profile instead?</message>
+ </evaluateBeanshell>
+ <!-- The earliest maven version we verify builds for via ASF Jenkins -->
+ <requireMavenVersion>
+ <version>[${maven.min.version},)</version>
+ <message>Maven is out of date.
+ HBase requires at least version ${maven.min.version} of Maven to properly build from source.
+ You appear to be using an older version. You can use either "mvn -version" or
+ "mvn enforcer:display-info" to verify what version is active.
+ See the reference guide on building for more information: https://hbase.apache.org/book.html#build</message>
+ </requireMavenVersion>
+ <!-- The earliest JVM version we verify builds for via ASF Jenkins -->
+ <requireJavaVersion>
+ <version>[${java.min.version},)</version>
+ <message>Java is out of date.
+ HBase requires at least version ${java.min.version} of the JDK to properly build from source.
+ You appear to be using an older version. You can use either "mvn -version" or
+ "mvn enforcer:display-info" to verify what version is active.
+ See the reference guide on building for more information: https://hbase.apache.org/book.html#build</message>
+ </requireJavaVersion>
+ <bannedDependencies>
+ <excludes>
+ <exclude>xerces:xercesImpl</exclude>
+ </excludes>
+ <message>We avoid adding our own Xerces jars to the classpath, see HBASE-16340.</message>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-jsr305</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>com.google.code.findbugs:jsr305</exclude>
+ </excludes>
+ <message>We don't allow the JSR305 jar from the Findbugs project, see HBASE-16321.</message>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-scala</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>org.scala-lang:scala-library</exclude>
+ </excludes>
+ <message>We don't allow Scala, see HBASE-13992.</message>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-commons-logging</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>commons-logging:commons-logging</exclude>
+ </excludes>
+ <message>We don't use commons-logging any more, so do not depend on it directly.</message>
+ <searchTransitive>false</searchTransitive>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-other-logging-framework</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>log4j:*</exclude>
+ <exclude>org.slf4j:slf4j-log4j12</exclude>
+ <exclude>ch.qos.reload4j:*</exclude>
+ <exclude>org.slf4j:slf4j-reload4j</exclude>
+ <exclude>ch.qos.logback:*</exclude>
+ </excludes>
+ <message>We do not allow other logging frameworks as now we use log4j2</message>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-jetty</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>org.eclipse.jetty:**</exclude>
+ </excludes>
+ <message>Use shaded jetty instead</message>
+ <searchTransitive>false</searchTransitive>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-jersey</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>org.glassfish.jersey.containers:**</exclude>
+ <exclude>org.glassfish.jersey.core:**</exclude>
+ </excludes>
+ <message>Use shaded jersey instead</message>
+ <searchTransitive>false</searchTransitive>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-htrace</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <bannedDependencies>
+ <excludes>
+ <exclude>org.apache.htrace:**</exclude>
+ </excludes>
+ <message>Use OpenTelemetry instead</message>
+ <searchTransitive>false</searchTransitive>
+ </bannedDependencies>
+ </rules>
+ </configuration>
+ </execution>
+ <execution>
+ <id>check-aggregate-license</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <!-- must check after LICENSE is built at 'generate-resources' -->
+ <phase>process-resources</phase>
+ <configuration>
+ <rules>
+ <evaluateBeanshell>
+ <condition>File license = new File("${license.aggregate.path}");
+
+ // Beanshell does not support try-with-resources,
+ // so we must close this scanner manually
+ Scanner scanner = new Scanner(license);
+
+ while (scanner.hasNextLine()) {
+ if (scanner.nextLine().startsWith("ERROR:")) {
+ scanner.close();
+ return false;
+ }
+ }
+ scanner.close();
+ return true;</condition>
+ <message>License errors detected, for more detail find ERROR in
+ ${license.aggregate.path}</message>
+ </evaluateBeanshell>
+ </rules>
+ <skip>${skip.license.check}</skip>
+ </configuration>
+ </execution>
+ <execution>
+ <id>banned-illegal-imports</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <phase>process-sources</phase>
+ <configuration>
+ <rules>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use SLF4j for logging</reason>
+ <bannedImports>
+ <bannedImport>org.apache.commons.logging.**</bannedImport>
+ <bannedImport>org.apache.log4j.**</bannedImport>
+ <bannedImport>org.apache.logging.log4j.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>false</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Do not use log4j2 directly in code, see Log4jUtils in hbase-logging for more details.</reason>
+ <bannedImports>
+ <bannedImport>org.apache.logging.log4j.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded version in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>com.google.common.**</bannedImport>
+ <bannedImport>io.netty.**</bannedImport>
+ <bannedImport>org.apache.commons.cli.**</bannedImport>
+ <bannedImport>org.apache.commons.collections.**</bannedImport>
+ <bannedImport>org.apache.commons.collections4.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Do not use shaded classes from other dependencies</reason>
+ <bannedImports>
+ <bannedImport>org.apache.curator.shaded.**</bannedImport>
+ <bannedImport>org.apache.htrace.shaded.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded gson in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>org.codehaus.jackson.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use commons lang 3</reason>
+ <bannedImports>
+ <bannedImport>org.apache.commons.lang.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use yetus IA and IS annotations</reason>
+ <bannedImports>
+ <bannedImport>org.apache.hadoop.classificatio.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Do not use htrace</reason>
+ <bannedImports>
+ <bannedImport>org.htrace.**</bannedImport>
+ <bannedImport>org.apache.htrace.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded jetty in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>org.eclipse.jetty.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded jersey in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>org.glassfish.jersey.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>You should never use this style of annotations(i.e, 'this is for test only')
+ in IA.Public or IA.LimitedPrivate classes. Use IA.Private to tell users this is
+ not for public use.
+ For IA.Private classes, use RestrictedApi annotation in error prone instead.</reason>
+ <bannedImports>
+ <bannedImport>org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded javax.ws.rs in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>javax.ws.rs.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use shaded jackson-jaxrs-json-provider in hbase-thirdparty</reason>
+ <bannedImports>
+ <bannedImport>com.fasterxml.jackson.jaxrs.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ <restrictImports implementation="de.skuzzle.enforcer.restrictimports.rule.RestrictImports">
+ <includeTestCode>true</includeTestCode>
+ <commentLineBufferSize>512</commentLineBufferSize>
+ <reason>Use junit4 instead</reason>
+ <bannedImports>
+ <bannedImport>junit.framework.**</bannedImport>
+ </bannedImports>
+ </restrictImports>
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- parent-module only plugins -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>xml-maven-plugin</artifactId>
+ <version>${xml.maven.version}</version>
+ <inherited>false</inherited>
+ <configuration>
+ <transformationSets>
+ <!-- For asciidoc -->
+ <transformationSet>
+ <!--Reaching up and over into common sub-module for hbase-default.xml-->
+ <dir>${basedir}/hbase-common/src/main/resources/</dir>
+ <includes>
+ <include>hbase-default.xml</include>
+ </includes>
+ <stylesheet>${basedir}/src/main/xslt/configuration_to_asciidoc_chapter.xsl</stylesheet>
+ <fileMappers>
+ <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.RegExpFileMapper">
+ <pattern>^(.*)\.xml$</pattern>
+ <replacement>$1.adoc</replacement>
+ </fileMapper>
+ </fileMappers>
+ <outputDir>${basedir}/target/asciidoc</outputDir>
+ </transformationSet>
+ </transformationSets>
+ </configuration>
+ <executions>
+ <execution>
+ <!-- Run the hbase-default.xml through a stylesheet so can show it in doc-->
+ <goals>
+ <goal>transform</goal>
+ </goals>
+ <phase>site</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- Special configuration for spotbugs just in the parent so
+ the filter file location can be more general (see definition in pluginManagement) -->
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>spotbugs</goal>
+ </goals>
+ <inherited>false</inherited>
+ <configuration>
+ <excludeFilterFile>${basedir}/dev-support/spotbugs-exclude.xml</excludeFilterFile>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <siteDirectory>${basedir}/src/site</siteDirectory>
+ <customBundle>${basedir}/src/site/custom/project-info-report.properties</customBundle>
+ <inputEncoding>UTF-8</inputEncoding>
+ <outputEncoding>UTF-8</outputEncoding>
+ </configuration>
+ <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>
+ <!-- For AsciiDoc docs building -->
+ <plugin>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctor-maven-plugin</artifactId>
+ <version>${asciidoctor.plugin.version}</version>
+ <inherited>false</inherited>
+ <configuration>
+ <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
+ <doctype>book</doctype>
+ <attributes>
+ <docVersion>${project.version}</docVersion>
+ <imagesdir>images</imagesdir>
+ <source-highlighter>coderay</source-highlighter>
+ </attributes>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.asciidoctor</groupId>
+ <artifactId>asciidoctorj-pdf</artifactId>
+ <version>${asciidoctorj.pdf.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jruby</groupId>
+ <artifactId>jruby-complete</artifactId>
+ <version>${jruby.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>output-html</id>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <phase>site</phase>
+ <configuration>
+ <attributes>
+ <stylesheet>hbase.css</stylesheet>
+ </attributes>
+ <backend>html5</backend>
+ </configuration>
+ </execution>
+ <execution>
+ <id>output-pdf</id>
+ <goals>
+ <goal>process-asciidoc</goal>
+ </goals>
+ <phase>site</phase>
+ <configuration>
+ <backend>pdf</backend>
+ <attributes>
+ <pagenums/>
+ <toc/>
+ <idprefix/>
+ <idseparator>-</idseparator>
+ </attributes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <!--$NO-MVN-MAN-VER$ -->
+ <inherited>false</inherited>
+ <configuration>
+ <escapeString>\</escapeString>
+ </configuration>
+ <executions>
+ <execution>
+ <id>copy-htaccess</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <phase>site</phase>
+ <configuration>
+ <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/site/resources/</directory>
+ <includes>
+ <include>.htaccess</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <!-- needed to make the redirect above work -->
+ <execution>
+ <id>copy-empty-book-dir</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <phase>site</phase>
+ <configuration>
+ <outputDirectory>${project.reporting.outputDirectory}/</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/src/site/resources/</directory>
+ <includes>
+ <include>book/**</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${maven.antrun.version}</version>
+ <inherited>false</inherited>
+ <!-- Rename the book.pdf generated by asciidoctor -->
+ <executions>
+ <execution>
+ <id>rename-pdf</id>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <phase>site</phase>
+ <configuration>
+ <target name="rename file">
+ <move file="${project.reporting.outputDirectory}/book.pdf" tofile="${project.reporting.outputDirectory}/apache_hbase_reference_guide.pdf"/>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <configuration>
+ <timestampFormat>yyyy</timestampFormat>
+ <timestampPropertyName>build.year</timestampPropertyName>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>create-timestamp</goal>
+ </goals>
+ <phase>validate</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>${maven.bundle.version}</version>
+ <extensions>true</extensions>
+ <inherited>true</inherited>
+ </plugin>
+ <plugin>
+ <groupId>com.diffplug.spotless</groupId>
+ <artifactId>spotless-maven-plugin</artifactId>
+ <version>${spotless.version}</version>
+ <configuration>
+ <!-- optional: limit format enforcement to just the files changed from this point -->
+ <ratchetFrom>620e5c6d0af57ddb67e18bb97725e1d87ffb5fe5</ratchetFrom>
+ <!-- define a language-specific format -->
+ <java>
+ <!-- apply a specific flavor -->
+ <eclipse>
+ <file>${session.executionRootDirectory}/dev-support/hbase_eclipse_formatter.xml</file>
+ </eclipse>
+ <importOrder>
+ <file>${session.executionRootDirectory}/dev-support/eclipse.importorder</file>
+ </importOrder>
+ <!-- make sure every file has the following copyright header.
+ optionally, Spotless can set copyright years by digging
+ through git history (see "license" section below) -->
+ <licenseHeader>
+ <file>${session.executionRootDirectory}/dev-support/license-header</file>
+ </licenseHeader>
+ </java>
+ <pom>
+ <sortPom>
+ <expandEmptyElements>false</expandEmptyElements>
+ </sortPom>
+ </pom>
+ </configuration>
+ </plugin>
+ </plugins>
+ <extensions>
+ <extension>
+ <groupId>kr.motd.maven</groupId>
+ <artifactId>os-maven-plugin</artifactId>
+ <version>${os.maven.version}</version>
+ </extension>
+ </extensions>
+ </build>
+ <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>${maven.project.info.report.version}</version>
+ <!-- see src/site/site.xml for selected reports -->
+ <configuration>
+ <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>dependencies</report>
+ <report>dependency-convergence</report>
+ <report>dependency-info</report>
+ <report>dependency-management</report>
+ <report>index</report>
+ <report>issue-management</report>
+ <report>licenses</report>
+ <report>mailing-lists</report>
+ <report>plugin-management</report>
+ <report>plugins</report>
+ <report>team</report>
+ <report>scm</report>
+ <report>summary</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <tags>
+ <tag>
+ <name>apiNote</name>
+ <placement>a</placement>
+ <head>API Note:</head>
+ </tag>
+ </tags>
+ </configuration>
+ <reportSets>
+ <!-- Dev API -->
+ <reportSet>
+ <id>devapi</id>
+ <reports>
+ <report>aggregate-no-fork</report>
+ </reports>
+ <configuration>
+ <destDir>devapidocs</destDir>
+ <name>Developer API</name>
+ <description>The full HBase API, including private and unstable APIs</description>
+ <sourceFileExcludes>
+ <exclude>**/generated/*</exclude>
+ <exclude>**/protobuf/*</exclude>
+ </sourceFileExcludes>
+ <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
+ <show>private</show>
+ <!-- (shows all classes and members) -->
+ <quiet>true</quiet>
+ <linksource>true</linksource>
+ <sourcetab>2</sourcetab>
+ <validateLinks>true</validateLinks>
+ <fixClassComment>true</fixClassComment>
+ <fixFieldComment>true</fixFieldComment>
+ <fixMethodComment>true</fixMethodComment>
+ <fixTags>all</fixTags>
+ <notimestamp>true</notimestamp>
+ <locale>en_US</locale>
+ <!-- Pass some options straight to the javadoc executable since it is easier -->
+ <additionalJOption>-J-Xmx2G</additionalJOption>
+ <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
+ <additionalDependencies>
+ <additionalDependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockito-core.version}</version>
+ </additionalDependency>
+ <additionalDependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>${hamcrest.version}</version>
+ </additionalDependency>
+ <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
+ <additionalDependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>3.0.2</version>
+ </additionalDependency>
+ </additionalDependencies>
+ <inherited>false</inherited>
+ </configuration>
+ </reportSet>
+ <reportSet>
+ <id>testdevapi</id>
+ <reports>
+ <report>test-aggregate-no-fork</report>
+ </reports>
+ <configuration>
+ <destDir>testdevapidocs</destDir>
+ <name>Developer API</name>
+ <description>The full HBase API test code, including private and unstable APIs</description>
+ <sourceFileExcludes>
+ <exclude>**/generated/*</exclude>
+ <exclude>**/protobuf/*</exclude>
+ </sourceFileExcludes>
+ <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
+ <show>private</show>
+ <!-- (shows all classes and members) -->
+ <quiet>true</quiet>
+ <linksource>true</linksource>
+ <sourcetab>2</sourcetab>
+ <validateLinks>true</validateLinks>
+ <fixClassComment>true</fixClassComment>
+ <fixFieldComment>true</fixFieldComment>
+ <fixMethodComment>true</fixMethodComment>
+ <fixTags>all</fixTags>
+ <notimestamp>true</notimestamp>
+ <locale>en_US</locale>
+ <!-- Pass some options straight to the javadoc executable since it is easier -->
+ <additionalJOption>-J-Xmx2G</additionalJOption>
+ <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
+ <additionalDependencies>
+ <additionalDependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockito-core.version}</version>
+ </additionalDependency>
+ <additionalDependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>${hamcrest.version}</version>
+ </additionalDependency>
+ <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
+ <additionalDependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>3.0.2</version>
+ </additionalDependency>
+ </additionalDependencies>
+ <inherited>false</inherited>
+ </configuration>
+ </reportSet>
+
+ <!-- User API -->
+ <reportSet>
+ <id>userapi</id>
+ <reports>
+ <report>aggregate-no-fork</report>
+ </reports>
+ <configuration>
+ <doclet>org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet</doclet>
+ <docletArtifact>
+ <groupId>org.apache.yetus</groupId>
+ <artifactId>audience-annotations</artifactId>
+ <version>${audience-annotations.version}</version>
+ </docletArtifact>
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ <destDir>apidocs</destDir>
+ <name>User API</name>
+ <description>The HBase Application Programmer's API</description>
+ <excludePackageNames>org.apache.hadoop.hbase.backup*:org.apache.hadoop.hbase.catalog:org.apache.hadoop.hbase.client.coprocessor:org.apache.hadoop.hbase.client.metrics:org.apache.hadoop.hbase.codec*:org.apache.hadoop.hbase.constraint:org.apache.hadoop.hbase.coprocessor.*:org.apache.hadoop.hbase.executor:org.apache.hadoop.hbase.fs:*.generated.*:org.apache.hadoop.hbase.io.hfile.*:org.apache.hadoop.hbase.mapreduce.hadoopbackport:org.apache.hadoop.hbase.mapreduce.replication:org [...]
+ <!-- switch on dependency-driven aggregation -->
+ <includeDependencySources>false</includeDependencySources>
+ <sourceFilesExclude>**/generated/*</sourceFilesExclude>
+ <show>protected</show>
+ <!-- (shows only public and protected classes and members) -->
+ <quiet>true</quiet>
+ <linksource>true</linksource>
+ <sourcetab>2</sourcetab>
+ <validateLinks>true</validateLinks>
+ <fixClassComment>true</fixClassComment>
+ <fixFieldComment>true</fixFieldComment>
+ <fixMethodComment>true</fixMethodComment>
+ <fixTags>all</fixTags>
+ <notimestamp>true</notimestamp>
+ <locale>en_US</locale>
+ <!-- Pass some options straight to the javadoc executable since it is easier -->
+ <additionalJOption>-J-Xmx2G</additionalJOption>
+ <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
+ <additionalDependencies>
+ <additionalDependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockito-core.version}</version>
+ </additionalDependency>
+ <additionalDependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>${hamcrest.version}</version>
+ </additionalDependency>
+ <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
+ <additionalDependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>3.0.2</version>
+ </additionalDependency>
+ </additionalDependencies>
+ <inherited>false</inherited>
+ </configuration>
+ </reportSet>
+ <!-- User Test API -->
+ <reportSet>
+ <id>testuserapi</id>
+ <reports>
+ <report>test-aggregate-no-fork</report>
+ </reports>
+ <configuration>
+ <doclet>org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet</doclet>
+ <docletArtifact>
+ <groupId>org.apache.yetus</groupId>
+ <artifactId>audience-annotations</artifactId>
+ <version>${audience-annotations.version}</version>
+ </docletArtifact>
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ <destDir>testapidocs</destDir>
+ <name>User API</name>
+ <description>The HBase Application Programmer's API</description>
+ <excludePackageNames>org.apache.hadoop.hbase.backup*:org.apache.hadoop.hbase.catalog:org.apache.hadoop.hbase.client.coprocessor:org.apache.hadoop.hbase.client.metrics:org.apache.hadoop.hbase.codec*:org.apache.hadoop.hbase.constraint:org.apache.hadoop.hbase.coprocessor.*:org.apache.hadoop.hbase.executor:org.apache.hadoop.hbase.fs:*.generated.*:org.apache.hadoop.hbase.io.hfile.*:org.apache.hadoop.hbase.mapreduce.hadoopbackport:org.apache.hadoop.hbase.mapreduce.replication:org [...]
+ <!-- switch on dependency-driven aggregation -->
+ <includeDependencySources>false</includeDependencySources>
+ <sourceFilesExclude>**/generated/*</sourceFilesExclude>
+ <show>protected</show>
+ <!-- (shows only public and protected classes and members) -->
+ <quiet>true</quiet>
+ <linksource>true</linksource>
+ <sourcetab>2</sourcetab>
+ <validateLinks>true</validateLinks>
+ <fixClassComment>true</fixClassComment>
+ <fixFieldComment>true</fixFieldComment>
+ <fixMethodComment>true</fixMethodComment>
+ <fixTags>all</fixTags>
+ <notimestamp>true</notimestamp>
+ <locale>en_US</locale>
+ <!-- Pass some options straight to the javadoc executable since it is easier -->
+ <additionalJOption>-J-Xmx2G</additionalJOption>
+ <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
+ <additionalDependencies>
+ <additionalDependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockito-core.version}</version>
+ </additionalDependency>
+ <additionalDependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>${hamcrest.version}</version>
+ </additionalDependency>
+ <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
+ <additionalDependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>3.0.2</version>
+ </additionalDependency>
+ </additionalDependencies>
+ <inherited>false</inherited>
+ </configuration>
+ </reportSet>
+ </reportSets>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${maven.checkstyle.version}</version>
+ <configuration>
+ <excludes>target/**</excludes>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </reporting>
<!--
To publish, use the following settings.xml file ( placed in ~/.m2/settings.xml )
@@ -2731,8 +3021,7 @@
</activation>
<build>
<pluginManagement>
- <plugins>
- </plugins>
+ <plugins/>
</pluginManagement>
</build>
</profile>
@@ -2760,7 +3049,7 @@
<activation>
<activeByDefault>false</activeByDefault>
<property>
- <name>HBasePatchProcess</name>
+ <name>HBasePatchProcess</name>
</property>
</activation>
<properties>
@@ -2774,10 +3063,10 @@
<inherited>false</inherited>
<executions>
<execution>
- <phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
+ <phase>validate</phase>
<configuration>
<tasks>
<echo>Maven Execution Environment</echo>
@@ -2801,6 +3090,14 @@
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
+ <configuration>
+ <systemPropertyVariables>
+ <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
+ </systemPropertyVariables>
+ <excludes>
+ <exclude>**/generated/**/*.class</exclude>
+ </excludes>
+ </configuration>
<executions>
<execution>
<id>prepare-agent</id>
@@ -2810,20 +3107,12 @@
</execution>
<execution>
<id>report</id>
- <phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
+ <phase>prepare-package</phase>
</execution>
</executions>
- <configuration>
- <systemPropertyVariables>
- <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
- </systemPropertyVariables>
- <excludes>
- <exclude>**/generated/**/*.class</exclude>
- </excludes>
- </configuration>
</plugin>
</plugins>
</build>
@@ -2895,10 +3184,10 @@
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
- <phase>package</phase>
<goals>
<goal>check</goal>
</goals>
+ <phase>package</phase>
</execution>
</executions>
</plugin>
@@ -2906,30 +3195,29 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${enforcer.version}</version>
- <dependencies>
- <dependency>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>extra-enforcer-rules</artifactId>
- <version>${extra.enforcer.version}</version>
- </dependency>
- </dependencies>
<configuration>
<rules>
<enforceBytecodeVersion>
- <maxJdkVersion>${compileSource}</maxJdkVersion>
- <message>HBase has unsupported dependencies.
+ <maxJdkVersion>${compileSource}</maxJdkVersion>
+ <message>HBase has unsupported dependencies.
HBase requires that all dependencies be compiled with version ${compileSource} or earlier
of the JDK to properly build from source. You appear to be using a newer dependency. You can use
either "mvn -version" or "mvn enforcer:display-info" to verify what version is active.
Non-release builds can temporarily build with a newer JDK version by setting the
- 'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).
- </message>
- <ignoreClasses>
- <ignoreClass>module-info</ignoreClass>
- </ignoreClasses>
- </enforceBytecodeVersion>
- </rules>
- </configuration>
+ 'compileSource' property (eg. mvn -DcompileSource=1.8 clean package).</message>
+ <ignoreClasses>
+ <ignoreClass>module-info</ignoreClass>
+ </ignoreClasses>
+ </enforceBytecodeVersion>
+ </rules>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>extra-enforcer-rules</artifactId>
+ <version>${extra.enforcer.version}</version>
+ </dependency>
+ </dependencies>
</plugin>
</plugins>
</build>
@@ -2943,370 +3231,372 @@
<profile>
<id>hadoop-3.0</id>
<activation>
- <property><name>!hadoop.profile</name></property>
+ <property>
+ <name>!hadoop.profile</name>
+ </property>
</activation>
<properties>
<hadoop.version>${hadoop-three.version}</hadoop.version>
<assembly.file>src/main/assembly/hadoop-three-compat.xml</assembly.file>
</properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-mapreduce-client-core</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-xc</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-core</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-jaxrs</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-xc</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-app</artifactId>
+ <version>${hadoop-three.version}</version>
+ <type>test-jar</type>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-jaxrs</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-xc</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.ws.rs</groupId>
+ <artifactId>jsr311-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
+ <version>${hadoop-three.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop-three.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehaus.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop-three.version}</version>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-auth</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>net.minidev</groupId>
+ <artifactId>json-smart</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
<exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
</exclusion>
<exclusion>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-json</artifactId>
</exclusion>
<exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-servlet</artifactId>
</exclusion>
<exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-server</artifactId>
</exclusion>
<exclusion>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
+ <groupId>javax.servlet</groupId>
+ <artifactId>javax.servlet-api</artifactId>
</exclusion>
<exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
</exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-mapreduce-client-app</artifactId>
- <version>${hadoop-three.version}</version>
- <type>test-jar</type>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-xc</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.ws.rs</groupId>
- <artifactId>jsr311-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
</exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- </exclusion>
+ <!-- MiniMRCluster needs the hadoop netty-all transitive include... a
+ netty-all 4.0.52 version.... so we have to let it through.
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</exclusion>
+ -->
<exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
</exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
- <version>${hadoop-three.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
<exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehause.jackson</groupId>
+ <artifactId>jackson-core-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.codehause.jackson</groupId>
+ <artifactId>jackson-mapper-asl</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-server</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>${hadoop-three.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs</artifactId>
- <version>${hadoop-three.version}</version>
- <type>test-jar</type>
- <classifier>tests</classifier>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-auth</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- </exclusion>
- <exclusion>
- <groupId>net.minidev</groupId>
- <artifactId>json-smart</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-json</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-servlet</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-server</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- </exclusion>
- <!-- MiniMRCluster needs the hadoop netty-all transitive include... a
- netty-all 4.0.52 version.... so we have to let it through.
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
- -->
- <exclusion>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- </exclusion>
- <exclusion>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehause.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.codehause.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
@@ -3315,63 +3605,63 @@
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <!--
+ </exclusions>
+ </dependency>
+ <dependency>
+ <!--
a missing transitive dependency on JDK9+ (obsoleted by Hadoop-3.3.0+, HADOOP-15775)
-->
- <groupId>javax.activation</groupId>
- <artifactId>javax.activation-api</artifactId>
- <version>1.2.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-common</artifactId>
- <type>test-jar</type>
- <classifier>tests</classifier>
- <version>${hadoop-three.version}</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-client</artifactId>
- <version>${hadoop-three.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-annotations</artifactId>
- <version>${hadoop-three.version}</version>
- </dependency>
- <!-- This was marked as test dep in earlier pom, but was scoped compile.
+ <groupId>javax.activation</groupId>
+ <artifactId>javax.activation-api</artifactId>
+ <version>1.2.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop-three.version}</version>
+ <classifier>tests</classifier>
+ <type>test-jar</type>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.jersey</groupId>
+ <artifactId>jersey-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-client</artifactId>
+ <version>${hadoop-three.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-annotations</artifactId>
+ <version>${hadoop-three.version}</version>
+ </dependency>
+ <!-- This was marked as test dep in earlier pom, but was scoped compile.
Where do we actually need it? -->
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-minicluster</artifactId>
- <version>${hadoop-three.version}</version>
- <exclusions>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-minicluster</artifactId>
+ <version>${hadoop-three.version}</version>
+ <exclusions>
<!--If we comment this in, a few tests in hbase-mapreduce
fail. They depend on jersey-core somehow. But excluding
jersey-core here messes up hbase-it because jersey-core
@@ -3384,69 +3674,69 @@
<artifactId>jersey-core</artifactId>
</exclusion>
-->
- <exclusion>
- <groupId>commons-httpclient</groupId>
- <artifactId>commons-httpclient</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet.jsp</groupId>
- <artifactId>jsp-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- </exclusion>
- <exclusion>
- <groupId>io.netty</groupId>
- <artifactId>netty-all</artifactId>
- </exclusion>
- <exclusion>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-minikdc</artifactId>
- <version>${hadoop-three.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-distcp</artifactId>
- <version>${hadoop-three.version}</version>
- </dependency>
+ <exclusion>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet.jsp</groupId>
+ <artifactId>jsp-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>io.netty</groupId>
+ <artifactId>netty-all</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-minikdc</artifactId>
+ <version>${hadoop-three.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-distcp</artifactId>
+ <version>${hadoop-three.version}</version>
+ </dependency>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-hdfs-client</artifactId>
- <version>${hadoop-three.version}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs-client</artifactId>
+ <version>${hadoop-three.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
</profile>
<!-- profiles for the tests
@@ -3539,9 +3829,8 @@
<properties>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MiscTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3554,10 +3843,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>
- org.apache.hadoop.hbase.testclassification.CoprocessorTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.CoprocessorTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3570,9 +3857,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ClientTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3585,9 +3871,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MasterTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3600,9 +3885,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapredTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3615,9 +3899,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.MapReduceTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3630,10 +3913,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>
- org.apache.hadoop.hbase.testclassification.RegionServerTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RegionServerTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3646,10 +3927,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>
- org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.VerySlowMapReduceTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
@@ -3663,10 +3942,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>
- org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.VerySlowRegionServerTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
@@ -3680,9 +3957,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FilterTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3695,9 +3971,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.IOTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3710,9 +3985,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RestTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3725,9 +3999,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RPCTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3740,10 +4013,8 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>
- org.apache.hadoop.hbase.testclassification.ReplicationTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ReplicationTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
@@ -3756,563 +4027,271 @@
<surefire.secondPartForkCount>1</surefire.secondPartForkCount>
<surefire.skipFirstPart>false</surefire.skipFirstPart>
<surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.SecurityTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
</profile>
<profile>
<id>runFlakeyTests</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <properties>
- <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
- <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
- <surefire.skipFirstPart>false</surefire.skipFirstPart>
- <surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
- </properties>
- </profile>
- <profile>
- <id>runZKTests</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <properties>
- <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
- <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
- <surefire.skipFirstPart>false</surefire.skipFirstPart>
- <surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
- </properties>
- </profile>
- <profile>
- <id>runRSGroupTests</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <properties>
- <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
- <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
- <surefire.skipFirstPart>false</surefire.skipFirstPart>
- <surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RSGroupTests
- </surefire.firstPartGroups>
- <surefire.secondPartGroups></surefire.secondPartGroups>
- </properties>
- </profile>
-
- <profile>
- <!-- Use it to launch tests locally-->
- <id>localTests</id>
- <activation>
- <property>
- <name>test</name>
- </property>
- </activation>
- <properties>
- <surefire.provider>surefire-junit4</surefire.provider>
- <surefire.skipFirstPart>false</surefire.skipFirstPart>
- <surefire.skipSecondPart>true</surefire.skipSecondPart>
- <surefire.firstPartGroups/>
- </properties>
- </profile>
- <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
- or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
- the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
- The report will be generated under target/site/clover/index.html when you run
- MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
- <profile>
- <id>clover</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- <property>
- <name>clover</name>
- </property>
- </activation>
- <properties>
- <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
- </properties>
- <build>
- <plugins>
- <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
- our instrumented classes for the doclet will fail
- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>com.atlassian.maven.plugins</groupId>
- <artifactId>maven-clover2-plugin</artifactId>
- <version>${clover.version}</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>com.atlassian.maven.plugins</groupId>
- <artifactId>maven-clover2-plugin</artifactId>
- <version>${clover.version}</version>
- <configuration>
- <includesAllSourceRoots>true</includesAllSourceRoots>
- <includesTestSourceRoots>true</includesTestSourceRoots>
- <targetPercentage>50%</targetPercentage>
- <generateHtml>true</generateHtml>
- <generateXml>true</generateXml>
- <excludes>
- <exclude>**/generated/**</exclude>
- </excludes>
- </configuration>
- <executions>
- <execution>
- <id>clover-setup</id>
- <phase>process-sources</phase>
- <goals>
- <goal>setup</goal>
- </goals>
- </execution>
- <execution>
- <id>clover</id>
- <phase>site</phase>
- <goals>
- <goal>clover</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <!-- Used by the website generation script on jenkins to
- do a local install of the jars we need to run a normal
- site build w/o forking.
- -->
- <id>site-install-step</id>
- <properties>
- <skipTests>true</skipTests>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- <enforcer.skip>true</enforcer.skip>
- <checkstyle.skip>true</checkstyle.skip>
- <spotbugs.skip>true</spotbugs.skip>
- <warbucks.skip>true</warbucks.skip>
- </properties>
- </profile>
- <profile>
- <!-- Used by the website generation script on jenkins to
- mitigate the impact of unneeded build forks while building
- our javadocs.
- -->
- <id>site-build-step</id>
- <properties>
- <skipTests>true</skipTests>
- <enforcer.skip>true</enforcer.skip>
- <maven.main.skip>true</maven.main.skip>
- <maven.test.skip>true</maven.test.skip>
- <warbucks.skip>true</warbucks.skip>
- <protoc.skip>true</protoc.skip>
- <remoteresources.skip>true</remoteresources.skip>
- </properties>
- </profile>
- <profile>
- <id>eclipse-specific</id>
- <activation>
- <property>
- <name>m2e.version</name>
- </property>
- </activation>
- <build>
- <pluginManagement>
- <plugins>
- <!-- General config for eclipse classpath/settings -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>${maven.eclipse.version}</version>
- </plugin>
- <!--This plugin's configuration is used to store Eclipse m2e settings
- only. It has no influence on the Maven build itself. m2e does not
- provide any safeguards against rogue maven plugins that leak
- classloaders, modify random files inside workspace or throw nasty
- exceptions to fail the build.
- Top level doesn't do any specific configuration currently - left
- to modules to decide what they want to bind, sans those plugins
- defined in this pom. -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>${lifecycle.mapping.version}</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.jacoco</groupId>
- <artifactId>jacoco-maven-plugin</artifactId>
- <versionRange>[0.6.2.201302030002,)</versionRange>
- <goals>
- <goal>prepare-agent</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-enforcer-plugin</artifactId>
- <versionRange>${enforcer.version}</versionRange>
- <goals>
- <goal>enforce</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-remote-resources-plugin</artifactId>
- <versionRange>[1.5,)</versionRange>
- <goals>
- <goal>process</goal>
- <goal>bundle</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore />
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>buildnumber-maven-plugin</artifactId>
- <versionRange>[1.3,)</versionRange>
- <goals>
- <goal>create-timestamp</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <execute>
- <runOnConfiguration>true</runOnConfiguration>
- <runOnIncremental>true</runOnIncremental>
- </execute>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <properties>
+ <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
+ <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
+ <surefire.skipFirstPart>false</surefire.skipFirstPart>
+ <surefire.skipSecondPart>true</surefire.skipSecondPart>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.FlakeyTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
+ </properties>
</profile>
<profile>
- <id>aarch64</id>
+ <id>runZKTests</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
<properties>
- <external.protobuf.groupid>org.openlabtesting.protobuf</external.protobuf.groupid>
+ <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
+ <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
+ <surefire.skipFirstPart>false</surefire.skipFirstPart>
+ <surefire.skipSecondPart>true</surefire.skipSecondPart>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.ZKTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
</properties>
+ </profile>
+ <profile>
+ <id>runRSGroupTests</id>
<activation>
- <os>
- <family>linux</family>
- <arch>aarch64</arch>
- </os>
+ <activeByDefault>false</activeByDefault>
</activation>
+ <properties>
+ <surefire.firstPartForkCount>1</surefire.firstPartForkCount>
+ <surefire.secondPartForkCount>1</surefire.secondPartForkCount>
+ <surefire.skipFirstPart>false</surefire.skipFirstPart>
+ <surefire.skipSecondPart>true</surefire.skipSecondPart>
+ <surefire.firstPartGroups>org.apache.hadoop.hbase.testclassification.RSGroupTests</surefire.firstPartGroups>
+ <surefire.secondPartGroups/>
+ </properties>
</profile>
- </profiles>
- <!-- See https://jira.codehaus.org/browse/MSITE-443 why the settings need to be here and not in pluginManagement. -->
- <reporting>
- <plugins>
- <plugin>
- <artifactId>maven-project-info-reports-plugin</artifactId>
- <version>${maven.project.info.report.version}</version>
- <reportSets>
- <reportSet>
- <reports>
- <report>dependencies</report>
- <report>dependency-convergence</report>
- <report>dependency-info</report>
- <report>dependency-management</report>
- <report>index</report>
- <report>issue-management</report>
- <report>licenses</report>
- <report>mailing-lists</report>
- <report>plugin-management</report>
- <report>plugins</report>
- <report>team</report>
- <report>scm</report>
- <report>summary</report>
- </reports>
- </reportSet>
- </reportSets>
- <!-- see src/site/site.xml for selected reports -->
- <configuration>
- <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <tags>
- <tag>
- <name>apiNote</name>
- <placement>a</placement>
- <head>API Note:</head>
- </tag>
- </tags>
- </configuration>
- <reportSets>
- <!-- Dev API -->
- <reportSet>
- <id>devapi</id>
- <reports>
- <report>aggregate-no-fork</report>
- </reports>
- <configuration>
- <destDir>devapidocs</destDir>
- <name>Developer API</name>
- <description>The full HBase API, including private and unstable APIs</description>
- <sourceFileExcludes>
- <exclude>**/generated/*</exclude>
- <exclude>**/protobuf/*</exclude>
- </sourceFileExcludes>
- <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
- <show>private</show> <!-- (shows all classes and members) -->
- <quiet>true</quiet>
- <linksource>true</linksource>
- <sourcetab>2</sourcetab>
- <validateLinks>true</validateLinks>
- <fixClassComment>true</fixClassComment>
- <fixFieldComment>true</fixFieldComment>
- <fixMethodComment>true</fixMethodComment>
- <fixTags>all</fixTags>
- <notimestamp>true</notimestamp>
- <locale>en_US</locale>
- <!-- Pass some options straight to the javadoc executable since it is easier -->
- <additionalJOption>-J-Xmx2G</additionalJOption>
- <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
- <additionalDependencies>
- <additionalDependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito-core.version}</version>
- </additionalDependency>
- <additionalDependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <version>${hamcrest.version}</version>
- </additionalDependency>
- <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
- <additionalDependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>3.0.2</version>
- </additionalDependency>
- </additionalDependencies>
- <inherited>false</inherited>
- </configuration>
- </reportSet>
- <reportSet>
- <id>testdevapi</id>
- <reports>
- <report>test-aggregate-no-fork</report>
- </reports>
- <configuration>
- <destDir>testdevapidocs</destDir>
- <name>Developer API</name>
- <description>The full HBase API test code, including private and unstable APIs</description>
- <sourceFileExcludes>
- <exclude>**/generated/*</exclude>
- <exclude>**/protobuf/*</exclude>
- </sourceFileExcludes>
- <excludePackageNames>org.apache.hadoop.hbase.tmpl.common:com.google.protobuf:org.apache.hadoop.hbase.generated*</excludePackageNames>
- <show>private</show> <!-- (shows all classes and members) -->
- <quiet>true</quiet>
- <linksource>true</linksource>
- <sourcetab>2</sourcetab>
- <validateLinks>true</validateLinks>
- <fixClassComment>true</fixClassComment>
- <fixFieldComment>true</fixFieldComment>
- <fixMethodComment>true</fixMethodComment>
- <fixTags>all</fixTags>
- <notimestamp>true</notimestamp>
- <locale>en_US</locale>
- <!-- Pass some options straight to the javadoc executable since it is easier -->
- <additionalJOption>-J-Xmx2G</additionalJOption>
- <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
- <additionalDependencies>
- <additionalDependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito-core.version}</version>
- </additionalDependency>
- <additionalDependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <version>${hamcrest.version}</version>
- </additionalDependency>
- <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
- <additionalDependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>3.0.2</version>
- </additionalDependency>
- </additionalDependencies>
- <inherited>false</inherited>
- </configuration>
- </reportSet>
- <!-- User API -->
- <reportSet>
- <id>userapi</id>
- <reports>
- <report>aggregate-no-fork</report>
- </reports>
- <configuration>
- <doclet>
- org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
- </doclet>
- <docletArtifact>
- <groupId>org.apache.yetus</groupId>
- <artifactId>audience-annotations</artifactId>
- <version>${audience-annotations.version}</version>
- </docletArtifact>
- <useStandardDocletOptions>true</useStandardDocletOptions>
- <destDir>apidocs</destDir>
- <name>User API</name>
- <description>The HBase Application Programmer's API</description>
- <excludePackageNames>
- org.apache.hadoop.hbase.backup*:org.apache.hadoop.hbase.catalog:org.apache.hadoop.hbase.client.coprocessor:org.apache.hadoop.hbase.client.metrics:org.apache.hadoop.hbase.codec*:org.apache.hadoop.hbase.constraint:org.apache.hadoop.hbase.coprocessor.*:org.apache.hadoop.hbase.executor:org.apache.hadoop.hbase.fs:*.generated.*:org.apache.hadoop.hbase.io.hfile.*:org.apache.hadoop.hbase.mapreduce.hadoopbackport:org.apache.hadoop.hbase.mapreduce.replication:org.apache.hadoop.hbas [...]
- </excludePackageNames>
- <!-- switch on dependency-driven aggregation -->
- <includeDependencySources>false</includeDependencySources>
- <sourceFilesExclude>**/generated/*</sourceFilesExclude>
- <show>protected</show> <!-- (shows only public and protected classes and members) -->
- <quiet>true</quiet>
- <linksource>true</linksource>
- <sourcetab>2</sourcetab>
- <validateLinks>true</validateLinks>
- <fixClassComment>true</fixClassComment>
- <fixFieldComment>true</fixFieldComment>
- <fixMethodComment>true</fixMethodComment>
- <fixTags>all</fixTags>
- <notimestamp>true</notimestamp>
- <locale>en_US</locale>
- <!-- Pass some options straight to the javadoc executable since it is easier -->
- <additionalJOption>-J-Xmx2G</additionalJOption>
- <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
- <additionalDependencies>
- <additionalDependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito-core.version}</version>
- </additionalDependency>
- <additionalDependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <version>${hamcrest.version}</version>
- </additionalDependency>
- <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
- <additionalDependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>3.0.2</version>
- </additionalDependency>
- </additionalDependencies>
- <inherited>false</inherited>
- </configuration>
- </reportSet>
- <!-- User Test API -->
- <reportSet>
- <id>testuserapi</id>
- <reports>
- <report>test-aggregate-no-fork</report>
- </reports>
+ <profile>
+ <!-- Use it to launch tests locally-->
+ <id>localTests</id>
+ <activation>
+ <property>
+ <name>test</name>
+ </property>
+ </activation>
+ <properties>
+ <surefire.provider>surefire-junit4</surefire.provider>
+ <surefire.skipFirstPart>false</surefire.skipFirstPart>
+ <surefire.skipSecondPart>true</surefire.skipSecondPart>
+ <surefire.firstPartGroups/>
+ </properties>
+ </profile>
+ <!-- Profile for running clover. You need to have a clover license under ~/.clover.license for ${clover.version}
+ or you can provide the license with -Dmaven.clover.licenseLocation=/path/to/license. Committers can find
+ the license under https://svn.apache.org/repos/private/committers/donated-licenses/clover/
+ The report will be generated under target/site/clover/index.html when you run
+ MAVEN_OPTS="-Xmx2048m" mvn clean package -Pclover site -->
+ <profile>
+ <id>clover</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ <property>
+ <name>clover</name>
+ </property>
+ </activation>
+ <properties>
+ <maven.clover.licenseLocation>${user.home}/.clover.license</maven.clover.licenseLocation>
+ </properties>
+ <build>
+ <plugins>
+ <!-- When Clover is active, we need to add it as a dependency for the javadoc plugin, or
+ our instrumented classes for the doclet will fail
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>com.atlassian.maven.plugins</groupId>
+ <artifactId>maven-clover2-plugin</artifactId>
+ <version>${clover.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>com.atlassian.maven.plugins</groupId>
+ <artifactId>maven-clover2-plugin</artifactId>
+ <version>${clover.version}</version>
<configuration>
- <doclet>
- org.apache.yetus.audience.tools.IncludePublicAnnotationsStandardDoclet
- </doclet>
- <docletArtifact>
- <groupId>org.apache.yetus</groupId>
- <artifactId>audience-annotations</artifactId>
- <version>${audience-annotations.version}</version>
- </docletArtifact>
- <useStandardDocletOptions>true</useStandardDocletOptions>
- <destDir>testapidocs</destDir>
- <name>User API</name>
- <description>The HBase Application Programmer's API</description>
- <excludePackageNames>
- org.apache.hadoop.hbase.backup*:org.apache.hadoop.hbase.catalog:org.apache.hadoop.hbase.client.coprocessor:org.apache.hadoop.hbase.client.metrics:org.apache.hadoop.hbase.codec*:org.apache.hadoop.hbase.constraint:org.apache.hadoop.hbase.coprocessor.*:org.apache.hadoop.hbase.executor:org.apache.hadoop.hbase.fs:*.generated.*:org.apache.hadoop.hbase.io.hfile.*:org.apache.hadoop.hbase.mapreduce.hadoopbackport:org.apache.hadoop.hbase.mapreduce.replication:org.apache.hadoop.hbas [...]
- </excludePackageNames>
- <!-- switch on dependency-driven aggregation -->
- <includeDependencySources>false</includeDependencySources>
- <sourceFilesExclude>**/generated/*</sourceFilesExclude>
- <show>protected</show> <!-- (shows only public and protected classes and members) -->
- <quiet>true</quiet>
- <linksource>true</linksource>
- <sourcetab>2</sourcetab>
- <validateLinks>true</validateLinks>
- <fixClassComment>true</fixClassComment>
- <fixFieldComment>true</fixFieldComment>
- <fixMethodComment>true</fixMethodComment>
- <fixTags>all</fixTags>
- <notimestamp>true</notimestamp>
- <locale>en_US</locale>
- <!-- Pass some options straight to the javadoc executable since it is easier -->
- <additionalJOption>-J-Xmx2G</additionalJOption>
- <!-- JDK8 javadoc requires test scope transitive dependencies due to our custom doclet -->
- <additionalDependencies>
- <additionalDependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-core</artifactId>
- <version>${mockito-core.version}</version>
- </additionalDependency>
- <additionalDependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <version>${hamcrest.version}</version>
- </additionalDependency>
- <!-- javadoc tooling requires jsr305 due to references to it from things we rely on -->
- <additionalDependency>
- <groupId>com.google.code.findbugs</groupId>
- <artifactId>jsr305</artifactId>
- <version>3.0.2</version>
- </additionalDependency>
- </additionalDependencies>
- <inherited>false</inherited>
+ <includesAllSourceRoots>true</includesAllSourceRoots>
+ <includesTestSourceRoots>true</includesTestSourceRoots>
+ <targetPercentage>50%</targetPercentage>
+ <generateHtml>true</generateHtml>
+ <generateXml>true</generateXml>
+ <excludes>
+ <exclude>**/generated/**</exclude>
+ </excludes>
</configuration>
- </reportSet>
- </reportSets>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>${maven.checkstyle.version}</version>
- <configuration>
- <excludes>target/**</excludes>
- </configuration>
- </plugin>
-
- </plugins>
- </reporting>
- <distributionManagement>
- <site>
- <id>hbase.apache.org</id>
- <name>HBase Website at hbase.apache.org</name>
- <!-- On why this is the tmp dir and not hbase.apache.org, see
- https://issues.apache.org/jira/browse/HBASE-7593?focusedCommentId=13555866&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13555866
- -->
- <url>file:///tmp</url>
- </site>
- </distributionManagement>
+ <executions>
+ <execution>
+ <id>clover-setup</id>
+ <goals>
+ <goal>setup</goal>
+ </goals>
+ <phase>process-sources</phase>
+ </execution>
+ <execution>
+ <id>clover</id>
+ <goals>
+ <goal>clover</goal>
+ </goals>
+ <phase>site</phase>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <!-- Used by the website generation script on jenkins to
+ do a local install of the jars we need to run a normal
+ site build w/o forking.
+ -->
+ <id>site-install-step</id>
+ <properties>
+ <skipTests>true</skipTests>
+ <maven.javadoc.skip>true</maven.javadoc.skip>
+ <enforcer.skip>true</enforcer.skip>
+ <checkstyle.skip>true</checkstyle.skip>
+ <spotbugs.skip>true</spotbugs.skip>
+ <warbucks.skip>true</warbucks.skip>
+ </properties>
+ </profile>
+ <profile>
+ <!-- Used by the website generation script on jenkins to
+ mitigate the impact of unneeded build forks while building
+ our javadocs.
+ -->
+ <id>site-build-step</id>
+ <properties>
+ <skipTests>true</skipTests>
+ <enforcer.skip>true</enforcer.skip>
+ <maven.main.skip>true</maven.main.skip>
+ <maven.test.skip>true</maven.test.skip>
+ <warbucks.skip>true</warbucks.skip>
+ <protoc.skip>true</protoc.skip>
+ <remoteresources.skip>true</remoteresources.skip>
+ </properties>
+ </profile>
+ <profile>
+ <id>eclipse-specific</id>
+ <activation>
+ <property>
+ <name>m2e.version</name>
+ </property>
+ </activation>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <!-- General config for eclipse classpath/settings -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <version>${maven.eclipse.version}</version>
+ </plugin>
+ <!--This plugin's configuration is used to store Eclipse m2e settings
+ only. It has no influence on the Maven build itself. m2e does not
+ provide any safeguards against rogue maven plugins that leak
+ classloaders, modify random files inside workspace or throw nasty
+ exceptions to fail the build.
+ Top level doesn't do any specific configuration currently - left
+ to modules to decide what they want to bind, sans those plugins
+ defined in this pom. -->
+ <plugin>
+ <groupId>org.eclipse.m2e</groupId>
+ <artifactId>lifecycle-mapping</artifactId>
+ <version>${lifecycle.mapping.version}</version>
+ <configuration>
+ <lifecycleMappingMetadata>
+ <pluginExecutions>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <versionRange>[0.6.2.201302030002,)</versionRange>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore/>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <versionRange>${enforcer.version}</versionRange>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore/>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <versionRange>[1.5,)</versionRange>
+ <goals>
+ <goal>process</goal>
+ <goal>bundle</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <ignore/>
+ </action>
+ </pluginExecution>
+ <pluginExecution>
+ <pluginExecutionFilter>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <versionRange>[1.3,)</versionRange>
+ <goals>
+ <goal>create-timestamp</goal>
+ </goals>
+ </pluginExecutionFilter>
+ <action>
+ <execute>
+ <runOnConfiguration>true</runOnConfiguration>
+ <runOnIncremental>true</runOnIncremental>
+ </execute>
+ </action>
+ </pluginExecution>
+ </pluginExecutions>
+ </lifecycleMappingMetadata>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ </profile>
+ <profile>
+ <id>aarch64</id>
+ <activation>
+ <os>
+ <family>linux</family>
+ <arch>aarch64</arch>
+ </os>
+ </activation>
+ <properties>
+ <external.protobuf.groupid>org.openlabtesting.protobuf</external.protobuf.groupid>
+ </properties>
+ </profile>
+ </profiles>
</project>