<?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>
      <optional>true</optional>
    </dependency>
    <!-- put the log implementations to optional -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</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>
          <version>3.2.4</version>
          <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>
                    <exclude>jakarta.ws.rs:jakarta.ws.rs-api</exclude>
                    <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
                    <exclude>jakarta.validation:jakarta.validation-api</exclude>
                    <exclude>org.glassfish.hk2.external:jakarta.inject</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>org.apache.logging.log4j:*</exclude>
                    <exclude>commons-logging:*</exclude>
                    <exclude>org.javassist:*</exclude>
                    <exclude>io.opentelemetry:*</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>
                      <!-- Remove the shaded guava added in hadoop-3.3.1+-->
                      <exclude>org/apache/hadoop/thirdparty/**/*</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>
