You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ha...@apache.org on 2017/09/15 16:56:19 UTC
[09/50] [abbrv] hadoop git commit: HADOOP-14089. Automated checking
for malformed client. Contributed by Sean Busbey.
HADOOP-14089. Automated checking for malformed client. Contributed by Sean Busbey.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c3f35c42
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c3f35c42
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c3f35c42
Branch: refs/heads/YARN-1011
Commit: c3f35c422bbb7fe9c8e6509063896de549b127d1
Parents: bb34ae9
Author: Andrew Wang <wa...@apache.org>
Authored: Wed Sep 13 16:57:50 2017 -0700
Committer: Andrew Wang <wa...@apache.org>
Committed: Wed Sep 13 16:57:50 2017 -0700
----------------------------------------------------------------------
hadoop-client-modules/hadoop-client-api/pom.xml | 27 +++++++
.../hadoop-client-check-invariants/pom.xml | 74 +++++++++++++++++-
.../ensure-jars-have-correct-contents.sh | 82 ++++++++++++++++++++
.../hadoop-client-check-test-invariants/pom.xml | 76 +++++++++++++++++-
.../ensure-jars-have-correct-contents.sh | 70 +++++++++++++++++
.../hadoop-client-minicluster/pom.xml | 61 +++++++++++++--
.../hadoop-client-runtime/pom.xml | 50 ++++++++++++
.../hadoop-mapreduce-client-shuffle/pom.xml | 7 ++
8 files changed, 438 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-api/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-api/pom.xml b/hadoop-client-modules/hadoop-client-api/pom.xml
index a50ffed..edbddc9 100644
--- a/hadoop-client-modules/hadoop-client-api/pom.xml
+++ b/hadoop-client-modules/hadoop-client-api/pom.xml
@@ -182,6 +182,21 @@
<exclude>io/serializations</exclude>
</excludes>
</relocation>
+ <!-- JSRs that haven't made it to inclusion in J2SE -->
+ <relocation>
+ <pattern>javax/el/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.el.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
+ <pattern>javax/cache/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.cache.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
<relocation>
<pattern>javax/servlet/</pattern>
<shadedPattern>${shaded.dependency.prefix}.javax.servlet.</shadedPattern>
@@ -190,6 +205,13 @@
</excludes>
</relocation>
<relocation>
+ <pattern>javax/ws/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.ws.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
<pattern>net/</pattern>
<shadedPattern>${shaded.dependency.prefix}.net.</shadedPattern>
<excludes>
@@ -199,6 +221,11 @@
<exclude>net/topology/**/*</exclude>
</excludes>
</relocation>
+ <!-- okio declares a top level package instead of nested -->
+ <relocation>
+ <pattern>okio/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.okio.</shadedPattern>
+ </relocation>
</relocations>
<transformers>
<!-- Needed until MSHADE-182 -->
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-check-invariants/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-check-invariants/pom.xml b/hadoop-client-modules/hadoop-client-check-invariants/pom.xml
index 75f4d19..c6a8552 100644
--- a/hadoop-client-modules/hadoop-client-check-invariants/pom.xml
+++ b/hadoop-client-modules/hadoop-client-check-invariants/pom.xml
@@ -25,7 +25,13 @@
<version>3.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
- <description>Enforces our invariants for the api and runtime client modules.</description>
+ <description>
+ Enforces our invariants for the api and runtime client modules.
+ E.g. that modules have a specific set of transitive dependencies
+ and shaded artifacts only contain classes that are in particular
+ packages. Does the enforcement through the maven-enforcer-plugin
+ and an integration test.
+ </description>
<name>Apache Hadoop Client Packaging Invariants</name>
<properties>
@@ -82,6 +88,8 @@
<exclude>commons-logging:commons-logging</exclude>
<!-- Leave log4j unshaded so downstream users can configure logging. -->
<exclude>log4j:log4j</exclude>
+ <!-- Leave javax annotations we need exposed -->
+ <exclude>com.google.code.findbugs:jsr305</exclude>
</excludes>
</banTransitiveDependencies>
<banDuplicateClasses>
@@ -97,7 +105,6 @@
</dependencies>
</banDuplicateClasses>
</rules>
-<!-- TODO we need a rule for "we don't have classes that are outside of the org.apache.hadoop package" -->
<!-- TODO we need a rule for "the constants in this set of classes haven't been shaded / don't have this prefix"
Manually checking the set of Keys that look like packages we relocate:
@@ -116,6 +123,69 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>test-resources</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>testResources</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <!-- create a maven pom property that has all of our dependencies.
+ below in the integration-test phase we'll pass this list
+ of paths to our jar checker script.
+ -->
+ <execution>
+ <id>put-client-artifacts-in-a-property</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>build-classpath</goal>
+ </goals>
+ <configuration>
+ <excludeTransitive>true</excludeTransitive>
+ <outputProperty>hadoop-client-artifacts</outputProperty>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ Check that we actually relocated everything we included.
+ It's critical that we don't ship third party dependencies that haven't
+ been relocated under our pacakge space, since this will lead to
+ difficult to debug classpath errors for downstream. Unfortunately, that
+ means inspecting all the jars.
+ -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>check-jar-contents</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${shell-executable}</executable>
+ <workingDirectory>${project.build.testOutputDirectory}</workingDirectory>
+ <requiresOnline>false</requiresOnline>
+ <arguments>
+ <argument>ensure-jars-have-correct-contents.sh</argument>
+ <argument>${hadoop-client-artifacts}</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-check-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-check-invariants/src/test/resources/ensure-jars-have-correct-contents.sh b/hadoop-client-modules/hadoop-client-check-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
new file mode 100644
index 0000000..84efe7e
--- /dev/null
+++ b/hadoop-client-modules/hadoop-client-check-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+# 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.
+
+# Usage: $0 [/path/to/some/example.jar:/path/to/another/example/created.jar]
+#
+# accepts a single command line argument with a colon separated list of
+# paths to jars to check. Iterates through each such passed jar and checks
+# all the contained paths to make sure they follow the below constructed
+# safe list.
+
+# we have to allow the directories that lead to the org/apache/hadoop dir
+allowed_expr="(^org/$|^org/apache/$"
+# We allow the following things to exist in our client artifacts:
+# * classes in packages that start with org.apache.hadoop, which by
+# convention should be in a path that looks like org/apache/hadoop
+allowed_expr+="|^org/apache/hadoop/"
+# * whatever in the "META-INF" directory
+allowed_expr+="|^META-INF/"
+# * whatever under the "webapps" directory; for things shipped by yarn
+allowed_expr+="|^webapps/"
+# * Hadoop's default configuration files, which have the form
+# "_module_-default.xml"
+allowed_expr+="|^[^-]*-default.xml$"
+# * Hadoop's versioning properties files, which have the form
+# "_module_-version-info.properties"
+allowed_expr+="|^[^-]*-version-info.properties$"
+# * Hadoop's application classloader properties file.
+allowed_expr+="|^org.apache.hadoop.application-classloader.properties$"
+# public suffix list used by httpcomponents
+allowed_expr+="|^mozilla/$"
+allowed_expr+="|^mozilla/public-suffix-list.txt$"
+# Comes from commons-configuration, not sure if relocatable.
+allowed_expr+="|^properties.dtd$"
+allowed_expr+="|^PropertyList-1.0.dtd$"
+# Comes from Ehcache, not relocatable at top level due to limitation
+# of shade plugin AFAICT
+allowed_expr+="|^ehcache-core.xsd$"
+allowed_expr+="|^ehcache-107ext.xsd$"
+# Comes from kerby's kerb-simplekdc, not relocatable since at top level
+allowed_expr+="|^krb5-template.conf$"
+allowed_expr+="|^krb5_udp-template.conf$"
+# Jetty uses this style sheet for directory listings. TODO ensure our
+# internal use of jetty disallows directory listings and remove this.
+allowed_expr+="|^jetty-dir.css$"
+
+allowed_expr+=")"
+declare -i bad_artifacts=0
+declare -a bad_contents
+IFS=: read -r -d '' -a artifact_list < <(printf '%s\0' "$1")
+for artifact in "${artifact_list[@]}"; do
+ bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}"))
+ if [ ${#bad_contents[@]} -gt 0 ]; then
+ echo "[ERROR] Found artifact with unexpected contents: '${artifact}'"
+ echo " Please check the following and either correct the build or update"
+ echo " the allowed list with reasoning."
+ echo ""
+ for bad_line in "${bad_contents[@]}"; do
+ echo " ${bad_line}"
+ done
+ bad_artifacts=${bad_artifacts}+1
+ else
+ echo "[INFO] Artifact looks correct: '$(basename "${artifact}")'"
+ fi
+done
+
+if [ "${bad_artifacts}" -gt 0 ]; then
+ exit 1
+fi
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-check-test-invariants/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-check-test-invariants/pom.xml b/hadoop-client-modules/hadoop-client-check-test-invariants/pom.xml
index d0d0712..691b545 100644
--- a/hadoop-client-modules/hadoop-client-check-test-invariants/pom.xml
+++ b/hadoop-client-modules/hadoop-client-check-test-invariants/pom.xml
@@ -25,7 +25,13 @@
<version>3.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
- <description>Enforces our invariants for the testing client modules.</description>
+ <description>
+ Enforces our invariants for the test client modules.
+ E.g. that modules have a specific set of transitive dependencies
+ and shaded artifacts only contain classes that are in particular
+ packages. Does the enforcement through the maven-enforcer-plugin
+ and an integration test.
+ </description>
<name>Apache Hadoop Client Packaging Invariants for Test</name>
<properties>
@@ -90,6 +96,8 @@
<exclude>junit:junit</exclude>
<!-- JUnit brings in hamcrest -->
<exclude> org.hamcrest:hamcrest-core</exclude>
+ <!-- Leave javax annotations we need exposed -->
+ <exclude>com.google.code.findbugs:jsr305</exclude>
</excludes>
</banTransitiveDependencies>
<banDuplicateClasses>
@@ -105,7 +113,6 @@
</dependencies>
</banDuplicateClasses>
</rules>
-<!-- TODO we need a rule for "we don't have classes that are outside of the org.apache.hadoop package" -->
<!-- TODO we need a rule for "the constants in this set of classes haven't been shaded / don't have this prefix"
Manually checking the set of Keys that look like packages we relocate:
@@ -124,6 +131,71 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>test-resources</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>testResources</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- create a maven pom property that has all of our dependencies.
+ below in the integration-test phase we'll pass this list
+ of paths to our jar checker script.
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>put-client-artifacts-in-a-property</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>build-classpath</goal>
+ </goals>
+ <configuration>
+ <!-- these two get covered in our non-test invariant check -->
+ <excludeArtifactIds>hadoop-client-api,hadoop-client-runtime</excludeArtifactIds>
+ <excludeTransitive>true</excludeTransitive>
+ <outputProperty>hadoop-client-artifacts</outputProperty>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ Check that we actually relocated everything we included.
+ It's critical that we don't ship third party dependencies that haven't
+ been relocated under our pacakge space, since this will lead to
+ difficult to debug classpath errors for downstream. Unfortunately, that
+ means inspecting all the jars.
+ -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>check-jar-contents</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>${shell-executable}</executable>
+ <workingDirectory>${project.build.testOutputDirectory}</workingDirectory>
+ <requiresOnline>false</requiresOnline>
+ <arguments>
+ <argument>ensure-jars-have-correct-contents.sh</argument>
+ <argument>${hadoop-client-artifacts}</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-check-test-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-check-test-invariants/src/test/resources/ensure-jars-have-correct-contents.sh b/hadoop-client-modules/hadoop-client-check-test-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
new file mode 100644
index 0000000..fb9f4f9
--- /dev/null
+++ b/hadoop-client-modules/hadoop-client-check-test-invariants/src/test/resources/ensure-jars-have-correct-contents.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+# 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.
+
+# Usage: $0 [/path/to/some/example.jar:/path/to/another/example/created.jar]
+#
+# accepts a single command line argument with a colon separated list of
+# paths to jars to check. Iterates through each such passed jar and checks
+# all the contained paths to make sure they follow the below constructed
+# safe list.
+
+# we have to allow the directories that lead to the org/apache/hadoop dir
+allowed_expr="(^org/$|^org/apache/$"
+# We allow the following things to exist in our client artifacts:
+# * classes in packages that start with org.apache.hadoop, which by
+# convention should be in a path that looks like org/apache/hadoop
+allowed_expr+="|^org/apache/hadoop/"
+# * whatever in the "META-INF" directory
+allowed_expr+="|^META-INF/"
+# * whatever under the "webapps" directory; for minicluster UIs
+allowed_expr+="|^webapps/"
+# * Hadoop's default configuration files, which have the form
+# "_module_-default.xml"
+allowed_expr+="|^[^-]*-default.xml$"
+# * Hadoop's versioning properties files, which have the form
+# "_module_-version-info.properties"
+allowed_expr+="|^[^-]*-version-info.properties$"
+# * Hadoop's application classloader properties file.
+allowed_expr+="|^org.apache.hadoop.application-classloader.properties$"
+# * Used by JavaSandboxLinuxContainerRuntime as a default, loaded
+# from root, so can't relocate. :(
+allowed_expr+="|^java.policy$"
+
+
+allowed_expr+=")"
+declare -i bad_artifacts=0
+declare -a bad_contents
+IFS=: read -r -d '' -a artifact_list < <(printf '%s\0' "$1")
+for artifact in "${artifact_list[@]}"; do
+ bad_contents=($(jar tf "${artifact}" | grep -v -E "${allowed_expr}"))
+ if [ ${#bad_contents[@]} -gt 0 ]; then
+ echo "[ERROR] Found artifact with unexpected contents: '${artifact}'"
+ echo " Please check the following and either correct the build or update"
+ echo " the allowed list with reasoning."
+ echo ""
+ for bad_line in "${bad_contents[@]}"; do
+ echo " ${bad_line}"
+ done
+ bad_artifacts=${bad_artifacts}+1
+ else
+ echo "[INFO] Artifact looks correct: '$(basename "${artifact}")'"
+ fi
+done
+
+if [ "${bad_artifacts}" -gt 0 ]; then
+ exit 1
+fi
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-minicluster/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-minicluster/pom.xml b/hadoop-client-modules/hadoop-client-minicluster/pom.xml
index 681cb1c..0c87866 100644
--- a/hadoop-client-modules/hadoop-client-minicluster/pom.xml
+++ b/hadoop-client-modules/hadoop-client-minicluster/pom.xml
@@ -348,11 +348,6 @@
<artifactId>jersey-servlet</artifactId>
<optional>true</optional>
</dependency>
- <dependency>
- <groupId>org.eclipse.jdt</groupId>
- <artifactId>core</artifactId>
- <optional>true</optional>
- </dependency>
<!-- skip org.apache.avro:avro-ipc because it doesn't look like hadoop-common actually uses it -->
<dependency>
<groupId>net.sf.kosmosfs</groupId>
@@ -595,6 +590,7 @@
<exclude>org.slf4j:slf4j-api</exclude>
<exclude>commons-logging:commons-logging</exclude>
<exclude>junit:junit</exclude>
+ <exclude>com.google.code.findbugs:jsr305</exclude>
<!-- Keep optional runtime deps out of the shading -->
<exclude>org.apache.hadoop:hadoop-yarn-server-timelineservice</exclude>
<exclude>log4j:log4j</exclude>
@@ -656,6 +652,41 @@
<exclude>org/hamcrest/*.class</exclude>
</excludes>
</filter>
+ <!-- skip grizzly internals we don't need to run. -->
+ <filter>
+ <artifact>org.glassfish.grizzly:grizzly-http-servlet</artifact>
+ <excludes>
+ <exclude>catalog.cat</exclude>
+ <exclude>javaee_5.xsd</exclude>
+ <exclude>javaee_6.xsd</exclude>
+ <exclude>javaee_web_services_client_1_2.xsd</exclude>
+ <exclude>javaee_web_services_client_1_3.xsd</exclude>
+ <exclude>jsp_2_1.xsd</exclude>
+ <exclude>jsp_2_2.xsd</exclude>
+ <exclude>web-app_2_5.xsd</exclude>
+ <exclude>web-app_3_0.xsd</exclude>
+ <exclude>web-common_3_0.xsd</exclude>
+ <exclude>xml.xsd</exclude>
+ </excludes>
+ </filter>
+ <filter>
+ <!-- skip jetty license info already incorporated into LICENSE/NOTICE -->
+ <artifact>org.eclipse.jetty:*</artifact>
+ <excludes>
+ <exclude>about.html</exclude>
+ </excludes>
+ </filter>
+ <filter>
+ <artifact>org.apache.hadoop:*</artifact>
+ <excludes>
+ <!-- No shipping log4j configs in a downstream facing library -->
+ <exclude>log4j.properties</exclude>
+ <exclude>container-log4j.properties</exclude>
+ <!-- keep optional runtime configuration out of the jar; downstream can provide -->
+ <exclude>capacity-scheduler.xml</exclude>
+ <exclude>krb5.conf</exclude>
+ </excludes>
+ </filter>
</filters>
<relocations>
<relocation>
@@ -738,6 +769,7 @@
<exclude>**/pom.xml</exclude>
</excludes>
</relocation>
+ <!-- JSRs that haven't made it to inclusion in J2SE -->
<relocation>
<pattern>javax/el/</pattern>
<shadedPattern>${shaded.dependency.prefix}.javax.el.</shadedPattern>
@@ -746,6 +778,13 @@
</excludes>
</relocation>
<relocation>
+ <pattern>javax/cache/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.cache.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
<pattern>javax/inject/</pattern>
<shadedPattern>${shaded.dependency.prefix}.javax.inject.</shadedPattern>
<excludes>
@@ -760,6 +799,13 @@
</excludes>
</relocation>
<relocation>
+ <pattern>javax/ws/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.ws.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
<pattern>jersey/</pattern>
<shadedPattern>${shaded.dependency.prefix}.jersey.</shadedPattern>
<excludes>
@@ -776,6 +822,11 @@
<exclude>net/topology/**/*</exclude>
</excludes>
</relocation>
+ <!-- okio declares a top level package instead of nested -->
+ <relocation>
+ <pattern>okio/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.okio.</shadedPattern>
+ </relocation>
</relocations>
<transformers>
<!-- Needed until MSHADE-182 -->
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-client-modules/hadoop-client-runtime/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-client-modules/hadoop-client-runtime/pom.xml b/hadoop-client-modules/hadoop-client-runtime/pom.xml
index 6879a23..7ed5ba7 100644
--- a/hadoop-client-modules/hadoop-client-runtime/pom.xml
+++ b/hadoop-client-modules/hadoop-client-runtime/pom.xml
@@ -94,6 +94,11 @@
<artifactId>commons-logging</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <scope>runtime</scope>
+ </dependency>
<!-- Move log4j to optional, since it is needed for some pieces folks might not use:
* one of the three custom log4j appenders we have
-->
@@ -149,6 +154,9 @@
<exclude>commons-logging:commons-logging</exclude>
<!-- Leave log4j unshaded so downstream users can configure logging. -->
<exclude>log4j:log4j</exclude>
+ <!-- Leave javax APIs that are stable -->
+ <!-- the jdk ships part of the javax.annotation namespace, so if we want to relocate this we'll have to care it out by class :( -->
+ <exclude>com.google.code.findbugs:jsr305</exclude>
</excludes>
</artifactSet>
<filters>
@@ -181,6 +189,28 @@
<exclude>META-INF/services/javax.*</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>
+ <!-- skip jetty license info already incorporated into LICENSE/NOTICE -->
+ <artifact>org.eclipse.jetty:*</artifact>
+ <excludes>
+ <exclude>about.html</exclude>
+ </excludes>
+ </filter>
+ <filter>
+ <!-- skip docs on formats used in kerby -->
+ <artifact>org.apache.kerby:kerb-util</artifact>
+ <excludes>
+ <exclude>keytab.txt</exclude>
+ <exclude>ccache.txt</exclude>
+ </excludes>
+ </filter>
</filters>
<relocations>
<relocation>
@@ -245,6 +275,7 @@
<exclude>io/serializations</exclude>
</excludes>
</relocation>
+ <!-- JSRs that haven't made it to inclusion in J2SE -->
<relocation>
<pattern>javax/el/</pattern>
<shadedPattern>${shaded.dependency.prefix}.javax.el.</shadedPattern>
@@ -253,6 +284,13 @@
</excludes>
</relocation>
<relocation>
+ <pattern>javax/cache/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.cache.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
<pattern>javax/servlet/</pattern>
<shadedPattern>${shaded.dependency.prefix}.javax.servlet.</shadedPattern>
<excludes>
@@ -260,6 +298,13 @@
</excludes>
</relocation>
<relocation>
+ <pattern>javax/ws/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.javax.ws.</shadedPattern>
+ <excludes>
+ <exclude>**/pom.xml</exclude>
+ </excludes>
+ </relocation>
+ <relocation>
<pattern>net/</pattern>
<shadedPattern>${shaded.dependency.prefix}.net.</shadedPattern>
<excludes>
@@ -269,6 +314,11 @@
<exclude>net/topology/**/*</exclude>
</excludes>
</relocation>
+ <!-- okio declares a top level package instead of nested -->
+ <relocation>
+ <pattern>okio/</pattern>
+ <shadedPattern>${shaded.dependency.prefix}.okio.</shadedPattern>
+ </relocation>
<!-- probably not. -->
<!--
<relocation>
http://git-wip-us.apache.org/repos/asf/hadoop/blob/c3f35c42/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle/pom.xml b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle/pom.xml
index 77bfe0a..7fc68f0 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle/pom.xml
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-shuffle/pom.xml
@@ -35,6 +35,13 @@
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-common</artifactId>
+ <!-- Not needed for client side -->
+ <exclusions>
+ <exclusion>
+ <groupId>com.microsoft.sqlserver</groupId>
+ <artifactId>mssql-jdbc</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org