<?xml version="1.0" encoding="UTF-8"?>
<!--
  #%L
  Apache Hadoop Client Runtime
  %%
  Copyright (C) 2008 - 2023 Apache Software Foundation
  %%
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  #L%
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <artifactId>hadoop-project</artifactId>
    <groupId>org.apache.hadoop</groupId>
    <version>3.3.6</version>
    <relativePath>../../hadoop-project/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>hadoop-client-runtime</artifactId>
  <name>Apache Hadoop Client Runtime</name>
  <version>3.3.6</version>
  <description>Apache Hadoop Client</description>
  <profiles>
    <profile>
      <id>shade</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.3</version>
            <executions>
              <execution>
                <id>hadoop-java-sources</id>
                <phase>package</phase>
                <goals>
                  <goal>jar-no-fork</goal>
                  <goal>test-jar-no-fork</goal>
                </goals>
                <configuration>
                  <skipSource>true</skipSource>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <skipSource>true</skipSource>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.1</version>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>shade</goal>
                </goals>
                <configuration>
                  <artifactSet>
                    <excludes>
                      <exclude>org.apache.hadoop:hadoop-client-api</exclude>
                      <exclude>org.slf4j:slf4j-api</exclude>
                      <exclude>commons-logging:commons-logging</exclude>
                      <exclude>ch.qos.reload4j:reload4j</exclude>
                      <exclude>com.google.code.findbugs:jsr305</exclude>
                      <exclude>io.dropwizard.metrics:metrics-core</exclude>
                      <exclude>org.eclipse.jetty:jetty-servlet</exclude>
                      <exclude>org.eclipse.jetty:jetty-security</exclude>
                      <exclude>org.ow2.asm:*</exclude>
                      <exclude>org.bouncycastle:*</exclude>
                      <exclude>org.xerial.snappy:*</exclude>
                    </excludes>
                  </artifactSet>
                  <filters>
                    <filter>
                      <artifact>org.apache.hadoop:*</artifact>
                      <excludes>
                        <exclude>**/*</exclude>
                        <exclude>*</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>*:*</artifact>
                      <excludes>
                        <exclude>**/*.java</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>tomcat:jasper-compiler</artifact>
                      <excludes>
                        <exclude>org/apache/jasper/compiler/Localizer.class</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>com.sun.jersey:*</artifact>
                      <excludes>
                        <exclude>META-INF/services/javax.*</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.apache.commons:commons-math3</artifact>
                      <excludes>
                        <exclude>assets/org/apache/commons/math3/**/*</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.eclipse.jetty:*</artifact>
                      <excludes>
                        <exclude>about.html</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.eclipse.jetty.websocket:*</artifact>
                      <excludes>
                        <exclude>about.html</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>org.apache.kerby:kerb-util</artifact>
                      <excludes>
                        <exclude>keytab.txt</exclude>
                        <exclude>ccache.txt</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>dnsjava:dnsjava</artifact>
                      <excludes>
                        <exclude>dig*</exclude>
                        <exclude>jnamed*</exclude>
                        <exclude>lookup*</exclude>
                        <exclude>update*</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>com.google.protobuf:protobuf-java</artifact>
                      <excludes>
                        <exclude>google/protobuf/*.proto</exclude>
                        <exclude>google/protobuf/**/*.proto</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>com.fasterxml.jackson.*:*</artifact>
                      <excludes>
                        <exclude>META-INF/versions/9/module-info.class</exclude>
                      </excludes>
                    </filter>
                    <filter>
                      <artifact>com.google.code.gson:gson</artifact>
                      <excludes>
                        <exclude>META-INF/versions/9/module-info.class</exclude>
                      </excludes>
                    </filter>
                  </filters>
                  <relocations>
                    <relocation>
                      <pattern>org/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.org.</shadedPattern>
                      <excludes>
                        <exclude>org/apache/hadoop/*</exclude>
                        <exclude>org/apache/hadoop/**/*</exclude>
                        <exclude>org/slf4j/*</exclude>
                        <exclude>org/slf4j/**/*</exclude>
                        <exclude>org/apache/commons/logging/*</exclude>
                        <exclude>org/apache/commons/logging/**/*</exclude>
                        <exclude>org/apache/log4j/*</exclude>
                        <exclude>org/apache/log4j/**/*</exclude>
                        <exclude>**/pom.xml</exclude>
                        <exclude>org/ietf/jgss/*</exclude>
                        <exclude>org/omg/**/*</exclude>
                        <exclude>org/w3c/dom/*</exclude>
                        <exclude>org/w3c/dom/**/*</exclude>
                        <exclude>org/xml/sax/*</exclude>
                        <exclude>org/xml/sax/**/*</exclude>
                        <exclude>org/bouncycastle/*</exclude>
                        <exclude>org/bouncycastle/**/*</exclude>
                        <exclude>org/xerial/snappy/*</exclude>
                        <exclude>org/xerial/snappy/**/*</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>com/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.com.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                        <exclude>com/sun/tools/*</exclude>
                        <exclude>com/sun/javadoc/*</exclude>
                        <exclude>com/sun/security/*</exclude>
                        <exclude>com/sun/jndi/*</exclude>
                        <exclude>com/sun/management/*</exclude>
                        <exclude>com/sun/tools/**/*</exclude>
                        <exclude>com/sun/javadoc/**/*</exclude>
                        <exclude>com/sun/security/**/*</exclude>
                        <exclude>com/sun/jndi/**/*</exclude>
                        <exclude>com/sun/management/**/*</exclude>
                        <exclude>com/ibm/security/*</exclude>
                        <exclude>com/ibm/security/**/*</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>io/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.io.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                        <exclude>io/compression/*</exclude>
                        <exclude>io/compression/**/*</exclude>
                        <exclude>io/mapfile/*</exclude>
                        <exclude>io/mapfile/**/*</exclude>
                        <exclude>io/map/index/*</exclude>
                        <exclude>io/seqfile/*</exclude>
                        <exclude>io/seqfile/**/*</exclude>
                        <exclude>io/file/buffer/size</exclude>
                        <exclude>io/skip/checksum/errors</exclude>
                        <exclude>io/sort/*</exclude>
                        <exclude>io/serializations</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/el/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.el.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/cache/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.cache.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/servlet/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.servlet.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/activation/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.activation.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/ws/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.ws.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>javax/xml/bind/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.javax.xml.bind.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>net/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.net.</shadedPattern>
                      <excludes>
                        <exclude>**/pom.xml</exclude>
                        <exclude>net/topology/*</exclude>
                        <exclude>net/topology/**/*</exclude>
                        <exclude>net/jpountz/*</exclude>
                        <exclude>net/jpountz/**/*</exclude>
                      </excludes>
                    </relocation>
                    <relocation>
                      <pattern>okio/</pattern>
                      <shadedPattern>org.apache.hadoop.shaded.okio.</shadedPattern>
                    </relocation>
                  </relocations>
                  <transformers>
                    <transformer />
                    <transformer />
                    <transformer>
                      <resources>
                        <resource>NOTICE.txt</resource>
                        <resource>NOTICE</resource>
                        <resource>LICENSE</resource>
                      </resources>
                    </transformer>
                    <transformer>
                      <resource>META-INF/LICENSE.txt</resource>
                      <file>/build/source/hadoop-client-modules/hadoop-client-runtime/../../LICENSE.txt</file>
                    </transformer>
                    <transformer>
                      <resource>META-INF/NOTICE.txt</resource>
                      <file>/build/source/hadoop-client-modules/hadoop-client-runtime/../../NOTICE.txt</file>
                    </transformer>
                    <transformer>
                      <resource>META-INF/jboss-beans.xml</resource>
                    </transformer>
                    <transformer>
                      <resource>META-INF/mailcap.default</resource>
                    </transformer>
                    <transformer>
                      <resource>META-INF/mimetypes.default</resource>
                    </transformer>
                  </transformers>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-maven-plugins</artifactId>
                <version>3.3.6</version>
                <scope>compile</scope>
              </dependency>
            </dependencies>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <version>1.10</version>
            <executions>
              <execution>
                <id>update-pom-license</id>
                <phase>package</phase>
                <goals>
                  <goal>update-file-header</goal>
                </goals>
                <configuration>
                  <licenseName>apache_v2</licenseName>
                  <includes>
                    <include>dependency-reduced-pom.xml</include>
                  </includes>
                  <canUpdateCopyright>false</canUpdateCopyright>
                  <roots>
                    <root>/build/source/hadoop-client-modules/hadoop-client-runtime</root>
                  </roots>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <canUpdateCopyright>false</canUpdateCopyright>
              <roots>
                <root>/build/source/hadoop-client-modules/hadoop-client-runtime</root>
              </roots>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <os.detected.bitness>64</os.detected.bitness>
        <os.detected.release.version>18.04</os.detected.release.version>
        <os.detected.release.like.ubuntu>true</os.detected.release.like.ubuntu>
        <os.detected.release>ubuntu</os.detected.release>
        <os.detected.name>linux</os.detected.name>
        <os.detected.release.like.debian>true</os.detected.release.like.debian>
        <os.detected.classifier>linux-x86_64</os.detected.classifier>
        <os.detected.arch>x86_64</os.detected.arch>
      </properties>
    </profile>
    <profile>
      <id>noshade</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
              <skipSource>true</skipSource>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client-api</artifactId>
      <version>3.3.6</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.xerial.snappy</groupId>
      <artifactId>snappy-java</artifactId>
      <version>1.1.8.2</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.36</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.3</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <artifactId>avalon-framework</artifactId>
          <groupId>avalon-framework</groupId>
        </exclusion>
        <exclusion>
          <artifactId>logkit</artifactId>
          <groupId>logkit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>javax.servlet-api</artifactId>
          <groupId>javax.servlet</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.2</version>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>ch.qos.reload4j</groupId>
      <artifactId>reload4j</artifactId>
      <version>1.2.22</version>
      <scope>runtime</scope>
      <exclusions>
        <exclusion>
          <artifactId>jmxtools</artifactId>
          <groupId>com.sun.jdmk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jmxri</artifactId>
          <groupId>com.sun.jmx</groupId>
        </exclusion>
        <exclusion>
          <artifactId>mail</artifactId>
          <groupId>javax.mail</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jmx</artifactId>
          <groupId>javax.jms</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jms</artifactId>
          <groupId>javax.jms</groupId>
        </exclusion>
      </exclusions>
      <optional>true</optional>
    </dependency>
  </dependencies>
  <properties>
    <maven.javadoc.skip>true</maven.javadoc.skip>
    <shaded.dependency.prefix>org.apache.hadoop.shaded</shaded.dependency.prefix>
  </properties>
</project>
