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 2011/08/24 11:00:18 UTC
svn commit: r1161021 - in /httpcomponents/httpcore/trunk:
httpcore-nio/src/main/java/org/apache/http/nio/pool/
httpcore/src/main/java/org/apache/http/pool/
Author: olegk
Date: Wed Aug 24 09:00:18 2011
New Revision: 1161021
URL: http://svn.apache.org/viewvc?rev=1161021&view=rev
Log:
Added getters to the ConnPoolControl interface
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
httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.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=1161021&r1=1161020&r2=1161021&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 Wed Aug 24 09:00:18 2011
@@ -270,7 +270,7 @@ public abstract class AbstractNIOConnPoo
}
// New connection is needed
- int maxPerRoute = getMaxPerRoute(route);
+ int maxPerRoute = getMax(route);
// Shrink the pool prior to allocating a new connection
int excess = Math.max(0, pool.getAllocatedCount() + 1 - maxPerRoute);
if (excess > 0) {
@@ -401,7 +401,7 @@ public abstract class AbstractNIOConnPoo
}
}
- private int getMaxPerRoute(final T route) {
+ private int getMax(final T route) {
Integer v = this.maxPerRoute.get(route);
if (v != null) {
return v.intValue();
@@ -422,6 +422,15 @@ public abstract class AbstractNIOConnPoo
}
}
+ public int getMaxTotal() {
+ this.lock.lock();
+ try {
+ return this.maxTotal;
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public void setDefaultMaxPerRoute(int max) {
if (max <= 0) {
throw new IllegalArgumentException("Max value may not be negative or zero");
@@ -434,6 +443,15 @@ public abstract class AbstractNIOConnPoo
}
}
+ public int getDefaultMaxPerRoute() {
+ this.lock.lock();
+ try {
+ return this.defaultMaxPerRoute;
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public void setMaxPerRoute(final T route, int max) {
if (route == null) {
throw new IllegalArgumentException("Route may not be null");
@@ -449,6 +467,18 @@ public abstract class AbstractNIOConnPoo
}
}
+ public int getMaxPerRoute(T route) {
+ if (route == null) {
+ throw new IllegalArgumentException("Route may not be null");
+ }
+ this.lock.lock();
+ try {
+ return getMax(route);
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public PoolStats getTotalStats() {
this.lock.lock();
try {
@@ -473,7 +503,7 @@ public abstract class AbstractNIOConnPoo
pool.getLeasedCount(),
pool.getPendingCount(),
pool.getAvailableCount(),
- getMaxPerRoute(route));
+ getMax(route));
} finally {
this.lock.unlock();
}
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=1161021&r1=1161020&r2=1161021&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 Wed Aug 24 09:00:18 2011
@@ -200,7 +200,7 @@ public abstract class AbstractConnPool<T
}
// New connection is needed
- int maxPerRoute = getMaxPerRoute(route);
+ int maxPerRoute = getMax(route);
// Shrink the pool prior to allocating a new connection
int excess = Math.max(0, pool.getAllocatedCount() + 1 - maxPerRoute);
if (excess > 0) {
@@ -290,7 +290,7 @@ public abstract class AbstractConnPool<T
}
}
- private int getMaxPerRoute(final T route) {
+ private int getMax(final T route) {
Integer v = this.maxPerRoute.get(route);
if (v != null) {
return v.intValue();
@@ -311,6 +311,15 @@ public abstract class AbstractConnPool<T
}
}
+ public int getMaxTotal() {
+ this.lock.lock();
+ try {
+ return this.maxTotal;
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public void setDefaultMaxPerRoute(int max) {
if (max <= 0) {
throw new IllegalArgumentException("Max value may not be negative or zero");
@@ -323,6 +332,15 @@ public abstract class AbstractConnPool<T
}
}
+ public int getDefaultMaxPerRoute() {
+ this.lock.lock();
+ try {
+ return this.defaultMaxPerRoute;
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public void setMaxPerRoute(final T route, int max) {
if (route == null) {
throw new IllegalArgumentException("Route may not be null");
@@ -338,6 +356,18 @@ public abstract class AbstractConnPool<T
}
}
+ public int getMaxPerRoute(T route) {
+ if (route == null) {
+ throw new IllegalArgumentException("Route may not be null");
+ }
+ this.lock.lock();
+ try {
+ return getMax(route);
+ } finally {
+ this.lock.unlock();
+ }
+ }
+
public PoolStats getTotalStats() {
this.lock.lock();
try {
@@ -362,7 +392,7 @@ public abstract class AbstractConnPool<T
pool.getLeasedCount(),
pool.getPendingCount(),
pool.getAvailableCount(),
- getMaxPerRoute(route));
+ getMax(route));
} finally {
this.lock.unlock();
}
Modified: httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java?rev=1161021&r1=1161020&r2=1161021&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java (original)
+++ httpcomponents/httpcore/trunk/httpcore/src/main/java/org/apache/http/pool/ConnPoolControl.java Wed Aug 24 09:00:18 2011
@@ -32,15 +32,23 @@ package org.apache.http.pool;
* allowed.
*
* @param <T> route
+ *
+ * @since 4.2
*/
public interface ConnPoolControl<T> {
void setMaxTotal(int max);
+ int getMaxTotal();
+
void setDefaultMaxPerRoute(int max);
+ int getDefaultMaxPerRoute();
+
void setMaxPerRoute(final T route, int max);
+ int getMaxPerRoute(final T route);
+
PoolStats getTotalStats();
PoolStats getStats(final T route);