You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/09/02 18:12:23 UTC

svn commit: r572014 - in /jakarta/httpcomponents/httpcore/trunk: ./ module-main/src/main/java/org/apache/http/protocol/ module-nio/src/main/java/org/apache/http/nio/protocol/

Author: olegk
Date: Sun Sep  2 09:12:22 2007
New Revision: 572014

URL: http://svn.apache.org/viewvc?rev=572014&view=rev
Log:
HTTPCORE-113: 
* Removed unnecessary target hostname resolution from non-blocking client protocol handlers
* Moved code populating the HTTP context with a default value based on connection properties in case the target host has not been explicitly set to the RequestTargetHost protocol interceptor

Modified:
    jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
    jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/RequestTargetHost.java
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java

Modified: jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt?rev=572014&r1=572013&r2=572014&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt (original)
+++ jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt Sun Sep  2 09:12:22 2007
@@ -1,5 +1,9 @@
 Changes since release 4.0 Alpha 5
 
+* [HTTPCORE-113] Removed unnecessary target hostname resolution from non-blocking client 
+  protocol handlers.
+  Oleg Kalnichevski <olegk at apache.org>
+
 * [HTTPCORE-108] Close all channels registered with the I/O reactor during 
   shutdown. Fixed the problem with DefaultListeningIOReactor not releasing
   socket ports until JVM is restarted.

Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/RequestTargetHost.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/RequestTargetHost.java?rev=572014&r1=572013&r2=572014&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/RequestTargetHost.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/RequestTargetHost.java Sun Sep  2 09:12:22 2007
@@ -32,9 +32,12 @@
 package org.apache.http.protocol;
 
 import java.io.IOException;
+import java.net.InetAddress;
 
+import org.apache.http.HttpConnection;
 import org.apache.http.HttpException;
 import org.apache.http.HttpHost;
+import org.apache.http.HttpInetConnection;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpRequestInterceptor;
 import org.apache.http.HttpVersion;
@@ -67,11 +70,24 @@
             HttpHost targethost = (HttpHost) context
                 .getAttribute(ExecutionContext.HTTP_TARGET_HOST);
             if (targethost == null) {
-                HttpVersion ver = request.getRequestLine().getHttpVersion();
-                if (ver.lessEquals(HttpVersion.HTTP_1_0)) {
-                    return;
-                } else {
-                    throw new ProtocolException("Target host missing");
+                HttpConnection conn = (HttpConnection) context
+                    .getAttribute(ExecutionContext.HTTP_CONNECTION);
+                if (conn instanceof HttpInetConnection) {
+                    // Populate the context with a default HTTP host based on the 
+                    // inet address of the target host
+                    InetAddress address = ((HttpInetConnection) conn).getRemoteAddress();
+                    int port = ((HttpInetConnection) conn).getRemotePort();
+                    if (address != null) {
+                        targethost = new HttpHost(address.getHostName(), port);
+                    }
+                }
+                if (targethost == null) {
+                    HttpVersion ver = request.getRequestLine().getHttpVersion();
+                    if (ver.lessEquals(HttpVersion.HTTP_1_0)) {
+                        return;
+                    } else {
+                        throw new ProtocolException("Target host missing");
+                    }
                 }
             }
             request.addHeader(HTTP.TARGET_HOST, targethost.toHostString());

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java?rev=572014&r1=572013&r2=572014&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java Sun Sep  2 09:12:22 2007
@@ -33,14 +33,11 @@
 
 import java.io.IOException;
 import java.io.OutputStream;
-import java.net.InetAddress;
 
 import org.apache.http.ConnectionReuseStrategy;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpEntityEnclosingRequest;
 import org.apache.http.HttpException;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpInetConnection;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
@@ -58,8 +55,8 @@
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpParamsLinker;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.ExecutionContext;
+import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpProcessor;
 
 /**
@@ -95,17 +92,6 @@
     public void connected(final NHttpClientConnection conn, final Object attachment) {
         HttpContext context = conn.getContext();
 
-        // Populate the context with a default HTTP host based on the 
-        // inet address of the target host
-        if (conn instanceof HttpInetConnection) {
-            InetAddress address = ((HttpInetConnection) conn).getRemoteAddress();
-            int port = ((HttpInetConnection) conn).getRemotePort();
-            if (address != null) {
-                HttpHost host = new HttpHost(address.getHostName(), port);
-                context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
-            }
-        }
-        
         initialize(conn, attachment);
         
         ClientConnState connState = new ClientConnState(allocator); 

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java?rev=572014&r1=572013&r2=572014&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/ThrottlingHttpClientHandler.java Sun Sep  2 09:12:22 2007
@@ -34,14 +34,11 @@
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.io.OutputStream;
-import java.net.InetAddress;
 
 import org.apache.http.ConnectionReuseStrategy;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpEntityEnclosingRequest;
 import org.apache.http.HttpException;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpInetConnection;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
@@ -63,8 +60,8 @@
 import org.apache.http.params.HttpParams;
 import org.apache.http.params.HttpParamsLinker;
 import org.apache.http.params.HttpProtocolParams;
-import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.ExecutionContext;
+import org.apache.http.protocol.HttpContext;
 import org.apache.http.protocol.HttpProcessor;
 import org.apache.http.util.concurrent.Executor;
 
@@ -116,17 +113,6 @@
     public void connected(final NHttpClientConnection conn, final Object attachment) {
         HttpContext context = conn.getContext();
 
-        // Populate the context with a default HTTP host based on the 
-        // inet address of the target host
-        if (conn instanceof HttpInetConnection) {
-            InetAddress address = ((HttpInetConnection) conn).getRemoteAddress();
-            int port = ((HttpInetConnection) conn).getRemotePort();
-            if (address != null) {
-                HttpHost host = new HttpHost(address.getHostName(), port);
-                context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
-            }
-        }
-        
         initialize(conn, attachment);
         
         int bufsize = this.params.getIntParameter(