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(