You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ro...@apache.org on 2007/02/25 11:56:39 UTC
svn commit: r511479 - in /jakarta/httpcomponents/httpclient/trunk/src:
examples/org/apache/http/examples/client/ java/org/apache/http/impl/conn/
Author: rolandw
Date: Sun Feb 25 02:56:38 2007
New Revision: 511479
URL: http://svn.apache.org/viewvc?view=rev&rev=511479
Log:
TSCCM uses pooled connection adapter
Modified:
jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java
jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java
jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPoolEntry.java
jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/ThreadSafeClientConnManager.java
Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java?view=diff&rev=511479&r1=511478&r2=511479
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteDirect.java Sun Feb 25 02:56:38 2007
@@ -55,7 +55,7 @@
import org.apache.http.conn.SocketFactory;
import org.apache.http.conn.PlainSocketFactory;
import org.apache.http.conn.ClientConnectionManager;
-//import org.apache.http.impl.conn.SimpleClientConnManager;
+//import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.impl.conn.ThreadSafeClientConnManager;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
@@ -138,7 +138,7 @@
ClientConnectionManager ccm =
new ThreadSafeClientConnManager(getParams(), supportedSchemes);
- // new SimpleClientConnManager(getParams(), supportedSchemes);
+ // new SingleClientConnManager(getParams(), supportedSchemes);
DefaultHttpClient dhc =
new DefaultHttpClient(getParams(), ccm, supportedSchemes);
Modified: jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java?view=diff&rev=511479&r1=511478&r2=511479
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/examples/org/apache/http/examples/client/ClientExecuteProxy.java Sun Feb 25 02:56:38 2007
@@ -57,7 +57,7 @@
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.HttpRoute;
-//import org.apache.http.impl.conn.SimpleClientConnManager;
+//import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.impl.conn.ThreadSafeClientConnManager;
import org.apache.http.client.HttpClient;
import org.apache.http.client.RoutedRequest;
@@ -150,7 +150,7 @@
ClientConnectionManager ccm =
new ThreadSafeClientConnManager(getParams(), supportedSchemes);
- // new SimpleClientConnManager(getParams(), supportedSchemes);
+ // new SingleClientConnManager(getParams(), supportedSchemes);
DefaultHttpClient dhc =
new DefaultHttpClient(getParams(), ccm, supportedSchemes);
Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPoolEntry.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPoolEntry.java?view=diff&rev=511479&r1=511478&r2=511479
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPoolEntry.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPoolEntry.java Sun Feb 25 02:56:38 2007
@@ -46,7 +46,7 @@
/**
* A pool entry for use by connection manager implementations.
* Pool entries work in conjunction with an
- * {@link AbstractClientConnectionAdapter adapter}.
+ * {@link AbstractClientConnAdapter adapter}.
* The adapter is handed out to applications that obtain a connection.
* The pool entry stores the underlying connection and tracks the
* {@link HttpRoute route} established.
@@ -182,7 +182,7 @@
("Connection is already tunnelled.");
}
- // LOG.debug
+ // LOG.debug?
this.connection.update(null, tracker.getTargetHost(),
secure, params);
Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java?view=diff&rev=511479&r1=511478&r2=511479
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/AbstractPooledConnAdapter.java Sun Feb 25 02:56:38 2007
@@ -42,7 +42,8 @@
/**
* Abstract adapter from pool {@link AbstractPoolEntry entries} to
- * {@link ManagedClientConnection managed} client connections.
+ * {@link org.apache.http.conn.ManagedClientConnection managed}
+ * client connections.
* The connection in the pool entry is used to initialize the base class.
* In addition, methods to establish a route are delegated to the
* pool entry. {@link #shutdown shutdown} and {@link #close close}
@@ -69,18 +70,10 @@
*
* @param manager the connection manager
* @param entry the pool entry for the connection being wrapped
- * <!--
- * @ param plan the planned route, which will be used
- * to update the pool entry
- * -->
*/
protected AbstractPooledConnAdapter(ClientConnectionManager manager,
- AbstractPoolEntry entry
- //, HttpRoute plan
- ) {
+ AbstractPoolEntry entry) {
super(manager, entry.connection);
-
- //entry.plannedRoute = plan;
this.poolEntry = entry;
}
Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/ThreadSafeClientConnManager.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/ThreadSafeClientConnManager.java?view=diff&rev=511479&r1=511478&r2=511479
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/ThreadSafeClientConnManager.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/impl/conn/ThreadSafeClientConnManager.java Sun Feb 25 02:56:38 2007
@@ -349,7 +349,9 @@
"connection not obtained from this manager.");
}
HttpConnectionAdapter hca = (HttpConnectionAdapter) conn;
- if ((hca.poolEntry != null) && (hca.poolEntry.manager != this)) {
+ if ((hca.poolEntry != null) &&
+ //@@@ (hca.poolEntry.manager != this) &&
+ (hca.connManager != this)) {
throw new IllegalArgumentException
("Connection not obtained from this manager.");
}
@@ -366,11 +368,9 @@
// Consuming the response is handled outside in 4.0.
// make sure this connection will not be re-used
- //@@@ Can we set some kind of flag before shutting down?
- //@@@ If shutdown throws an exception, we can't be sure
- //@@@ that the connection will consider itself closed.
- // be nice and call close() rather than shutdown()?
- // I'm not in a nice mood today. -rolandw-
+ // Shut down rather than close, we might have gotten here
+ // because of a shutdown trigger.
+ // Shutdown of the adapter also clears the tracked route.
hca.shutdown();
}
} catch (IOException iox) {
@@ -379,7 +379,7 @@
LOG.debug("Exception shutting down released connection.",
iox);
} finally {
- TrackingPoolEntry entry = hca.poolEntry;
+ TrackingPoolEntry entry = (TrackingPoolEntry) hca.poolEntry;
hca.detach();
releasePoolEntry(entry);
}
@@ -1126,6 +1126,7 @@
private TrackingPoolEntry(OperatedClientConnection occ) {
super(occ);
//@@@ pass planned route to the constructor?
+ //@@@ or update when the adapter is created?
this.manager = ThreadSafeClientConnManager.this;
this.reference = new WeakReference(this, REFERENCE_QUEUE);
}
@@ -1145,12 +1146,7 @@
* All connections given out by the manager are wrappers which
* can be {@link #detach detach}ed to prevent further use on release.
*/
- private class HttpConnectionAdapter
- extends AbstractClientConnAdapter {
-
- /** The wrapped pool entry. */
- private TrackingPoolEntry poolEntry;
-
+ private class HttpConnectionAdapter extends AbstractPooledConnAdapter {
/**
* Creates a new adapter.
@@ -1158,106 +1154,10 @@
* @param entry the pool entry for the connection being wrapped
*/
protected HttpConnectionAdapter(TrackingPoolEntry entry) {
- super(ThreadSafeClientConnManager.this, entry.connection);
- poolEntry = entry;
+ super(ThreadSafeClientConnManager.this, entry);
super.markedReusable = true;
}
-
-
- /**
- * Asserts that this adapter is still attached.
- *
- * @throws IllegalStateException
- * if it is {@link #detach detach}ed
- */
- protected final void assertAttached() {
- if (poolEntry == null) {
- throw new IllegalStateException("Adapter is detached.");
- }
- }
-
- /**
- * Checks if the wrapped connection is still available.
- *
- * @return <code>true</code> if still available,
- * <code>false</code> if {@link #detach detached}
- */
- protected boolean hasConnection() {
- return wrappedConnection != null;
- }
-
- /**
- * Detaches this adapter from the wrapped connection.
- * This adapter becomes useless.
- */
- private void detach() {
- this.wrappedConnection = null;
- this.poolEntry = null;
- }
-
-
- // non-javadoc, see interface ManagedHttpConnection
- public HttpRoute getRoute() {
-
- assertAttached();
- return (poolEntry.tracker == null) ?
- null : poolEntry.tracker.toRoute();
- }
-
- // non-javadoc, see interface ManagedHttpConnection
- public void open(HttpRoute route,
- HttpContext context, HttpParams params)
- throws IOException {
-
- assertAttached();
- poolEntry.open(route, context, params);
- }
-
-
- // non-javadoc, see interface ManagedHttpConnection
- public void tunnelCreated(boolean secure, HttpParams params)
- throws IOException {
-
- assertAttached();
- poolEntry.tunnelCreated(secure, params);
- }
-
-
- // non-javadoc, see interface ManagedHttpConnection
- public void layerProtocol(HttpContext context, HttpParams params)
- throws IOException {
-
- assertAttached();
- poolEntry.layerProtocol(context, params);
- }
-
-
-
- // non-javadoc, see interface HttpConnection
- public void close() throws IOException {
- if (poolEntry != null)
- poolEntry.closing();
-
- if (hasConnection()) {
- wrappedConnection.close();
- } else {
- // do nothing
- }
- }
-
- // non-javadoc, see interface HttpConnection
- public void shutdown() throws IOException {
- if (poolEntry != null)
- poolEntry.closing();
-
- if (hasConnection()) {
- wrappedConnection.shutdown();
- } else {
- // do nothing
- }
- }
-
- } // class HttpConnectionAdapter
+ }
} // class ThreadSafeClientConnManager