Kaynağa Gözat

HADOOP-14857. Fix downstream shaded client integration test. Contributed by Sean Busbey.

Andrew Wang 7 yıl önce
ebeveyn
işleme
8277fab2be

+ 3 - 1
hadoop-client-modules/hadoop-client-integration-tests/src/test/java/org/apache/hadoop/example/ITUseMiniCluster.java

@@ -77,7 +77,9 @@ public class ITUseMiniCluster {
 
   @After
   public void clusterDown() {
-    cluster.close();
+    if (cluster != null) {
+      cluster.close();
+    }
   }
 
   @Test

+ 21 - 0
hadoop-client-modules/hadoop-client-minicluster/pom.xml

@@ -75,6 +75,9 @@
       <scope>provided</scope>
     </dependency>
  -->
+    <!-- Anything we're going to include in the relocated jar we list as optional
+         in order to work around MNG-5899
+      -->
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-minicluster</artifactId>
@@ -282,6 +285,12 @@
       </exclusions>
     </dependency>
 
+    <!-- Add back in Mockito since the hadoop-hdfs test jar needs it. -->
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <optional>true</optional>
+    </dependency>
     <!-- Add back in the transitive dependencies excluded from hadoop-common in client TODO remove once we have a filter for "is in these artifacts" -->
     <!-- skip javax.servlet:servlet-api because it's in client -->
     <!-- Skip commons-logging:commons-logging-api because it looks like nothing actually included it -->
@@ -635,6 +644,18 @@
                         <exclude>testshell/*</exclude>
                       </excludes>
                     </filter>
+                    <!-- Mockito tries to include its own unrelocated copy of hamcrest. :( -->
+                    <filter>
+                      <artifact>org.mockito:mockito-all</artifact>
+                      <excludes>
+                        <exclude>asm-license.txt</exclude>
+                        <exclude>cglib-license.txt</exclude>
+                        <exclude>hamcrest-license.txt</exclude>
+                        <exclude>objenesis-license.txt</exclude>
+                        <exclude>org/hamcrest/**/*.class</exclude>
+                        <exclude>org/hamcrest/*.class</exclude>
+                      </excludes>
+                    </filter>
                   </filters>
                   <relocations>
                     <relocation>

+ 1 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/http/HttpServer2.java

@@ -1218,6 +1218,7 @@ public final class HttpServer2 implements FilterContainer {
    * @throws Exception
    */
   void openListeners() throws Exception {
+    LOG.debug("opening listeners: {}", listeners);
     for (ServerConnector listener : listeners) {
       if (listener.getLocalPort() != -1 && listener.getLocalPort() != -2) {
         // This listener is either started externally or has been bound or was

+ 1 - 1
pom.xml

@@ -96,7 +96,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xs
     <maven-stylus-skin.version>1.5</maven-stylus-skin.version>
     <maven-antrun-plugin.version>1.7</maven-antrun-plugin.version>
     <maven-assembly-plugin.version>2.4</maven-assembly-plugin.version>
-    <maven-dependency-plugin.version>2.10</maven-dependency-plugin.version>
+    <maven-dependency-plugin.version>3.0.1</maven-dependency-plugin.version>
     <maven-enforcer-plugin.version>3.0.0-M1</maven-enforcer-plugin.version>
     <maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
     <maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>