Author: olamy Date: Wed Aug 24 12:29:37 2011 New Revision: 1161069 URL: http://svn.apache.org/viewvc?rev=1161069&view=rev Log: [WAGON-348] reuse http connection for ASF httpclient provider feature off by default
Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java maven/wagon/trunk/wagon-providers/wagon-http/pom.xml Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java?rev=1161069&r1=1161068&r2=1161069&view=diff ============================================================================== --- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java (original) +++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http/AbstractHttpClientWagon.java Wed Aug 24 12:29:37 2011 @@ -212,14 +212,22 @@ public abstract class AbstractHttpClient private DefaultHttpClient client; - protected static ClientConnectionManager connectionManager = new SingleClientConnManager(); + protected static ClientConnectionManager connectionManagerPooled; - protected static boolean useMultiThreaded = Boolean.getBoolean( "maven.wagon.http.connectionManager.multihreaded" ); + protected ClientConnectionManager clientConnectionManager = new SingleClientConnManager(); + + // olamy make pool option disable by default remove ! to enable this by default + protected static boolean clientManagerSingle = !Boolean.getBoolean( "maven.wagon.httpconnectionManager.pool" ); static { - if ( useMultiThreaded ) + if ( clientManagerSingle ) + { + System.out.println( "http connection pool disabled in wagon http" ); + } + else { + ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager(); int maxPerRoute = Integer.parseInt( System.getProperty( "maven.wagon.httpconnectionManager.maxPerRoute", "20" ) ); @@ -232,8 +240,17 @@ public abstract class AbstractHttpClient + threadSafeClientConnManager.getDefaultMaxPerRoute() + ", max total " + threadSafeClientConnManager.getMaxTotal() ); - connectionManager = threadSafeClientConnManager; + connectionManagerPooled = threadSafeClientConnManager; + } + } + + protected ClientConnectionManager getConnectionManager() + { + if (clientManagerSingle ) + { + return clientConnectionManager; } + return connectionManagerPooled; } /** @@ -246,7 +263,7 @@ public abstract class AbstractHttpClient public void openConnectionInternal() { repository.setUrl( getURL( repository ) ); - client = new DefaultHttpClient( connectionManager ); + client = new DefaultHttpClient( getConnectionManager() ); // WAGON-273: default the cookie-policy to browser compatible client.getParams().setParameter( ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY ); @@ -309,9 +326,9 @@ public abstract class AbstractHttpClient public void closeConnection() { - if ( !useMultiThreaded ) + if ( clientManagerSingle ) { - connectionManager.shutdown(); + getConnectionManager().shutdown(); } } Modified: maven/wagon/trunk/wagon-providers/wagon-http/pom.xml URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/pom.xml?rev=1161069&r1=1161068&r2=1161069&view=diff ============================================================================== --- maven/wagon/trunk/wagon-providers/wagon-http/pom.xml (original) +++ maven/wagon/trunk/wagon-providers/wagon-http/pom.xml Wed Aug 24 12:29:37 2011 @@ -33,6 +33,12 @@ under the License. Wagon that gets and puts artifacts through http using Apache commons-httpclient </description> + <properties> + <!-- http connection --> + <http.pool>false</http.pool> + </properties> + + <dependencies> <dependency> <groupId>${project.groupId}</groupId> @@ -101,7 +107,7 @@ under the License. <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemPropertyVariables> - <maven.wagon.http.connectionManager.multihreaded>true</maven.wagon.http.connectionManager.multihreaded> + <maven.wagon.httpconnectionManager.pool>${http.pool}</maven.wagon.httpconnectionManager.pool> </systemPropertyVariables> </configuration> </plugin>