hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r915013 - in /httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn: AbstractClientConnAdapter.java DefaultClientConnection.java
Date Mon, 22 Feb 2010 18:45:55 GMT
Author: olegk
Date: Mon Feb 22 18:45:55 2010
New Revision: 915013

URL: http://svn.apache.org/viewvc?rev=915013&view=rev
Log:
HTTPCLIENT-915: mechanism to attatch user define attributes to connections

Modified:
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/DefaultClientConnection.java

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java?rev=915013&r1=915012&r2=915013&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/AbstractClientConnAdapter.java
Mon Feb 22 18:45:55 2010
@@ -43,6 +43,7 @@
 import org.apache.http.conn.OperatedClientConnection;
 import org.apache.http.conn.ManagedClientConnection;
 import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.protocol.HttpContext;
 
 /**
  * Abstract adapter from {@link OperatedClientConnection operated} to
@@ -65,7 +66,8 @@
  *
  * @since 4.0
  */
-public abstract class AbstractClientConnAdapter implements ManagedClientConnection {
+public abstract class AbstractClientConnAdapter 
+                            implements ManagedClientConnection, HttpContext {
 
     /**
      * The connection manager, if any.
@@ -322,4 +324,32 @@
         }
     }
 
+    public synchronized Object getAttribute(final String id) {
+        OperatedClientConnection conn = getWrappedConnection();
+        assertValid(conn);
+        if (conn instanceof HttpContext) {
+            return ((HttpContext) conn).getAttribute(id);
+        } else {
+            return null;
+        }
+    }
+
+    public synchronized Object removeAttribute(final String id) {
+        OperatedClientConnection conn = getWrappedConnection();
+        assertValid(conn);
+        if (conn instanceof HttpContext) {
+            return ((HttpContext) conn).removeAttribute(id);
+        } else {
+            return null;
+        }
+    }
+
+    public synchronized void setAttribute(final String id, final Object obj) {
+        OperatedClientConnection conn = getWrappedConnection();
+        assertValid(conn);
+        if (conn instanceof HttpContext) {
+            ((HttpContext) conn).setAttribute(id, obj);
+        }
+    }
+    
 }

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/DefaultClientConnection.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/DefaultClientConnection.java?rev=915013&r1=915012&r2=915013&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/DefaultClientConnection.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/conn/DefaultClientConnection.java
Mon Feb 22 18:45:55 2010
@@ -29,6 +29,8 @@
 
 import java.io.IOException;
 import java.net.Socket;
+import java.util.HashMap;
+import java.util.Map;
 
 import org.apache.http.annotation.NotThreadSafe;
 
@@ -41,6 +43,7 @@
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpResponseFactory;
 import org.apache.http.params.HttpParams;
+import org.apache.http.protocol.HttpContext;
 import org.apache.http.impl.SocketHttpClientConnection;
 import org.apache.http.io.HttpMessageParser;
 import org.apache.http.io.SessionInputBuffer;
@@ -65,7 +68,7 @@
  */
 @NotThreadSafe // connSecure, targetHost
 public class DefaultClientConnection extends SocketHttpClientConnection
-    implements OperatedClientConnection {
+    implements OperatedClientConnection, HttpContext {
 
     private final Log log = LogFactory.getLog(getClass());
     private final Log headerLog = LogFactory.getLog("org.apache.http.headers");
@@ -83,8 +86,12 @@
     /** True if this connection was shutdown. */
     private volatile boolean shutdown;
 
+    /** connection specific attributes */
+    private final Map<String, Object> attributes;
+    
     public DefaultClientConnection() {
         super();
+        this.attributes = new HashMap<String, Object>();
     }
 
     public final HttpHost getTargetHost() {
@@ -253,4 +260,16 @@
         }
     }
 
+    public Object getAttribute(final String id) {
+        return this.attributes.get(id);
+    }
+
+    public Object removeAttribute(final String id) {
+        return this.attributes.remove(id);
+    }
+
+    public void setAttribute(final String id, final Object obj) {
+        this.attributes.put(id, obj);
+    }
+
 }



Mime
View raw message