| <?xml version="1.0"?> |
| <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"> |
| <!-- |
| /** |
| * 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> |
| <artifactId>hbase-build-configuration</artifactId> |
| <groupId>org.apache.hbase</groupId> |
| <version>3.0.0-SNAPSHOT</version> |
| <relativePath>../hbase-build-configuration</relativePath> |
| </parent> |
| <artifactId>hbase-shaded</artifactId> |
| <name>Apache HBase - Shaded</name> |
| <description>Module of HBase with most deps shaded.</description> |
| <packaging>pom</packaging> |
| <properties> |
| <!-- Don't make a test-jar --> |
| <maven.test.skip>true</maven.test.skip> |
| <!-- Don't make a source-jar --> |
| <source.skip>true</source.skip> |
| <license.bundles.dependencies>true</license.bundles.dependencies> |
| <shaded.prefix>org.apache.hadoop.hbase.shaded</shaded.prefix> |
| </properties> |
| <modules> |
| <module>hbase-shaded-client-byo-hadoop</module> |
| <module>hbase-shaded-client</module> |
| <module>hbase-shaded-mapreduce</module> |
| <module>hbase-shaded-testing-util</module> |
| <module>hbase-shaded-testing-util-tester</module> |
| <module>hbase-shaded-check-invariants</module> |
| <module>hbase-shaded-with-hadoop-check-invariants</module> |
| </modules> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.hbase</groupId> |
| <artifactId>hbase-resource-bundle</artifactId> |
| <version>${project.version}</version> |
| <optional>true</optional> |
| </dependency> |
| <!-- log4j has to be non-optional for Hadoop 2 atleast --> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </dependency> |
| <!-- put the log implementations to optional --> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| <optional>true</optional> |
| </dependency> |
| </dependencies> |
| <build> |
| <plugins> |
| <plugin> |
| <!--Make it so assembly:single does nothing in here--> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| <!-- licensing info from our dependencies --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>aggregate-licenses</id> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <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> |
| <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> |
| </plugins> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <!--Make it so assembly:single does nothing in here--> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <configuration> |
| <skipAssembly>true</skipAssembly> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>aggregate-into-a-jar-with-relocated-third-parties</id> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| <configuration> |
| <createSourcesJar>false</createSourcesJar> |
| <shadedArtifactAttached>false</shadedArtifactAttached> |
| <promoteTransitiveDependencies>true</promoteTransitiveDependencies> |
| <shadeTestJar>false</shadeTestJar> |
| <artifactSet> |
| <excludes> |
| <!-- exclude J2EE modules that come in for JDK11+ (since |
| hadoop-3.2.0) or modules that come in for JDK8+ but |
| need not be included --> |
| <exclude>javax.annotation:javax.annotation-api</exclude> |
| <exclude>javax.activation:javax.activation-api</exclude> |
| <!-- default to excluding Hadoop, have module that want |
| to include it redefine the exclude list --> |
| <exclude>org.apache.hadoop:*</exclude> |
| <!-- the rest of this needs to be kept in sync with any |
| hadoop-including module --> |
| <exclude>org.apache.hbase:hbase-resource-bundle</exclude> |
| <exclude>org.slf4j:*</exclude> |
| <exclude>com.google.code.findbugs:*</exclude> |
| <exclude>com.github.stephenc.findbugs:*</exclude> |
| <exclude>com.github.spotbugs:*</exclude> |
| <exclude>org.apache.htrace:*</exclude> |
| <exclude>org.apache.yetus:*</exclude> |
| <exclude>log4j:*</exclude> |
| <exclude>commons-logging:*</exclude> |
| </excludes> |
| </artifactSet> |
| <relocations> |
| <!-- top level com not including sun--> |
| <relocation> |
| <pattern>com.cedarsoftware</pattern> |
| <shadedPattern>${shaded.prefix}.com.cedarsoftware</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.codahale</pattern> |
| <shadedPattern>${shaded.prefix}.com.codahale</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.ctc</pattern> |
| <shadedPattern>${shaded.prefix}.com.ctc</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.dropwizard</pattern> |
| <shadedPattern>${shaded.prefix}.com.dropwizard</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.fasterxml</pattern> |
| <shadedPattern>${shaded.prefix}.com.fasterxml</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.github.benmanes.caffeine</pattern> |
| <shadedPattern>${shaded.prefix}.com.github.benmanes.caffeine</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.google</pattern> |
| <shadedPattern>${shaded.prefix}.com.google</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.jamesmurty</pattern> |
| <shadedPattern>${shaded.prefix}.com.jamesmurty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.jcraft</pattern> |
| <shadedPattern>${shaded.prefix}.com.jcraft</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.lmax</pattern> |
| <shadedPattern>${shaded.prefix}.com.lmax</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.microsoft</pattern> |
| <shadedPattern>${shaded.prefix}.com.microsoft</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.nimbusds</pattern> |
| <shadedPattern>${shaded.prefix}.com.nimbusds</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.squareup</pattern> |
| <shadedPattern>${shaded.prefix}.com.squareup</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.thoughtworks</pattern> |
| <shadedPattern>${shaded.prefix}.com.thoughtworks</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.zaxxer</pattern> |
| <shadedPattern>${shaded.prefix}.com.zaxxer</shadedPattern> |
| </relocation> |
| |
| <!-- dnsjava --> |
| <relocation> |
| <pattern>org.xbill</pattern> |
| <shadedPattern>${shaded.prefix}.org.xbill</shadedPattern> |
| </relocation> |
| |
| <!-- netty family --> |
| <relocation> |
| <pattern>org.jboss.netty</pattern> |
| <shadedPattern>${shaded.prefix}.org.jboss.netty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>io.netty</pattern> |
| <shadedPattern>${shaded.prefix}.io.netty</shadedPattern> |
| </relocation> |
| |
| <!-- top level okio --> |
| <relocation> |
| <pattern>okio</pattern> |
| <shadedPattern>${shaded.prefix}.okio</shadedPattern> |
| </relocation> |
| |
| <!-- top level org --> |
| <relocation> |
| <pattern>org.checkerframework</pattern> |
| <shadedPattern>${shaded.prefix}.org.checkerframework</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.codehaus</pattern> |
| <shadedPattern>${shaded.prefix}.org.codehaus</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.eclipse</pattern> |
| <shadedPattern>${shaded.prefix}.org.eclipse</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.ehcache</pattern> |
| <shadedPattern>${shaded.prefix}.org.ehcache</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jcodings</pattern> |
| <shadedPattern>${shaded.prefix}.org.jcodings</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.joni</pattern> |
| <shadedPattern>${shaded.prefix}.org.joni</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.mortbay</pattern> |
| <shadedPattern>${shaded.prefix}.org.mortbay</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.nustaq</pattern> |
| <shadedPattern>${shaded.prefix}.org.nustaq</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.terracotta</pattern> |
| <shadedPattern>${shaded.prefix}.org.terracotta</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.tukaani</pattern> |
| <shadedPattern>${shaded.prefix}.org.tukaani</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.xerial</pattern> |
| <shadedPattern>${shaded.prefix}.org.xerial</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.znerd</pattern> |
| <shadedPattern>${shaded.prefix}.org.znerd</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.aopalliance</pattern> |
| <shadedPattern>${shaded.prefix}.org.aopalliance</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.fusesource</pattern> |
| <shadedPattern>${shaded.prefix}.org.fusesource</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.iq80</pattern> |
| <shadedPattern>${shaded.prefix}.org.iq80</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jamon</pattern> |
| <shadedPattern>${shaded.prefix}.org.jamon</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jets3t</pattern> |
| <shadedPattern>${shaded.prefix}.org.jets3t</shadedPattern> |
| </relocation> |
| <!-- poorly named add-on package from jets3t dependency. TODO can we just exclude these? --> |
| <relocation> |
| <pattern>contribs.mx</pattern> |
| <shadedPattern>${shaded.prefix}.contribs.mx</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.objectweb</pattern> |
| <shadedPattern>${shaded.prefix}.org.objectweb</shadedPattern> |
| </relocation> |
| |
| |
| <!-- org.apache relocations not in org.apache.hadoop or org.apache.commons --> |
| <relocation> |
| <pattern>org.apache.avro</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.avro</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.curator</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.curator</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.directory</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.directory</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.http</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.http</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.jasper</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.jasper</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.jute</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.jute</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.kerby</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.kerby</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.taglibs</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.taglibs</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.zookeeper</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.zookeeper</shadedPattern> |
| </relocation> |
| |
| <!-- org.apache.commons not including logging --> |
| <relocation> |
| <pattern>org.apache.commons.validator</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.validator</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.beanutils</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.beanutils</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.cli</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.cli</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.collections</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.collections</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.configuration</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.configuration</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.crypto</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.crypto</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.csv</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.csv</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.daemon</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.daemon</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.io</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.io</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.math</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.math</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.math3</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.math3</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.net</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.net</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.lang</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.lang</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.lang3</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.lang3</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.el</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.el</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.httpclient</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.httpclient</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.compress</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.compress</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.digester</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.digester</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.codec</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.codec</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.text</pattern> |
| <shadedPattern>${shaded.prefix}.org.apache.commons.text</shadedPattern> |
| </relocation> |
| |
| <!-- top level net--> |
| <relocation> |
| <pattern>net/</pattern> |
| <shadedPattern>${shaded.prefix}.net.</shadedPattern> |
| </relocation> |
| |
| </relocations> |
| <transformers> |
| <!-- Need to filter out some extraneous license files. |
| Don't use the ApacheLicenseRT because it just removes all |
| META-INF/LICENSE(.txt)? files, including ours. --> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer"> |
| <resources> |
| <resource>LICENSE.txt</resource> |
| <resource>ASL2.0</resource> |
| <!-- also this unneeded doc --> |
| <resource>overview.html</resource> |
| </resources> |
| </transformer> |
| <!-- Where notices exist, just concat them --> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> |
| <addHeader>false</addHeader> |
| <projectName>${project.name}</projectName> |
| </transformer> |
| <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"> |
| </transformer> |
| </transformers> |
| <filters> |
| <!-- remove utility classes which are not required from dnsjava --> |
| <filter> |
| <artifact>dnsjava:dnsjava</artifact> |
| <excludes> |
| <exclude>dig*</exclude> |
| <exclude>jnamed*</exclude> |
| <exclude>lookup*</exclude> |
| <exclude>update*</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- this is a signed osgi bundle --> |
| <artifact>org.eclipse.jetty.orbit:javax.servlet.jsp.jstl</artifact> |
| <excludes> |
| <exclude>META-INF/ECLIPSEF.SF</exclude> |
| <exclude>META-INF/ECLIPSEF.RSA</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- Duplication of classes that ship in commons-collections 2.x and 3.x |
| If we stop bundling a relevant commons-collections artifact we'll |
| need to revisit. See: https://s.apache.org/e09o |
| --> |
| <artifact>commons-beanutils:commons-beanutils-core</artifact> |
| <excludes> |
| <exclude>org/apache/commons/collections/*.class</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- server side webapps that we don't need --> |
| <artifact>org.apache.hadoop:hadoop-yarn-common</artifact> |
| <excludes> |
| <exclude>webapps/*</exclude> |
| <exclude>webapps/**/*</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <!-- proto source files aren't needed --> |
| <exclude>*.proto</exclude> |
| <exclude>**/*.proto</exclude> |
| <!-- We already concat NOTICE, safe to drop individual ones --> |
| <exclude>LICENSE</exclude> |
| <exclude>NOTICE</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- skip french localization --> |
| <artifact>org.apache.commons:commons-math3</artifact> |
| <excludes> |
| <exclude>assets/org/apache/commons/math3/**/*</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <!-- appears to be the result of a conflict in hadoop artifacts --> |
| <artifact>org.apache.hadoop:*</artifact> |
| <excludes> |
| <exclude>mapred-default.xml.orig</exclude> |
| </excludes> |
| </filter> |
| <!-- unnecessary files that mess up our invariants check --> |
| <filter> |
| <artifact>org.eclipse.jetty:*</artifact> |
| <excludes> |
| <exclude>about.html</exclude> |
| <exclude>jetty-dir.css</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.kerby:*</artifact> |
| <excludes> |
| <exclude>krb5-template.conf</exclude> |
| <exclude>krb5_udp-template.conf</exclude> |
| <exclude>ccache.txt</exclude> |
| <exclude>keytab.txt</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| </project> |