You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by sj...@apache.org on 2008/08/04 20:50:39 UTC

svn commit: r682462 - in /mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client: AsyncHttpClient.java codec/SessionCache.java

Author: sjlee
Date: Mon Aug  4 11:50:39 2008
New Revision: 682462

URL: http://svn.apache.org/viewvc?rev=682462&view=rev
Log:
ASYNCWEB-22

Honor sessionCache even if proxy is enabled.

Modified:
    mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java
    mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/codec/SessionCache.java

Modified: mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java
URL: http://svn.apache.org/viewvc/mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java?rev=682462&r1=682461&r2=682462&view=diff
==============================================================================
--- mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java (original)
+++ mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/AsyncHttpClient.java Mon Aug  4 11:50:39 2008
@@ -505,7 +505,7 @@
         // *IF* connection reuse is enabled, we should see if we have a cached 
         // connection first; if not, always open a new one
         ConnectFuture future = null;
-        if (!message.isProxyEnabled() && getSessionCache() != null) {
+        if (getSessionCache() != null) {
             future = getCachedConnection(message);
         } else {
             // add the Connection close header explicitly

Modified: mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/codec/SessionCache.java
URL: http://svn.apache.org/viewvc/mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/codec/SessionCache.java?rev=682462&r1=682461&r2=682462&view=diff
==============================================================================
--- mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/codec/SessionCache.java (original)
+++ mina/asyncweb/branches/1.0/client/src/main/java/org/apache/asyncweb/client/codec/SessionCache.java Mon Aug  4 11:50:39 2008
@@ -25,6 +25,7 @@
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ConcurrentMap;
 
+import org.apache.asyncweb.client.proxy.ProxyConfiguration;
 import org.apache.mina.common.IoSession;
 
 /**
@@ -59,7 +60,7 @@
         
         IoSession cached = null;
         while ((cached = queue.poll()) != null) {
-        	// see if the session is usable
+            // see if the session is usable
             if (cached.isConnected() && !cached.isClosing()) {
                 return cached;
             }
@@ -115,7 +116,14 @@
      * @return A String key instance for this request. 
      */
     private String getKey(HttpRequestMessage msg) {
-        return getKey(msg.getHost(), msg.getPort());
+        if (msg.isProxyEnabled()) {
+            ProxyConfiguration proxyCfg = msg.getProxyConfiguration();
+            return (msg.getProtocol().equalsIgnoreCase("https")) ?
+                    getKey(proxyCfg.getHttpsProxyHost(), proxyCfg.getHttpsProxyPort()) :
+                    getKey(proxyCfg.getHttpProxyHost(), proxyCfg.getHttpProxyPort());
+        } else {
+            return getKey(msg.getHost(), msg.getPort());
+        }
     }
     
     /**