浏览代码

MAPREDUCE-6264. Remove httpclient dependency from hadoop-mapreduce-client. Contributed by Brahma Reddy Battula.

Akira Ajisaka 10 年之前
父节点
当前提交
0d7d508c82

+ 3 - 0
hadoop-mapreduce-project/CHANGES.txt

@@ -305,6 +305,9 @@ Release 2.7.0 - UNRELEASED
     MAPREDUCE-6225. Fix new findbug warnings in hadoop-mapreduce-client-core. 
     MAPREDUCE-6225. Fix new findbug warnings in hadoop-mapreduce-client-core. 
     (Varun Saxena via junping_du)
     (Varun Saxena via junping_du)
 
 
+    MAPREDUCE-6264. Remove httpclient dependency from hadoop-mapreduce-client.
+    (Brahma Reddy Battula via aajisaka)
+
   OPTIMIZATIONS
   OPTIMIZATIONS
 
 
     MAPREDUCE-6169. MergeQueue should release reference to the current item 
     MAPREDUCE-6169. MergeQueue should release reference to the current item 

+ 1 - 1
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/webapp/TestAMWebApp.java

@@ -33,7 +33,6 @@ import javax.net.ssl.SSLException;
 
 
 import org.junit.Assert;
 import org.junit.Assert;
 
 
-import org.apache.commons.httpclient.HttpStatus;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.http.HttpConfig.Policy;
 import org.apache.hadoop.http.HttpConfig.Policy;
 import org.apache.hadoop.io.IOUtils;
 import org.apache.hadoop.io.IOUtils;
@@ -57,6 +56,7 @@ import org.apache.hadoop.yarn.server.webproxy.amfilter.AmFilterInitializer;
 import org.apache.hadoop.yarn.webapp.WebApps;
 import org.apache.hadoop.yarn.webapp.WebApps;
 import org.apache.hadoop.yarn.webapp.test.WebAppTests;
 import org.apache.hadoop.yarn.webapp.test.WebAppTests;
 import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
 import org.apache.hadoop.yarn.webapp.util.WebAppUtils;
+import org.apache.http.HttpStatus;
 import org.junit.Test;
 import org.junit.Test;
 
 
 import com.google.common.net.HttpHeaders;
 import com.google.common.net.HttpHeaders;

+ 14 - 13
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/JobEndNotifier.java

@@ -19,17 +19,19 @@
 package org.apache.hadoop.mapred;
 package org.apache.hadoop.mapred;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.concurrent.Delayed;
 import java.util.concurrent.Delayed;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeUnit;
 
 
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpMethod;
-import org.apache.commons.httpclient.URI;
-import org.apache.commons.httpclient.methods.GetMethod;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.classification.InterfaceStability;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.params.ClientPNames;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.params.CoreConnectionPNames;
 
 
 @InterfaceAudience.Private
 @InterfaceAudience.Private
 @InterfaceStability.Unstable
 @InterfaceStability.Unstable
@@ -64,15 +66,14 @@ public class JobEndNotifier {
   }
   }
 
 
   private static int httpNotification(String uri, int timeout)
   private static int httpNotification(String uri, int timeout)
-      throws IOException {
-    URI url = new URI(uri, false);
-    HttpClient httpClient = new HttpClient();
-    httpClient.getParams().setSoTimeout(timeout);
-    httpClient.getParams().setConnectionManagerTimeout(timeout);
-
-    HttpMethod method = new GetMethod(url.getEscapedURI());
-    method.setRequestHeader("Accept", "*/*");
-    return httpClient.executeMethod(method);
+      throws IOException, URISyntaxException {
+    DefaultHttpClient client = new DefaultHttpClient();
+    client.getParams()
+        .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, timeout)
+        .setLongParameter(ClientPNames.CONN_MANAGER_TIMEOUT, (long) timeout);
+    HttpGet httpGet = new HttpGet(new URI(uri));
+    httpGet.setHeader("Accept", "*/*");
+    return client.execute(httpGet).getStatusLine().getStatusCode();
   }
   }
 
 
   // for use by the LocalJobRunner, without using a thread&queue,
   // for use by the LocalJobRunner, without using a thread&queue,