2017-10-21 21:12:07 -04:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2019-05-21 15:34:25 -04:00
|
|
|
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
2017-10-21 21:12:07 -04:00
|
|
|
<!--
|
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
|
|
|
-->
|
|
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<parent>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-build-configuration</artifactId>
|
2022-10-23 23:50:48 -04:00
|
|
|
<version>${revision}</version>
|
2017-10-21 21:12:07 -04:00
|
|
|
<relativePath>../hbase-build-configuration</relativePath>
|
|
|
|
</parent>
|
|
|
|
<artifactId>hbase-http</artifactId>
|
|
|
|
<name>Apache HBase - HTTP</name>
|
|
|
|
<description>HTTP functionality for HBase Servers</description>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-miscellaneous</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<!-- Intra-project dependencies -->
|
2020-05-13 05:59:21 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-logging</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-common</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-common</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-annotations</artifactId>
|
|
|
|
<type>test-jar</type>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2022-08-23 22:54:27 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-metrics-api</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-metrics</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-hadoop-compat</artifactId>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
<!-- resource bundle only needed at build time -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hbase</groupId>
|
|
|
|
<artifactId>hbase-resource-bundle</artifactId>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2020-08-25 00:05:52 -04:00
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-jetty</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2020-08-25 00:05:52 -04:00
|
|
|
<groupId>org.apache.hbase.thirdparty</groupId>
|
|
|
|
<artifactId>hbase-shaded-jersey</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependency>
|
|
|
|
<!-- General dependencies -->
|
|
|
|
<dependency>
|
2017-12-18 05:14:30 -05:00
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>slf4j-api</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>javax.servlet</groupId>
|
|
|
|
<artifactId>javax.servlet-api</artifactId>
|
|
|
|
</dependency>
|
2022-03-19 07:45:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>javax.ws.rs</groupId>
|
|
|
|
<artifactId>javax.ws.rs-api</artifactId>
|
|
|
|
</dependency>
|
2020-03-11 22:18:09 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.github.stephenc.findbugs</groupId>
|
|
|
|
<artifactId>findbugs-annotations</artifactId>
|
|
|
|
<scope>compile</scope>
|
|
|
|
<optional>true</optional>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
<!-- Test dependencies -->
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.kerby</groupId>
|
|
|
|
<artifactId>kerb-simplekdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.bouncycastle</groupId>
|
2018-10-09 13:06:10 -04:00
|
|
|
<artifactId>bcprov-jdk15on</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.kerby</groupId>
|
|
|
|
<artifactId>kerb-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
|
|
<artifactId>httpclient</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
|
|
<artifactId>httpcore</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>junit</groupId>
|
|
|
|
<artifactId>junit</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2021-04-15 12:07:13 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
|
<artifactId>hamcrest-library</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.mockito</groupId>
|
2017-10-03 01:53:34 -04:00
|
|
|
<artifactId>mockito-core</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-05-13 05:59:21 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>jcl-over-slf4j</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.slf4j</groupId>
|
|
|
|
<artifactId>jul-to-slf4j</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2020-05-07 23:16:18 -04:00
|
|
|
<dependency>
|
2022-03-11 14:17:43 -05:00
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-api</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-core</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-slf4j-impl</artifactId>
|
2020-05-13 05:59:21 -04:00
|
|
|
<scope>test</scope>
|
2020-05-07 23:16:18 -04:00
|
|
|
</dependency>
|
|
|
|
<dependency>
|
2022-03-11 14:17:43 -05:00
|
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
|
|
<artifactId>log4j-1.2-api</artifactId>
|
2020-05-13 05:59:21 -04:00
|
|
|
<scope>test</scope>
|
2020-05-07 23:16:18 -04:00
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependencies>
|
2022-05-01 10:41:49 -04:00
|
|
|
|
|
|
|
<build>
|
2017-10-21 21:12:07 -04:00
|
|
|
<!-- Makes sure the resources get added before they are processed
|
|
|
|
by placing this first -->
|
|
|
|
<testResources>
|
|
|
|
<!-- Our test artifact has different license info than our source/bin ones -->
|
|
|
|
<testResource>
|
|
|
|
<targetPath>META-INF/</targetPath>
|
|
|
|
<filtering>true</filtering>
|
|
|
|
<directory>src/test/resources/META-INF/</directory>
|
|
|
|
<includes>
|
|
|
|
<include>NOTICE</include>
|
|
|
|
</includes>
|
|
|
|
</testResource>
|
|
|
|
<testResource>
|
|
|
|
<directory>src/test/resources</directory>
|
|
|
|
<includes>
|
|
|
|
<include>**/**</include>
|
|
|
|
</includes>
|
|
|
|
</testResource>
|
|
|
|
</testResources>
|
|
|
|
<plugins>
|
|
|
|
<!-- licensing info from our bundled works -->
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2018-02-07 12:52:59 -05:00
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
2017-10-21 21:12:07 -04:00
|
|
|
<artifactId>maven-remote-resources-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>default</id>
|
2018-02-07 12:52:59 -05:00
|
|
|
<configuration>
|
2017-10-21 21:12:07 -04:00
|
|
|
<attachToTest>false</attachToTest>
|
|
|
|
<properties>
|
|
|
|
<copyright-end-year>${build.year}</copyright-end-year>
|
|
|
|
<debug-print-included-work-info>${license.debug.print.included}</debug-print-included-work-info>
|
|
|
|
<bundled-dependencies>${license.bundles.dependencies}</bundled-dependencies>
|
|
|
|
<bundled-jquery>${license.bundles.jquery}</bundled-jquery>
|
HBASE-25896 Implement a Region Visualization on Master WebUI (#4228)
This is a demonstration of visualization of regions on the cluster. The visualization is a stacked
bar chart showing total storefile size per table per region server, with the x-axis being server
names, the y-axis being storfile size, and the bars stacked per table. The visualization is
generated entirely on the fly from within the browser, implemented using Vega Lite. So far, Vega
appears to handle rendering this visualization for a cluster of over 700 region servers with
approximately 300,000 regions.
Per [0], include an update to the top-level LICENSE.txt. Also update LICENSE files in all binary
distributions (i.e., jars), by way of LICENSE.vm. Vega uses a BSD 3-clause variant without
advertising clause, and as such is a "Category A" license, per [1].
No changes are made to the NOTICE files, as per the existing example of bundling the minified
JQuery, which is also a Category A license.
[0]: https://infra.apache.org/licensing-howto.html
[1]: https://www.apache.org/legal/resolved.html#category-a
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2022-03-15 16:01:57 -04:00
|
|
|
<bundled-vega>${license.bundles.vega}</bundled-vega>
|
2017-10-21 21:12:07 -04:00
|
|
|
<bundled-logo>${license.bundles.logo}</bundled-logo>
|
|
|
|
<bundled-bootstrap>${license.bundles.bootstrap}</bundled-bootstrap>
|
|
|
|
</properties>
|
|
|
|
<resourceBundles>
|
|
|
|
<resourceBundle>${project.groupId}:hbase-resource-bundle:${project.version}</resourceBundle>
|
|
|
|
</resourceBundles>
|
|
|
|
<supplementalModelArtifacts>
|
|
|
|
<supplementalModelArtifact>${project.groupId}:hbase-resource-bundle:${project.version}</supplementalModelArtifact>
|
|
|
|
</supplementalModelArtifacts>
|
|
|
|
<supplementalModels>
|
|
|
|
<supplementalModel>supplemental-models.xml</supplementalModel>
|
|
|
|
</supplementalModels>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<!-- Run with -Dmaven.test.skip.exec=true to build -tests.jar without running
|
|
|
|
tests (this is needed for upstream projects whose tests need this jar simply for
|
|
|
|
compilation) -->
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2017-10-21 21:12:07 -04:00
|
|
|
<!--Make it so assembly:single does nothing in here-->
|
|
|
|
<artifactId>maven-assembly-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<skipAssembly>true</skipAssembly>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
<!-- Make a jar and put the sources in the jar -->
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2017-10-21 21:12:07 -04:00
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-source-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
2022-05-01 10:41:49 -04:00
|
|
|
<goals>
|
2017-10-21 21:12:07 -04:00
|
|
|
<goal>jar</goal>
|
|
|
|
<goal>test-jar</goal>
|
2022-05-01 10:41:49 -04:00
|
|
|
</goals>
|
2017-10-21 21:12:07 -04:00
|
|
|
<phase>package</phase>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
<!-- Testing plugins -->
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2017-10-21 21:12:07 -04:00
|
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<systemPropertyVariables>
|
|
|
|
<test.build.webapps>target/test-classes/webapps</test.build.webapps>
|
|
|
|
</systemPropertyVariables>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2017-10-21 21:12:07 -04:00
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
2018-02-07 12:52:59 -05:00
|
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
<configuration>
|
2018-02-07 12:52:59 -05:00
|
|
|
<failOnViolation>true</failOnViolation>
|
2017-10-21 21:12:07 -04:00
|
|
|
</configuration>
|
|
|
|
</plugin>
|
2022-05-01 10:41:49 -04:00
|
|
|
<plugin>
|
2018-03-21 21:24:14 -04:00
|
|
|
<groupId>net.revelc.code</groupId>
|
|
|
|
<artifactId>warbucks-maven-plugin</artifactId>
|
2017-10-21 21:12:07 -04:00
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
<!-- General Resources -->
|
2022-05-01 10:41:49 -04:00
|
|
|
</build>
|
2017-10-21 21:12:07 -04:00
|
|
|
<profiles>
|
2020-08-25 00:05:52 -04:00
|
|
|
<profile>
|
|
|
|
<id>build-with-jdk11</id>
|
|
|
|
<activation>
|
|
|
|
<jdk>[1.11,)</jdk>
|
|
|
|
</activation>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>jaxb-api</artifactId>
|
|
|
|
</dependency>
|
|
|
|
</dependencies>
|
|
|
|
</profile>
|
2017-10-21 21:12:07 -04:00
|
|
|
<!-- Needs to make the profile in apache parent pom -->
|
|
|
|
<profile>
|
|
|
|
<id>apache-release</id>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-resources-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>license-javadocs</id>
|
|
|
|
<goals>
|
|
|
|
<goal>copy-resources</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>prepare-package</phase>
|
|
|
|
<configuration>
|
|
|
|
<outputDirectory>${project.build.directory}/apidocs</outputDirectory>
|
|
|
|
<resources>
|
|
|
|
<resource>
|
|
|
|
<directory>src/main/javadoc/META-INF/</directory>
|
|
|
|
<targetPath>META-INF/</targetPath>
|
|
|
|
<includes>
|
|
|
|
<include>LICENSE</include>
|
|
|
|
<include>NOTICE</include>
|
|
|
|
</includes>
|
|
|
|
<filtering>true</filtering>
|
|
|
|
</resource>
|
|
|
|
</resources>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
|
|
|
<!-- Skip the tests in this module -->
|
|
|
|
<profile>
|
|
|
|
<id>skipServerTests</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<name>skipServerTests</name>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<properties>
|
|
|
|
<surefire.skipFirstPart>true</surefire.skipFirstPart>
|
|
|
|
<surefire.skipSecondPart>true</surefire.skipSecondPart>
|
|
|
|
</properties>
|
|
|
|
</profile>
|
|
|
|
<!-- Special builds -->
|
|
|
|
<!-- Profiles for building against different hadoop versions -->
|
|
|
|
<!-- There are a lot of common dependencies used here, should investigate
|
|
|
|
if we can combine these profiles somehow -->
|
|
|
|
|
|
|
|
<!-- profile for building against Hadoop 2.x. This is the default. -->
|
|
|
|
<profile>
|
|
|
|
<id>hadoop-2.0</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<!--Below formatting for dev-support/generate-hadoopX-poms.sh-->
|
|
|
|
<!--h2-->
|
|
|
|
<name>!hadoop.profile</name>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-common</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minicluster</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
</exclusion>
|
2018-01-19 15:15:04 -05:00
|
|
|
<exclusion>
|
|
|
|
<groupId>org.apache.zookeeper</groupId>
|
|
|
|
<artifactId>zookeeper</artifactId>
|
|
|
|
</exclusion>
|
2017-10-21 21:12:07 -04:00
|
|
|
</exclusions>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-auth</artifactId>
|
|
|
|
</dependency>
|
2019-05-27 02:50:49 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.codehaus.jackson</groupId>
|
|
|
|
<artifactId>jackson-core-asl</artifactId>
|
|
|
|
<version>1.9.13</version>
|
|
|
|
</dependency>
|
HBASE-27340 Artifacts with resolved profiles (#4740)
Make it so our published poms carry the minimum needed to run
an hbase; the published pom has no profiles -- the profiles
specified at build time are resolved, their dependencies inlined,
and then they are stripped -- and no build-time, or plugins
dependencies or properties, etc. Resultant poms have explicit
hadoop lib versions baked in -- no more being able to choose
hbase with hadoop2 or haddop3 at downstream build time by setting
a '-Dhadoop.profile=X.0'.
Pattern is to add profiles when none in sub-modules when
the flatten plugin complains it can't resolve an hadoop
dependency's 'version' (e.g. hadoop-common, hadoop-hdfs).
Adding the hadoop-2.0 and hadoop-3.0 profiles in the sub-module
make it so the flatten plugin can figure 'hadoop.version'
definitively.
Another spin on the above happens when profiles already exist
in submodule but the flatten plugin is complaining it can't
figure figure version on an hadoop dependency NOT under
profiles. Below, we move the delinquent hadoop dependency under
existing profiles (minikdc was the usual dependency outside
profiles in sub-modules that flatten complained about).
Sometimes, moving an hadoop dependency under a profile, there
would be excludes on the local dependency. If the parent pom
excludes section was missing the local excludes, we added them
up to the parent module so all excluding is done up there in
the parent profile dependencyManagement section.
* hbase-asyncfs/pom.xml
* hbase-endpoint/pom.xml
* hbase-examples/pom.xml
* hbase-http/pom.xml
* hbase-rest/pom.xml
* hbase-server/pom.xml
Move the minikdc under profiles so it picks up appropriate hadoop version
when the flatten plugin runs.
* hbase-hadoop2-compat/pom.xml
Add hadoop2 and hadoop3 profiles and move hadoop-common, etc.
under them so we pick up appropriate hadoop version when flatten
plugin runs.
* hbase-mapreduce/pom.xml
Move hadoop dependencies under profiles so right version is
available when the flatten plugin runs.
* hbase-shaded/hbase-shaded-testing-util/pom.xml
Add profiles for hadoop-2.0 and hadoop-3.0 and move the
hadoop dependencies under them.
pom.xml
Add the flatten plugin with the flatten profiles enabled.
Add a few excludes on hadoop profiles picked up from sub-modules.
E.g. exclude bouncycastle bcprov-jdk15 when we include minikdc.
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-09-02 19:43:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minikdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>create-mrapp-generated-classpath</id>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>generate-test-resources</phase>
|
|
|
|
<configuration>
|
|
|
|
<!-- needed to run the unit test for DS to generate
|
|
|
|
the required classpath that is required in the env
|
|
|
|
of the launch container in the mini mr/yarn cluster
|
|
|
|
-->
|
|
|
|
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
|
|
|
<!--
|
|
|
|
profile for building against Hadoop 3.0.x. Activate using:
|
|
|
|
mvn -Dhadoop.profile=3.0
|
|
|
|
-->
|
|
|
|
<profile>
|
|
|
|
<id>hadoop-3.0</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<name>hadoop.profile</name>
|
|
|
|
<value>3.0</value>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<dependencies>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-common</artifactId>
|
|
|
|
</dependency>
|
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minicluster</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
<exclusions>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>com.google.guava</groupId>
|
|
|
|
<artifactId>guava</artifactId>
|
|
|
|
</exclusion>
|
2020-05-05 18:27:11 -04:00
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.xml.bind</groupId>
|
|
|
|
<artifactId>jaxb-api</artifactId>
|
|
|
|
</exclusion>
|
|
|
|
<exclusion>
|
|
|
|
<groupId>javax.ws.rs</groupId>
|
|
|
|
<artifactId>jsr311-api</artifactId>
|
|
|
|
</exclusion>
|
2017-10-21 21:12:07 -04:00
|
|
|
</exclusions>
|
|
|
|
</dependency>
|
2019-05-27 02:50:49 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
|
|
<artifactId>jackson-core</artifactId>
|
|
|
|
</dependency>
|
HBASE-27340 Artifacts with resolved profiles (#4740)
Make it so our published poms carry the minimum needed to run
an hbase; the published pom has no profiles -- the profiles
specified at build time are resolved, their dependencies inlined,
and then they are stripped -- and no build-time, or plugins
dependencies or properties, etc. Resultant poms have explicit
hadoop lib versions baked in -- no more being able to choose
hbase with hadoop2 or haddop3 at downstream build time by setting
a '-Dhadoop.profile=X.0'.
Pattern is to add profiles when none in sub-modules when
the flatten plugin complains it can't resolve an hadoop
dependency's 'version' (e.g. hadoop-common, hadoop-hdfs).
Adding the hadoop-2.0 and hadoop-3.0 profiles in the sub-module
make it so the flatten plugin can figure 'hadoop.version'
definitively.
Another spin on the above happens when profiles already exist
in submodule but the flatten plugin is complaining it can't
figure figure version on an hadoop dependency NOT under
profiles. Below, we move the delinquent hadoop dependency under
existing profiles (minikdc was the usual dependency outside
profiles in sub-modules that flatten complained about).
Sometimes, moving an hadoop dependency under a profile, there
would be excludes on the local dependency. If the parent pom
excludes section was missing the local excludes, we added them
up to the parent module so all excluding is done up there in
the parent profile dependencyManagement section.
* hbase-asyncfs/pom.xml
* hbase-endpoint/pom.xml
* hbase-examples/pom.xml
* hbase-http/pom.xml
* hbase-rest/pom.xml
* hbase-server/pom.xml
Move the minikdc under profiles so it picks up appropriate hadoop version
when the flatten plugin runs.
* hbase-hadoop2-compat/pom.xml
Add hadoop2 and hadoop3 profiles and move hadoop-common, etc.
under them so we pick up appropriate hadoop version when flatten
plugin runs.
* hbase-mapreduce/pom.xml
Move hadoop dependencies under profiles so right version is
available when the flatten plugin runs.
* hbase-shaded/hbase-shaded-testing-util/pom.xml
Add profiles for hadoop-2.0 and hadoop-3.0 and move the
hadoop dependencies under them.
pom.xml
Add the flatten plugin with the flatten profiles enabled.
Add a few excludes on hadoop profiles picked up from sub-modules.
E.g. exclude bouncycastle bcprov-jdk15 when we include minikdc.
Signed-off-by: Andrew Purtell <apurtell@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2022-09-02 19:43:29 -04:00
|
|
|
<dependency>
|
|
|
|
<groupId>org.apache.hadoop</groupId>
|
|
|
|
<artifactId>hadoop-minikdc</artifactId>
|
|
|
|
<scope>test</scope>
|
|
|
|
</dependency>
|
2017-10-21 21:12:07 -04:00
|
|
|
</dependencies>
|
|
|
|
<build>
|
|
|
|
<plugins>
|
|
|
|
<plugin>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<executions>
|
|
|
|
<execution>
|
|
|
|
<id>create-mrapp-generated-classpath</id>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
|
|
|
<phase>generate-test-resources</phase>
|
|
|
|
<configuration>
|
|
|
|
<!-- needed to run the unit test for DS to generate
|
|
|
|
the required classpath that is required in the env
|
|
|
|
of the launch container in the mini mr/yarn cluster
|
|
|
|
-->
|
|
|
|
<outputFile>${project.build.directory}/test-classes/mrapp-generated-classpath</outputFile>
|
|
|
|
</configuration>
|
|
|
|
</execution>
|
|
|
|
</executions>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2019-03-21 12:34:12 -04:00
|
|
|
<profile>
|
|
|
|
<id>eclipse-specific</id>
|
|
|
|
<activation>
|
|
|
|
<property>
|
|
|
|
<name>m2e.version</name>
|
|
|
|
</property>
|
|
|
|
</activation>
|
|
|
|
<build>
|
|
|
|
<pluginManagement>
|
|
|
|
<plugins>
|
|
|
|
<!--This plugin's configuration is used to store Eclipse m2e settings
|
|
|
|
only. It has no influence on the Maven build itself and needs to
|
|
|
|
be kept in plugin management, not in the actual plugins. -->
|
|
|
|
<plugin>
|
|
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
|
|
<configuration>
|
|
|
|
<lifecycleMappingMetadata>
|
|
|
|
<pluginExecutions>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-antrun-plugin</artifactId>
|
|
|
|
<versionRange>[1.6,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>run</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
|
|
|
<execute>
|
|
|
|
<runOnIncremental>false</runOnIncremental>
|
|
|
|
<runOnConfiguration>true</runOnConfiguration>
|
|
|
|
</execute>
|
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
<pluginExecution>
|
|
|
|
<pluginExecutionFilter>
|
|
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
|
|
<artifactId>maven-dependency-plugin</artifactId>
|
|
|
|
<versionRange>[2.8,)</versionRange>
|
|
|
|
<goals>
|
|
|
|
<goal>build-classpath</goal>
|
|
|
|
</goals>
|
|
|
|
</pluginExecutionFilter>
|
|
|
|
<action>
|
|
|
|
<ignore/>
|
|
|
|
</action>
|
|
|
|
</pluginExecution>
|
|
|
|
</pluginExecutions>
|
|
|
|
</lifecycleMappingMetadata>
|
|
|
|
</configuration>
|
|
|
|
</plugin>
|
|
|
|
</plugins>
|
|
|
|
</pluginManagement>
|
|
|
|
</build>
|
|
|
|
</profile>
|
2017-10-21 21:12:07 -04:00
|
|
|
</profiles>
|
|
|
|
</project>
|