From 57cca996fc6698adc58c6c9a96d577102006bc46 Mon Sep 17 00:00:00 2001 From: Brett Porter Date: Thu, 23 Aug 2007 14:19:54 +0000 Subject: [PATCH] [MRM-462] adjust repository list to new configuration git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches@569010 13f79535-47bb-0310-9956-ffa450edef68 --- .../AdminRepositoryConfiguration.java | 16 ------- .../repositories/RepositoriesAction.java | 46 +++++++++++++++---- .../webapp/WEB-INF/jsp/admin/repositories.jsp | 35 +++++++------- 3 files changed, 55 insertions(+), 42 deletions(-) diff --git a/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AdminRepositoryConfiguration.java b/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AdminRepositoryConfiguration.java index 3358153c8..0e38ce07f 100644 --- a/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AdminRepositoryConfiguration.java +++ b/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AdminRepositoryConfiguration.java @@ -19,12 +19,9 @@ * under the License. */ -import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.model.RepositoryContentStatistics; -import java.io.File; - /** * AdminRepositoryConfiguration * @@ -62,19 +59,6 @@ public AdminRepositoryConfiguration( ManagedRepositoryConfiguration repoconfig ) this.setDeleteReleasedSnapshots( repoconfig.isDeleteReleasedSnapshots() ); } - // TODO: needed? used by repositories.jsp only - public boolean isDirectoryExists() - { - String directory = getLocation(); - if ( StringUtils.isBlank( directory ) ) - { - return false; - } - - File dir = new File( directory ); - return dir.exists() && dir.isDirectory(); - } - public RepositoryContentStatistics getStats() { return stats; diff --git a/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java b/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java index f242044df..f3f4c61de 100644 --- a/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java +++ b/MRM-462/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java @@ -22,10 +22,14 @@ import com.opensymphony.webwork.interceptor.ServletRequestAware; import com.opensymphony.xwork.Preparable; import org.apache.commons.collections.Transformer; -import org.apache.commons.collections.list.TransformedList; import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.Configuration; +import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; +import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; import org.apache.maven.archiva.configuration.functors.RepositoryConfigurationComparator; +import org.apache.maven.archiva.database.ArchivaDAO; +import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics; +import org.apache.maven.archiva.model.RepositoryContentStatistics; import org.apache.maven.archiva.security.ArchivaRoleConstants; import org.apache.maven.archiva.web.util.ContextUtils; import org.codehaus.plexus.redback.rbac.Resource; @@ -35,8 +39,11 @@ import org.codehaus.plexus.xwork.action.PlexusActionSupport; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Shows the Repositories Tab for the administrator. @@ -59,14 +66,22 @@ public class RepositoriesAction */ private ArchivaConfiguration archivaConfiguration; - private List managedRepositories; + private List managedRepositories; - private List remoteRepositories; + private List remoteRepositories; + + private Map repositoryStatistics; + + /** + * @plexus.requirement role-hint="jdo" + */ + private ArchivaDAO dao; private String baseUrl; public void setServletRequest( HttpServletRequest request ) { + // TODO! what is this? this.baseUrl = ContextUtils.getBaseURL( request, "repository" ); } @@ -82,27 +97,42 @@ public SecureActionBundle getSecureActionBundle() } public void prepare() - throws Exception { Configuration config = archivaConfiguration.getConfiguration(); - remoteRepositories = TransformedList.decorate( config.getRemoteRepositories(), repoConfigToAdmin ); - managedRepositories = TransformedList.decorate( config.getManagedRepositories(), repoConfigToAdmin ); + remoteRepositories = new ArrayList( config.getRemoteRepositories() ); + managedRepositories = new ArrayList( config.getManagedRepositories() ); Collections.sort( managedRepositories, new RepositoryConfigurationComparator() ); Collections.sort( remoteRepositories, new RepositoryConfigurationComparator() ); + + repositoryStatistics = new HashMap(); + for ( ManagedRepositoryConfiguration repo : managedRepositories ) + { + List results = + dao.query( new MostRecentRepositoryScanStatistics( repo.getId() ) ); + if ( !results.isEmpty() ) + { + repositoryStatistics.put( repo.getId(), results.get( 0 ) ); + } + } } - public List getManagedRepositories() + public List getManagedRepositories() { return managedRepositories; } - public List getRemoteRepositories() + public List getRemoteRepositories() { return remoteRepositories; } + public Map getRepositoryStatistics() + { + return repositoryStatistics; + } + public String getBaseUrl() { return baseUrl; diff --git a/MRM-462/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp b/MRM-462/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp index 8ef0ae95d..49b63df0b 100644 --- a/MRM-462/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp +++ b/MRM-462/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp @@ -110,11 +110,7 @@ Directory - ${repository.location} - - Directory Does Not Exist - - + ${repository.location} WebDAV URL @@ -185,27 +181,28 @@ Stats + - + No Statistics Available. - + - + - -
Last Scanned${repository.stats.whenGathered}${stats.whenGathered}
Duration${repository.stats.duration} ms${stats.duration} ms
Total File Count${repository.stats.totalFileCount} + ${stats.totalFileCount}
New Files Found${repository.stats.newFileCount} + ${stats.newFileCount}
@@ -308,14 +305,16 @@
- - Releases Included - ${repository.releases} - - - Snapshots Included - ${repository.snapshots} - + <%-- TODO! remove + + Releases Included + ${repository.releases} + + + Snapshots Included + ${repository.snapshots} + + --%>