diff options
author | Olivier Lamy <olamy@apache.org> | 2011-09-30 13:36:56 +0000 |
---|---|---|
committer | Olivier Lamy <olamy@apache.org> | 2011-09-30 13:36:56 +0000 |
commit | e42e26c8e11f682494aaa9a42a79813c9fc3934b (patch) | |
tree | aa0cf44bf6b88c6dd3723eac50f97c58c1e1f301 /archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default | |
parent | 7d285b2179cce87c467ef34385cf3cada04eafc2 (diff) | |
download | archiva-e42e26c8e11f682494aaa9a42a79813c9fc3934b.tar.gz archiva-e42e26c8e11f682494aaa9a42a79813c9fc3934b.zip |
[MRM-1526] configure http connection pool values for wagon http.
add basic services.
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1177654 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default')
3 files changed, 78 insertions, 2 deletions
diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml index a2f4721da..232f246cd 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/pom.xml @@ -67,6 +67,26 @@ </exclusions> </dependency> <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http</artifactId> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java index 8cb88007f..6a6999c8e 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.java @@ -24,6 +24,7 @@ import org.apache.archiva.admin.model.RepositoryAdminException; import org.apache.archiva.admin.model.admin.ArchivaAdministration; import org.apache.archiva.admin.model.beans.FileType; import org.apache.archiva.admin.model.beans.LegacyArtifactPath; +import org.apache.archiva.admin.model.beans.NetworkConfiguration; import org.apache.archiva.admin.model.beans.OrganisationInformation; import org.apache.archiva.admin.model.beans.UiConfiguration; import org.apache.archiva.admin.repository.AbstractRepositoryAdmin; @@ -32,6 +33,8 @@ import org.apache.archiva.configuration.Configuration; import org.apache.archiva.configuration.UserInterfaceOptions; import org.apache.archiva.configuration.WebappConfiguration; import org.apache.commons.lang.StringUtils; +import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; +import org.apache.maven.wagon.providers.http.HttpWagon; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -56,7 +59,6 @@ public class DefaultArchivaAdministration new BeanReplicator().replicateBean( legacyArtifactPath, LegacyArtifactPath.class ) ); } return legacyArtifactPaths; - } public void addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath, AuditInformation auditInformation ) @@ -323,7 +325,48 @@ public class DefaultArchivaAdministration } -//------------------------- + public NetworkConfiguration getNetworkConfiguration() + throws RepositoryAdminException + { + org.apache.archiva.configuration.NetworkConfiguration networkConfiguration = + getArchivaConfiguration().getConfiguration().getNetworkConfiguration(); + + if ( networkConfiguration == null ) + { + return null; + } + return new BeanReplicator().replicateBean( networkConfiguration, NetworkConfiguration.class ); + } + + public void setNetworkConfiguration( NetworkConfiguration networkConfiguration ) + throws RepositoryAdminException + { + Configuration configuration = getArchivaConfiguration().getConfiguration(); + if ( networkConfiguration == null ) + { + configuration.setNetworkConfiguration( null ); + // back to default values + HttpWagon.setUseClientManagerPooled( true ); + ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager(); + threadSafeClientConnManager.setDefaultMaxPerRoute( 30 ); + threadSafeClientConnManager.setMaxTotal( 30 ); + HttpWagon.setConnectionManagerPooled( threadSafeClientConnManager ); + + } + else + { + HttpWagon.setUseClientManagerPooled( networkConfiguration.isUsePooling() ); + ThreadSafeClientConnManager threadSafeClientConnManager = new ThreadSafeClientConnManager(); + threadSafeClientConnManager.setDefaultMaxPerRoute( networkConfiguration.getMaxTotalPerHost() ); + threadSafeClientConnManager.setMaxTotal( networkConfiguration.getMaxTotal() ); + HttpWagon.setConnectionManagerPooled( threadSafeClientConnManager ); + configuration.setNetworkConfiguration( new BeanReplicator().replicateBean( networkConfiguration, + org.apache.archiva.configuration.NetworkConfiguration.class ) ); + } + saveConfiguration( configuration ); + } + + //------------------------- // //------------------------- diff --git a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java index 1a3e153fa..59165ba5c 100644 --- a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java +++ b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/test/java/org/apache/archiva/admin/repository/admin/ArchivaAdministrationTest.java @@ -22,6 +22,7 @@ import org.apache.archiva.admin.model.RepositoryAdminException; import org.apache.archiva.admin.model.admin.ArchivaAdministration; import org.apache.archiva.admin.model.beans.FileType; import org.apache.archiva.admin.model.beans.LegacyArtifactPath; +import org.apache.archiva.admin.model.beans.NetworkConfiguration; import org.apache.archiva.admin.model.beans.OrganisationInformation; import org.apache.archiva.admin.model.beans.UiConfiguration; import org.apache.archiva.admin.repository.AbstractRepositoryAdminTest; @@ -219,4 +220,16 @@ public class ArchivaAdministrationTest assertFalse( ui.isAppletFindEnabled() ); assertFalse( ui.isShowFindArtifacts() ); } + + @Test + public void networkConfiguration() + throws Exception + { + NetworkConfiguration networkConfiguration = archivaAdministration.getNetworkConfiguration(); + assertNotNull( networkConfiguration ); + + assertTrue( networkConfiguration.isUsePooling() ); + assertEquals( 30, networkConfiguration.getMaxTotal() ); + assertEquals( 30, networkConfiguration.getMaxTotalPerHost() ); + } } |