From 6897c1f68ae36cf4874dc3604554eaaa984c7359 Mon Sep 17 00:00:00 2001 From: Brett Porter Date: Mon, 6 Dec 2010 14:09:28 +0000 Subject: [PATCH] [MRM-1441] add repository scanning details to system status page Merged from: r1042633 git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1042652 13f79535-47bb-0310-9956-ffa450edef68 --- .../scanner/DefaultRepositoryScanner.java | 21 ++++++++++++--- .../repository/scanner/RepositoryScanner.java | 3 +++ .../scanner/RepositoryScannerInstance.java | 14 ++++++++++ .../web/action/admin/SystemStatusAction.java | 26 +++++++------------ .../webapp/WEB-INF/jsp/admin/systemStatus.jsp | 24 +++++++++++++++++ 5 files changed, 69 insertions(+), 19 deletions(-) diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java index f2094dcd7..d6b96fcad 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java @@ -21,7 +21,9 @@ package org.apache.archiva.repository.scanner; import java.io.File; import java.util.ArrayList; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Set; import org.apache.commons.collections.CollectionUtils; import org.apache.maven.archiva.configuration.FileTypes; @@ -31,6 +33,8 @@ import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; import org.apache.maven.archiva.consumers.RepositoryContentConsumer; import org.codehaus.plexus.util.DirectoryWalker; +import javax.swing.*; + /** * DefaultRepositoryScanner * @@ -49,7 +53,9 @@ public class DefaultRepositoryScanner * @plexus.requirement */ private RepositoryContentConsumers consumerUtil; - + + private Set inProgressScans = new LinkedHashSet(); + public RepositoryScanStatistics scan( ManagedRepositoryConfiguration repository, long changesSince ) throws RepositoryScannerException { @@ -110,6 +116,8 @@ public class DefaultRepositoryScanner RepositoryScannerInstance scannerInstance = new RepositoryScannerInstance( repository, knownContentConsumers, invalidContentConsumers, changesSince ); + inProgressScans.add( scannerInstance ); + dirWalker.addDirectoryWalkListener( scannerInstance ); // Execute scan. @@ -119,7 +127,9 @@ public class DefaultRepositoryScanner stats.setKnownConsumers( gatherIds( knownContentConsumers ) ); stats.setInvalidConsumers( gatherIds( invalidContentConsumers ) ); - + + inProgressScans.remove( scannerInstance ); + return stats; } @@ -131,5 +141,10 @@ public class DefaultRepositoryScanner ids.add( consumer.getId() ); } return ids; - } + } + + public Set getInProgressScans() + { + return inProgressScans; + } } diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java index 5a505e9d2..2ebbc443d 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScanner.java @@ -19,7 +19,9 @@ package org.apache.archiva.repository.scanner; * under the License. */ +import java.util.Collection; import java.util.List; +import java.util.Set; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer; @@ -106,4 +108,5 @@ public interface RepositoryScanner List ignoredContentPatterns, long changesSince ) throws RepositoryScannerException; + Set getInProgressScans(); } diff --git a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java index 1ec749391..1433b87c3 100644 --- a/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java +++ b/archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/RepositoryScannerInstance.java @@ -162,4 +162,18 @@ public class RepositoryScannerInstance log.debug( "Repository Scanner: " + message ); } + public ManagedRepositoryConfiguration getRepository() + { + return repository; + } + + public RepositoryScanStatistics getStats() + { + return stats; + } + + public long getChangesSince() + { + return changesSince; + } } diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java index 9334fd405..012d0d684 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/SystemStatusAction.java @@ -19,20 +19,9 @@ package org.apache.maven.archiva.web.action.admin; * under the License. */ -import com.opensymphony.xwork2.Preparable; -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.repository.scanner.RepositoryScanner; import org.apache.maven.archiva.security.ArchivaRoleConstants; import org.apache.maven.archiva.web.action.PlexusActionSupport; -import org.apache.maven.archiva.web.util.ContextUtils; -import org.apache.struts2.interceptor.ServletRequestAware; import org.codehaus.plexus.cache.Cache; import org.codehaus.plexus.redback.rbac.Resource; import org.codehaus.plexus.taskqueue.TaskQueue; @@ -40,12 +29,7 @@ import org.codehaus.redback.integration.interceptor.SecureAction; import org.codehaus.redback.integration.interceptor.SecureActionBundle; import org.codehaus.redback.integration.interceptor.SecureActionException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; import java.util.Map; -import javax.servlet.http.HttpServletRequest; /** * Shows system status information for the administrator. @@ -67,6 +51,11 @@ public class SystemStatusAction */ private Map caches; + /** + * @plexus.requirement + */ + private RepositoryScanner scanner; + private String memoryStatus; public SecureActionBundle getSecureActionBundle() @@ -102,6 +91,11 @@ public class SystemStatusAction return memoryStatus; } + public RepositoryScanner getScanner() + { + return scanner; + } + public Map getCaches() { return caches; diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp index 438aa4d4e..c9a9fd8cb 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/systemStatus.jsp @@ -54,6 +54,30 @@ +

Repository Scans

+ + + + + + + + + + + + + + + + +
RepositoryFiles processedNew files
${scan.repository.name} (${scan.repository.id})${scan.stats.totalFileCount}${scan.stats.newFileCount}
+
+ +

No scans in progress.

+
+
+

Caches

-- 2.39.5