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 2013/06/21 19:51:18 UTC
svn commit: r1495520 - in /httpcomponents/httpcore/trunk:
httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
Author: olegk
Date: Fri Jun 21 17:51:17 2013
New Revision: 1495520
URL: http://svn.apache.org/r1495520
Log:
Added #onLease/#onRelease callbacks to both blocking and non-blocking connection pool implementations
Modified:
httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java?rev=1495520&r1=1495519&r2=1495520&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/main/java/org/apache/http/nio/pool/AbstractNIOConnPool.java Fri Jun 21 17:51:17 2013
@@ -180,6 +180,18 @@ public abstract class AbstractNIOConnPoo
protected abstract E createEntry(T route, C conn);
+ /**
+ * @since 4.3
+ */
+ protected void onLease(final E entry) {
+ }
+
+ /**
+ * @since 4.3
+ */
+ protected void onRelease(final E entry) {
+ }
+
public boolean isShutdown() {
return this.isShutDown.get();
}
@@ -287,6 +299,7 @@ public abstract class AbstractNIOConnPoo
pool.free(entry, reusable);
if (reusable) {
this.available.addFirst(entry);
+ onRelease(entry);
} else {
entry.close();
}
@@ -359,6 +372,7 @@ public abstract class AbstractNIOConnPoo
this.available.remove(entry);
this.leased.add(entry);
request.completed(entry);
+ onLease(entry);
return true;
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java?rev=1495520&r1=1495519&r2=1495520&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/AbstractConnPool.java Fri Jun 21 17:51:17 2013
@@ -97,6 +97,18 @@ public abstract class AbstractConnPool<T
*/
protected abstract E createEntry(T route, C conn);
+ /**
+ * @since 4.3
+ */
+ protected void onLease(final E entry) {
+ }
+
+ /**
+ * @since 4.3
+ */
+ protected void onRelease(final E entry) {
+ }
+
public boolean isShutdown() {
return this.isShutDown;
}
@@ -162,7 +174,9 @@ public abstract class AbstractConnPool<T
final long timeout,
final TimeUnit tunit)
throws InterruptedException, TimeoutException, IOException {
- return getPoolEntryBlocking(route, state, timeout, tunit, this);
+ final E entry = getPoolEntryBlocking(route, state, timeout, tunit, this);
+ onLease(entry);
+ return entry;
}
};
@@ -306,6 +320,7 @@ public abstract class AbstractConnPool<T
pool.free(entry, reusable);
if (reusable && !this.isShutDown) {
this.available.addFirst(entry);
+ onRelease(entry);
} else {
entry.close();
}